我使用Python作为机器学习模型。我试图预测人们是否会转换会员资格。我尝试了几个模型,现在,其中一个似乎运作良好。
下一步:我想用我的模型做出预测。我遇到的问题是我想知道哪个人的预测。我试图将PersonID设置为索引。在这种情况下我使用逻辑回归。
问题是:我无法加入从PersonID上的logreg.predict方法获得的输出。所以我不知道什么预测值属于PersonID 1,依此类推。
正如你可能从我的问题中得出的结论,我对这个问题相对较新。所以任何帮助都会很棒! (最好使用personID的例子)。在演示中,我看到很多基于手动输入的预测,例如3个值,这对我的问题没有帮助。
好的,我尝试添加代码。非常困难,因为我无法包含实际数据。
我有Logistic回归模型。我适合模型,它的工作原理。
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
答案 0 :(得分:0)
您从logreg.predict(dataset2)
获得的预测与输入的顺序相同。因此,预测的第一行将引用PersonID
中的第一行dataset2
。您也直接使用了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