目前,我有一个使用30个功能和30行的pandas的DataFrame。功能是['home_team_goals_difference' 'away_team_goals_difference' 'games_won_home_team' 'games_won_away_team' 'games_against_won' 'games_against_lost' 'League_24558.0' 'home_player_1_overall_rating'...'home_player_11_overall_rating'
'away_player_1_overall_rating'...'away_player_11_overall_rating' 'label']
所有值都是浮点数。
label
是Win = 1,Draw = 0或Lose = -1
我正在尝试训练Sklearn的svm.SVC,但我不确定如何根据所有.fit()
数据来预测Win,Draw或Lose其他功能。
我查看过Sklearn教程,但他们使用的是dataset.data和dataset.target,我不知道这与我的数据有何相同之处。
clf = svm.SVC(gamma=0.001)
x = inputs[:-1]
y = inputs.loc[:,'label'][:-1]
clf.fit(x,y)
print("Prediction:", clf.predict(PCAinput[-1]))
这就是我正在尝试的。 x
是整个DataFrame,y
是label
。 PCAinput是DataFrame但没有label
。 label
是Win,Draw或Lose的标记。
我认为问题是我提供x
和y
的格式,但我不知道如何将其设置为正确的输入格式。
答案 0 :(得分:0)
我找出了问题,当x
是没有label
的数据框架而且y
必须是pandas.core.series.Series类型时,它才有用,它是通过以下方式获得的做输入['标签']。所以这就是我最终的结果。
X = PCAinput #pandas DataFrame without 'label'
y = inputs['label'] #pandas Series only the labels
clf = svm.SVC()
clf.fit(X,y)
有了这个,我现在可以做到:
clf.predict(PCAinput)
并返回:
['Defeat', 'Defeat', 'Defeat', 'Win', 'Draw', 'Defeat', 'Win',
'Defeat', 'Defeat', 'Win', 'Win', 'Defeat', 'Win', 'Draw', 'Defeat',
'Defeat', 'Win', 'Defeat', 'Win', 'Defeat', 'Win', 'Win', 'Win',
'Win', 'Draw', 'Draw', 'Win', 'Defeat', 'Win', 'Win']