使用Keras和TensorFlow获取观众见解

Ron*_*dot 6 python machine-learning neural-network keras tensorflow

最近我发现了KerasTensorFlow,我正试图进入ML.我手动将来自用户DB的列车和测试数据分类如下:

9个功能和标签,功能是我的系统中的事件,如"用户添加了个人资料图片"或"用户付费X服务",标签是正或负ROI(1或0)

样品:
在此输入图像描述

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

import numpy as np
from keras.layers import Dense
from keras.models import Sequential

train_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 model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Fit the model
model.fit(X_train, Y_train, epochs=12000, batch_size=10)

# evaluate the model
scores = model.evaluate(X_test, Y_test)
print("\n\n\nResults: %s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
Run Code Online (Sandbox Code Playgroud)

并获得89%的准确率.这很有用,可以将用户标记为有价值的客户.

:如何提取为可能的投资回报率做出贡献的功能,以便提升他们对用户体验的关注度?

或者:找到最佳组合观众群的方法是什么?

Dan*_*ler 2

正如人们所说,没有简单的答案,我的答案也不是答案,但我认为你可以尝试这样的方法。

看看方法:

  • 预测所有客户的结果
  • 筛选好客户并绘制他们的特征
  • 过滤不良客户端并绘制其特征
  • 你能看到明显的模式吗?例如:大多数故障没有特征 x。

创建具有组合功能的假客户端:

  • 首先,创建仅具有一项功能(从 1 到 9)的假客户。(客户端 1 仅具有功能 1,客户端 2 仅具有功能 2,依此类推)

  • 预测这些客户的结果

  • 检查是否有任何功能给出了良好的结果(这可能不是实际结果,但请注意)

在上面,您可以单独看到每个特征的结果,但这不太可能,不是吗?

  • 现在您可以创建两个功能的所有组合。这些功能有 36 种组合 (9 x 8 / 2)。(F1/F2 ;F1/F3 ;F1/F4 ....)
  • 预测并观察好的客户(记下最佳组合)

继续,3个特征的组合(84个组合)
4个特征的组合(126个组合)

比较上述每个步骤之间的结果

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

  • 所有测试的所有失败候选者中缺少任何功能吗?这是另一个独立的成功特征。

与第一个类似,您可以将 4 个失败的功能与 2 个成功的功能进行比较,并查看是否有任何一对功能是成功的。

等等。

考虑真实的客户并根据上述结果过滤它们:

  • 从真正的客户中,选择所有具有您认为成功的单一功能的客户。确认他们确实成功了
  • 对具有您认为成功的功能对的真实客户执行相同的操作。确认是否是。

您可以采用相同的方法,假设某些功能可能会导致失败而不是成功。或者不是查看当前的功能,而是查看缺失的功能等。