【问题标题】:How can I train my SVM to predict the outcome of the match?如何训练我的 SVM 来预测比赛结果?
【发布时间】:2023-04-08 12:33:01
【问题描述】:

目前我有一个使用具有 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 是赢 = 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,ylabel。 PCAinput 是 DataFrame 但没有labellabel 是胜利、平局或失败的标签。

我认为问题在于我提供的 xy 格式,但我不知道如何将其转换为正确的输入格式。

【问题讨论】:

  • Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确描述问题之前,我们无法有效地帮助您。向我们展示到目前为止您是如何设置数据的:向我们提供只需要 2-5 行帮助的代码(以及迄今为止最好的方法),您更有可能获得帮助。
  • 顺便说一句,可能不是我——我使用 MLlib 和 Trusted Analytics;我不是特别精通 SciKit。

标签: python machine-learning scikit-learn svm


【解决方案1】:

我发现了这个问题,当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)

然后返回:

['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']

【讨论】:

    猜你喜欢
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2014-01-29
    • 2011-12-08
    相关资源
    最近更新 更多