我做了一個非常簡單的程式,它從 csv 檔案中獲取資料列,這里是檔案資料的簡短預覽:
,matchId,blue_win,blueGold,blueMinionsKilled,blueJungleMinionsKilled,blueAvgLevel,redGold,redMinionsKilled,redJungleMinionsKilled,redAvgLevel,blueChampKills,blueHeraldKills,blueDragonKills,blueTowersDestroyed,redChampKills,redHeraldKills,redDragonKills,redTowersDestroyed
0,3493250918.0,0,24575.0,349.0,89.0,8.6,25856.0,346.0,80.0,9.2,6.0,1.0,0.0,1.0,12.0,2.0,0.0,1.0
1,3464936341.0,0,27210.0,290.0,36.0,9.0,28765.0,294.0,92.0,9.4,20.0,0.0,0.0,0.0,19.0,2.0,0.0,0.0
2,3428425921.0,1,32048.0,346.0,92.0,9.4,25305.0,293.0,84.0,9.4,17.0,3.0,0.0,0.0,11.0,0.0,0.0,4.0
3,3428347390.0,0,20261.0,223.0,60.0,8.2,30429.0,356.0,107.0,9.4,7.0,0.0,0.0,3.0,16.0,3.0,0.0,0.0
4,3428350940.0,1,30217.0,376.0,110.0,9.8,23889.0,334.0,60.0,8.8,16.0,3.0,0.0,0.0,8.0,0.0,0.0,2.0
5,3494458885.0,1,25470.0,362.0,82.0,9.2,22856.0,319.0,86.0,8.8,9.0,1.0,0.0,0.0,7.0,1.0,0.0,0.0
6,3463320642.0,1,25391.0,350.0,96.0,9.2,23236.0,345.0,80.0,8.6,8.0,2.0,0.0,0.0,5.0,1.0,0.0,1.0
...
我洗掉了不必要的列并使用 30% 的資料作為測驗資料運行測驗,以預測藍隊贏得比賽的準確性:
import pandas as pd
import numpy as np
import sklearn
from sklearn import linear_model
df = pd.read_csv('MatchTimelinesFirst15.csv', delimiter=',')
predict = "blue_win"
df = df.drop('Unnamed: 0', axis=1)
df = df.drop('redDragonKills', axis=1)
df = df.drop('blueDragonKills', axis=1)
# print(df.describe())
x = np.array(df.drop([predict], axis=1))
y = np.array(df[predict])
for _ in range(500):
x_train, x_test, y_train, y_test = sklearn.model_selection.train_test_split(x, y, test_size=0.30)
# print('{0}, {1}'.format(type(x_train), x_train))
linear = linear_model.LinearRegression()
# trains model
linear.fit(x_train, y_train)
acc = linear.score(x_test, y_test)
print('Accuracy: {0}'.format(acc))
但是即使通過回圈訓練 500 次,我的準確性也不會提高?我不斷得到相同范圍的結果:
Accuracy: 0.39030223064480596
Accuracy: 0.3980014684661366
Accuracy: 0.3840247556358104
Accuracy: 0.3939949181269252
Accuracy: 0.38657487661026535
Accuracy: 0.3950506154649621
Accuracy: 0.3925506648304995
...
任何幫助都將不勝感激,因為我對 python 和機器學習非常陌生,因此也有助于改進。
uj5u.com熱心網友回復:
您不會使用回圈進一步訓練模型。您每 500 次重新開始,唯一的區別是您的訓練測驗拆分的隨機初始化。
至于你的分類器的改進,我會避開線性回歸。回歸與分類不同。分類將預測分類類別標簽,而回歸預測連續數量。
由于您想知道藍隊何時獲勝,因此您遇到了二元分類問題。藍隊要么贏,要么不贏。
嘗試像SVM這樣的分類模型。
祝你好運!
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/479017.html
上一篇:是否可以在PyTorch中的torch.nn.Sequential中的torch.nn.Flatten之后自動調整層的后續輸入?
