Ron*_*dot 6 python machine-learning neural-network keras tensorflow
最近我发现了Keras和TensorFlow,我正试图进入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%的准确率.这很有用,可以将用户标记为有价值的客户.
问:如何提取为可能的投资回报率做出贡献的功能,以便提升他们对用户体验的关注度?
或者:找到最佳组合观众群的方法是什么?
正如人们所说,没有简单的答案,我的答案也不是答案,但我认为你可以尝试这样的方法。
看看方法:
创建具有组合功能的假客户端:
首先,创建仅具有一项功能(从 1 到 9)的假客户。(客户端 1 仅具有功能 1,客户端 2 仅具有功能 2,依此类推)
预测这些客户的结果
在上面,您可以单独看到每个特征的结果,但这不太可能,不是吗?
继续,3个特征的组合(84个组合)
4个特征的组合(126个组合)
比较上述每个步骤之间的结果:
所有失败的客户端都具有 4 个特征。与具有 1 个特征的成功客户进行比较:失败的客户中是否存在 1 个成功的特征?如果没有,您很可能已经找到了一个独立的成功功能。
所有测试的所有失败候选者中缺少任何功能吗?这是另一个独立的成功特征。
与第一个类似,您可以将 4 个失败的功能与 2 个成功的功能进行比较,并查看是否有任何一对功能是成功的。
等等。
考虑真实的客户并根据上述结果过滤它们:
您可以采用相同的方法,假设某些功能可能会导致失败而不是成功。或者不是查看当前的功能,而是查看缺失的功能等。
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |