使用Keras和TensorFlow获取受众洞察

最近我发现了KerasTensorFlow,我正在尝试进入机器学习领域。我手动从用户数据库中分类了训练和测试数据,如下所示:

9个特征和一个标签,特征是我系统中的事件,例如“用户添加了头像”或“用户为服务支付了X”,标签是正面或负面的投资回报率(1或0)

示例:
enter image description here

我使用以下代码对用户进行分类:

import numpy as npfrom keras.layers import Densefrom keras.models import Sequentialtrain_data = np.loadtxt("train.csv", delimiter=",", skiprows=1)test_data = np.loadtxt("test.csv", delimiter=",", skiprows=1)X_train = train_data[:, 0:9]Y_train = train_data[:, 9]X_test = test_data[:, 0:9]Y_test = test_data[:, 9]model = Sequential()model.add(Dense(8, input_dim=9, activation='relu'))model.add(Dense(6, activation='relu'))model.add(Dense(3, activation='relu'))model.add(Dense(1, activation='sigmoid'))# Compile modelmodel.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])# Fit the modelmodel.fit(X_train, Y_train, epochs=12000, batch_size=10)# evaluate the modelscores = model.evaluate(X_test, Y_test)print("\n\n\nResults: %s: %.2f%%" % (model.metrics_names[1], scores[1]*100))

我得到了89%的准确率。这对于将用户标记为有价值的客户非常有效。

问题:如何提取对正面投资回报率有贡献的特征,以便在用户体验中提升它们的关注度?

或者:寻找最佳受众组合段的途径是什么?


回答:

正如人们所说,没有简单的答案,我的回答也不打算是唯一的答案,但我认为你可以尝试以下方法。

观察方法:

  • 预测所有客户的结果
  • 筛选出优秀客户并绘制他们的特征
  • 筛选出不佳客户并绘制他们的特征
  • 你能看到明显的模式吗?例如:大多数失败案例没有特征x。

创建具有组合特征的假客户:

  • 首先,创建仅具备单一特征的假客户,从1到9。(客户1仅有特征1,客户2仅有特征2,依此类推)

  • 预测这些客户的结果

  • 检查是否有任何特征产生了好的结果(这可能还不是最终结果,但请记下)

以上,你可以看到每个特征单独的结果,但这不太可能,对吗?

  • 现在你可以创建所有两特征的组合。有36种组合(9 x 8 / 2)。(F1/F2;F1/F3;F1/F4….)
  • 预测并查看优秀客户(记下最佳组合)

继续进行,三特征组合(84种组合)
四特征组合(126种组合)

比较上述各步骤的结果:

  • 拿所有具有4个特征的失败客户。与具有1个特征的成功客户进行比较:成功特征是否在失败客户中存在?如果不存在,你很可能找到了一个独立的成功特征。

  • 在所有测试的所有失败候选中,是否有任何特征缺失?这也是另一个独立的成功特征。

与第一个类似,你可以比较4特征失败与2特征成功,看是否有任何特征对成功。

依此类推。

考虑上述结果,筛选真实客户:

  • 从真实客户中,选出所有你认为是成功的单一特征的客户。确认他们实际上是成功的
  • 对那些你认为是成功的特征对的真实客户做同样的事。确认他们是否成功。

你可以用同样的方法假设某些特征可能导致失败,而不是导致成功。或者,不看现有特征,而是看缺失的特征,等等。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注