![見出し画像](https://assets.st-note.com/production/uploads/images/22817351/rectangle_large_type_2_ce6d69a89cfc5092383ea7e3d43b0a15.png?width=1200)
2軍(ファーム)選手を分析してダイヤの原石を探そうぜ!<データ処理編>クラスタリングで四苦八苦の巻
プロ野球選手の分析をするとき1軍の選手や有名選手を分析することがほとんどと思います。
しかし、これから活躍しそうな選手、化けそうな選手を調べたくないでしょうか?
そこで、2軍ファーム野手のバッター成績をクラスタリング分析して、クラスターごとの注目の選手を探っていきたいと思います。
今回は、前回収集したデータを基にクラスタリングをして有力選手を探っていきます。
前回のデータからの修正
前回取得したデータを見ると重なりがあります。
まずは、重なっているカラムを削っていきましょう。
import pandas as pd
import matplotlib.pyplot as plt
import sklearn.linear_model as LM
import category_encoders as ce
import numpy as np
import seaborn as sns
from sklearn import preprocessing
from sklearn.model_selection import cross_val_score, train_test_split
from sklearn import cluster, preprocessing, mixture #機械学習用のライブラリを利用
data = pd.read_csv('2nd_grade_player.csv')
data = data.drop('Unnamed: 0',axis=1)
data.columns()
結果:
Index(['順位_x', '選手名', 'チーム_x', '打率_x', '打席数_x', '打数_x', '安打_x', '本塁打_x',
'打点_x', '盗塁_x', '四死球', '三振_x', '本塁打率', '三振率', '四球率', 'PSN', 'BB/K',
'出塁率_x', '長打率_x', 'OPS', 'NOI', 'GPA', 'IsoP', 'IsoD', 'RC', 'RC27',
'XR', 'XR27', 'BABIP', 'SecA', 'TA', '順位', 'チーム', '打率', '試合', '打数',
'得点', '安打', '二塁打', '三塁打', '本塁打', '塁打', '打点', '盗塁刺', '犠打', '犠飛', '四球',
'敬遠', '死球', '併殺打'],
dtype='object')
'順位_x','打数_x', '安打_x', '本塁打_x','チーム_x', '打率_x','打点_x'は重なりがありますので削ります。
data = data.drop(['順位_x','打数_x', '安打_x', '本塁打_x','チーム_x', '打率_x','打点_x'],axis=1)
データには記録がないところに「-」が埋められています。
「-」ですと機械学習の処理する際に受け付けないので、0にしておきます。
野球の記録データですので0にしても問題ないでしょう。
data = data.replace('-',0)
最後にデータを保存しておきましょう。
data.to_csv('mungged_data.csv',index=False)
ここまでのデータとコードを以下に添付しておきますので参考にどうぞ。
よろしければサポートをよろしくお願いします。サポートいただいた資金は活動費に使わせていただきます。