かりんちゃんの随心遊戯日誌

ゲームの日記、たまに政治の話、香港の話

scikit-learnを使い地域リーグ選手のCAを計算

ちょっと変わった話。FM2020のJリーグパックでは地域リーグの調整作業に入りますが、ここ最近特に更新してないとはいえ、何もしないではなく、地域リーグの選手の能力を見直したいので、まずプレイ履歴を計算しないといけないゆえに、シーズン2019のプレイ履歴を計算しています。

もちろん作業量は膨大で、しかも地域リーグのデータではかなり雑でたまに不完全で、意外と時間がかかります。一部のリーグではプレイ記録ですらスキャン画像のみで、結局大半の時間はデータ整理作業をすることになった。

 

と、最近では機械学習の本を読んでいるので、データを整理してる急に思いついた:選手のCAは、機械学習で分析できないかな、とのこと。地域リーグの選手は他と違って、データが少なく、ほとんどはプレイ履歴の記録だけでCAを判断するだけだから、「実は可能では?」と思って試しにやってみた。

まず学習データを準備する、利用するデータは所属クラブの勝点(シーズン2019実データ)、所属リーグの知名度(FMの)、試合出場数と得点数。所属リーグの知名度はなぜ必要というと、北海道リーグと関東リーグでは同じ勝点でも、チームの強さは同じではないとのことで、リーグの強さに関係する数字が必要とのこと。また、地域2部も対応したいと、JFLのデータを「上限」として働かせるつもり、とのこと。

もちろん、試合数の差も考える必要とのことで、クラブの勝点、試合出場数と得点数の3つでは、平均数を取る必要。

とそのままExcelで整理しCSVに出力(事前では学習データとして一部の選手のCAも入力)、Pandasでデータを読み込む 


from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

X = df_with_ca[['平均クラブ勝点', 'リーグ知名度', '平均試合出場数', '平均得点']].values
y = df_with_ca['CA']

poly_reg = PolynomialFeatures(degree=3, include_bias=False)
X_poly = poly_reg.fit_transform(X)
model = LinearRegression()
model.fit(X_poly, y)

y_poly_pred = model.predict(X_poly)
rmse = np.sqrt(mean_squared_error(y,y_poly_pred))
r2 = r2_score(y,y_poly_pred)

単純にRMSEやR2の数字を考えると、6次が一番という結果だった。

だが、その6次のモデルは他のデータで計算するとありえない数字が出てくるようになった。

ゆえに、1次から推移、過学習をしてないモデルを視察すると、3次が一番良かったという結果になった。

そしてこの結果で地域リーグの選手のデータを整理することにします。機械学習は色々勉強したんだが、やはりちゃんと自分でやりたいことで練習しないと、身に付けないよな。今までは機械学習のことを読むだけで、実はあまり理解はしてないが、今回ちゃんと自分のデータで実験し検証すると、改めて本で読んだことは「こういうことか!」と…。

 

参考までに一部の結果はこれです

選手名 所属クラブ クラブ勝点 試合数 リーグ知名度 試合出場数 得点 元のCA 計算されたCA
内田錬平 おこしやす京都AC 34 14 29 13 4 65 60
森崎広樹 おこしやす京都AC 34 14 29 5 3 54 54
瓜生紘大 おこしやす京都AC 34 14 29 5 0 55 48
青木捷 おこしやす京都AC 34 14 29 12 0   58
守屋鷹人 おこしやす京都AC 34 14 29 13 1   59
高橋康平 おこしやす京都AC 34 14 29 10 0 55 55
清水良平 おこしやす京都AC 34 14 29 12 0 58 58
川口真史 アルテリーヴォ和歌山 22 14 29 4 1 48 45
國廣周平 アルテリーヴォ和歌山 22 14 29 9 0 40 51
加藤博人 FC TIAMO枚方 33 14 29 14 2 60 61
小谷健悟 FC TIAMO枚方 33 14 29 5 0 52 48
多田将希 FC TIAMO枚方 33 14 29 9 0   54
木田直樹 FC TIAMO枚方 33 14 29 14 11 60 61
大平智也 AS.Laranja Kyoto 33 14 15 1 0 35 36
山本啄也 AS.Laranja Kyoto 33 14 15 9 0   41
矢城和哉 AS.Laranja Kyoto 33 14 15 1 0 35 36
嶌田一臣 光洋シーリングテクノ 4 14 23 1 0   13
高橋良平 新商クラブ 14 14 23 10 0   34
伊藤良彰 新商クラブ 14 14 23 12 5   39