【发布时间】:2021-11-26 12:32:23
【问题描述】:
我的原始数据是这样的。 目的是建立一个模型来预测主客队获胜还是平局
df.head()
id season home_team away_team home_goals away_goals result winner
0 0 2006-07 SHU Liv 1 1 D NaN
1 1 2006-07 Ars AVL 1 1 D NaN
2 2 2006-07 Eve Wat 2 1 H Eve
3 3 2006-07 NEW WA 2 1 H New
4 4 2006-07 Por BR 3 0 H Por
df.columns
Index(['id', 'season', 'home_team', 'away_team', 'home_goals', 'away_goals',
'result', 'winner'],
dtype='object')
我选择了这 3 列并对其进行了标签编码
df[['home_team', 'away_team','winner',]].head()
至于结果变量,我创建了这些新功能:
df.loc[df["winner"]==df["home_team"],"home_team_win"]=1
df.loc[df["winner"]!=df["home_team"],"home_team_win"]=0
df.loc[df["result"]=='D',"draw"]=1
df.loc[df["result"]!='D',"draw"]=0
我认为这两个都是我的课程(home_team_win 和 draw)
下面,我为 home_team_win 类编写了代码,我在相同的代码中应用了第二类 draw,这给了我下面提到的错误。我认为 RFE 在我的情况下不支持多个类。
X = prediction_df.drop(['home_team_win','draw'] ,axis=1) # X
y = prediction_df[['home_team_win','draw']] # y
当我使用单个类 "home_team_win" 时不会发生错误,但是当我将 "draw" 作为第二类时会发生以下错误
logReg=LogisticRegression(solver='lbfgs')
print('logReg', logReg)
X.shape
out[]:
(4560, 2)
y.shape
out[]:
(4560, 2)
rfe = RFE(logReg, 20) # 20 is test percentage
rfe = rfe.fit(X, y.values.ravel())
print('rfe', rfe)
#Checking for the features of they are important
print(rfe.support_)
错误:
ValueError:发现样本数量不一致的输入变量:[4560, 9120]
预测系统将预测主队获胜百分比和平局百分比。
预测结果为:
Home Team Win 60%
Draw 20%
【问题讨论】:
-
您能否提供一小部分数据样本和完整的错误输出?
-
我已经提供了所有必要的数据和信息
标签: python pandas logistic-regression