我如何训练我的 SVM 来预测比赛结果?
How can I train my SVM to predict the outcome of the match?
目前我有一个使用 pandas 的 DataFrame,具有 30 个特征和 30 行。特征是 ['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
是赢 = 1,平 = 0 或输 = -1
我正在尝试训练 Sklearn 的 svm.SVC,但我不确定如何 .fit()
数据以便根据所有其他功能预测赢、平或输。
我看过 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
是赢、平或输的标签。
我认为问题出在我提供 x
和 y
的格式上,但我不知道如何将其转换为正确的输入格式。
我解决了这个问题,当 x
是一个没有 label
的 DataFrame 并且 y
必须是 pandas.core.series.Series 类型时,它可以工作,这是通过以下方式获得的做输入['label']。所以这就是我最终得到的。
X = PCAinput #pandas DataFrame without 'label'
y = inputs['label'] #pandas Series only the labels
clf = svm.SVC()
clf.fit(X,y)
有了这个我现在可以做到:
clf.predict(PCAinput)
和returns:
['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']
目前我有一个使用 pandas 的 DataFrame,具有 30 个特征和 30 行。特征是 ['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
是赢 = 1,平 = 0 或输 = -1
我正在尝试训练 Sklearn 的 svm.SVC,但我不确定如何 .fit()
数据以便根据所有其他功能预测赢、平或输。
我看过 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
是赢、平或输的标签。
我认为问题出在我提供 x
和 y
的格式上,但我不知道如何将其转换为正确的输入格式。
我解决了这个问题,当 x
是一个没有 label
的 DataFrame 并且 y
必须是 pandas.core.series.Series 类型时,它可以工作,这是通过以下方式获得的做输入['label']。所以这就是我最终得到的。
X = PCAinput #pandas DataFrame without 'label'
y = inputs['label'] #pandas Series only the labels
clf = svm.SVC()
clf.fit(X,y)
有了这个我现在可以做到:
clf.predict(PCAinput)
和returns:
['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']