预测值机器学习 Python ,如何将它们连接回集合?



我正在使用Python作为机器学习模型。我试图预测人们是否会转换会员资格。我尝试了几种模型,现在,其中一个似乎运行良好。

下一步:我想用我的模型做预测。我遇到的问题是,我想看看哪个预测是针对哪个人的。我尝试将 PersonID 设置为索引。在这种情况下,我使用逻辑回归。

问题是:我无法加入从 PersonID 上的 logreg.predict 方法获得的输出。所以我不知道什么预测值属于 PersonID 1 等等。

正如你可能从我的问题中得出的结论,我对这个主题相对较新。所以任何帮助都会很棒!(最好使用personID的示例(。在演示中,我看到很多基于手动输入例如 3 个值的预测,这对我的问题没有帮助。

好的,我尝试添加代码。相当困难,因为我不能包含实际数据。

我有我的逻辑回归模型。我适合模型并且它有效。

from sklearn.linear_model import LogisticRegression
logreg = LogisticRegression()
logreg_scores = cross_val_score(logreg, X2, y2, cv=10, scoring='accuracy')
print(logreg_scores)
[ 0.99561917  0.99679079  0.99617951  0.99567011  0.99709628  0.98298523
0.99668857  0.99556778  0.9959244   0.99347904]
logreg_score = logreg_scores.mean()
print (logreg_score)
dataset2 = 
pd.read_csv('Predict.csv', 
index_col = 'PersonID')
Outcome = logreg.predict(dataset2)
csv file looks like this:
PersonID;A;B;C;D;E;F;G;H;I;J;K;L
153;2;4;0;38;2;2;0;1;1;1;1;0
154;1;0;0;5;1;2;1;0;0;1;2;1
155;1;1;0;6;2;2;1;0;0;1;22;1
156;1;4;0;7;3;2;1;0;0;2;25;1
157;1;4;0;64;4;2;1;1;1;3;132;0
158;1;2;0;72;2;2;1;1;1;1;1;0
159;1;1;0;49;2;2;1;1;1;1;56;1
160;1;0;1;13;2;2;1;1;0;1;56;1
161;1;0;0;67;2;2;1;1;1;1;33;0
162;1;0;0;66;2;2;1;1;1;1;33;0

您从logreg.predict(dataset2)获得的预测与输入的顺序相同。因此,预测的第一行将引用dataset2中的第一个PersonID。您也直接使用了Outcome = logreg.predict(dataset2).您尚未拟合任何数据,因此会收到错误。

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
import numpy as np
import pandas as pd
# create some dummy data
X2 = np.asarray(np.random.normal(size=(1000,12)))
y2 = np.asarray(np.random.choice(2,size=(1000)))
logreg = LogisticRegression()
logreg_scores = cross_val_score(logreg, X2, y2, cv=10, scoring='accuracy')
# you need to fit the data using the fit function
logreg.fit(X2,y2)
# creating some sample data again
dataset2 = pd.DataFrame(np.asarray(np.random.normal(size=(1000,12))))
Outcome = logreg.predict(dataset2) # predict the outcome
dataset2.loc[:,'Outcome'] = Outcome # adding it to original data

最新更新