【发布时间】:2018-01-14 10:22:03
【问题描述】:
我对在 Python 中使用 SciKit learn 的 logistic regression 比较陌生。在阅读了一些主题并查看了一些演示之后,我决定深入研究自己。
所以,基本上,我正在尝试根据一些功能来预测客户的转化率。结果是活动 (1) 或不活动 (0)。我尝试了 KNN 和 逻辑回归。使用KNN,我得到0.893 和逻辑回归0.994 的平均准确度。后者似乎如此之高,这是否现实/可能?
无论如何:假设我的模型确实非常准确,我现在想导入具有相同特征列的新数据集并预测它们的转换(它们将在本月结束)。在上面的例子中,我使用cross_val_score 来获得准确度分数。
我现在是否需要导入新集,以某种方式使新集适合此模型。 (不再训练了,现在只想用)
有人可以告诉我如何进行吗?如果需要更多信息,请对此发表评论。
提前致谢!
【问题讨论】:
-
准确率/错误分类率不是您应该查看的唯一指标。您还应该查看分类准确性。例如:如果您有 100 行,其中 99 个 1 和 1 个 0,并且您的模型预测所有行都是 100,那么您仍然有 99% 的准确度,但可能是您的模型不擅长预测零。您可以通过过度/不足采样来解决此问题。
-
训练完模型后,您可以使用预测函数并将新数据传递给它。例如:如果
clf是模型对象,那么您可以使用clf.predict(test_data)。这将返回预测。如果您使用.fit并传递新的新数据集,则模型将相应更新。如果您只需要预测并且不想更改模型,您应该直接使用.predict方法。所以回答你的问题,在这种情况下你只需要预测,不需要拟合。 -
谢谢,在我的数据集中,活跃 (1) 出现在 68% 中,不活跃 (0) 出现在 32% 中。所以这似乎没问题。
-
感谢您的第二条评论。我想我可以使用 logreg.predict(mynewdata)。这是原始代码: from sklearn.linear_model import LogisticRegression logreg = LogisticRegression() logreg_scores = cross_val_score(logreg, X, y, cv=10, score='accuracy') print(logreg_scores)
标签: python machine-learning scikit-learn