我在Python中使用logistic regression对SciKit learn相对较新。在阅读了一些主题并观看了一些演示之后,我决定自己潜水。
所以,基本上,我试图根据一些功能预测客户的转换率。结果是 Active (1)或 Not active (0)。我尝试了 KNN 和逻辑回归。使用 KNN ,我得到0.893
的平均准确度和逻辑回归0.994
。后者看起来如此之高,甚至是现实的/可能的?
无论如何:假设我的模型确实非常准确,我现在想要导入一个具有相同特征列的新数据集并预测它们的转换(它们在本月结束)。在上面的例子中,我使用cross_val_score
来获得准确度分数。
我现在是否需要导入新的设置,以某种方式将新设置适合此模型。 (不再训练,现在我只是想用它)
有人可以告诉我怎么办?如果需要其他信息,请对此进行评论。
提前致谢!
答案 0 :(得分:2)
除了'Pickle','joblib'也可以使用。
##
from sklearn.linear_model import LogisticRegression
from sklearn.externals import joblib
假设已经定义了X,Y
model = LogisticRegression()
model.fit(X, Y)
将模型保存到磁盘
filename = 'finalized_model.sav'
joblib.dump(model, filename)
从磁盘加载模型
loaded_model = joblib.load(filename)
result = loaded_model.score(X_test, Y_test)
答案 1 :(得分:1)
对于统计问题:当然,它可能会发生,要么您的数据噪音很小,要么在评论中提到的方案时钟奴隶。
对于分类器的导入,您可以pickle
它(将其保存为pickle
模块的二进制文件,然后只需在需要时加载它并使用clf.predict()
关于新数据的方法
import pickle
#Do the classification and name the fitted object clf
with open('clf.pickle', 'wb') as file :
pickle.dump(clf,file,pickle.HIGHEST_PROTOCOL)
然后你可以加载它
import pickle
with open('clf.pickle', 'rb') as file :
clf =pickle.load(file)
# Now predict on the new dataframe df as
pred = clf.predict(df.values)