







# 学習データの加工
# 学習に使わない不要な列の削除
X_multi1 = Study_dframe.copy() #deep copy
X_multi1.drop(columns=['着順','馬名','鞍上','5鞍上','4鞍上','3鞍上','2鞍上','1鞍上','人気'], axis=1, inplace=True)
X_multi1.drop(columns=['5レース名','4レース名','3レース名','2レース名','1レース名'], axis=1, inplace=True)
X_multi1.drop(columns=['5タイム','4タイム','3タイム','2タイム','1タイム'], axis=1, inplace=True)
X_multi1.drop(columns=['5上がり','4上がり','3上がり','2上がり','1上がり'], axis=1, inplace=True)
X_multi1.drop(columns=['5馬場','4馬場','3馬場','2馬場','1馬場'], axis=1, inplace=True)
X_multi1.drop(columns=['5レース距離','4レース距離','3レース距離','2レース距離','1レース距離'], axis=1, inplace=True)
X_multi1.replace('逃', '0', inplace=True)
X_multi1.replace('先', '1', inplace=True)
X_multi1.replace('差', '2', inplace=True)
X_multi1.replace('追', '3', inplace=True)
X_multi1.replace('S', '0', inplace=True)
X_multi1.replace('M', '1', inplace=True)
X_multi1.replace('H', '2', inplace=True)
#X_multi1.head()
# Dataの列中に数字でないものが含まれていたら行ごと削除する。
def check_string_dframe(check_dframe) :
del_index=[]
for i in range((len(X_multi1))-1) :
y_posi = i
# 1行取り出してリストにする
data_check = X_multi1.iloc[y_posi]
# 数字以外のものがあるかのフラグ
isnumeric_check=0
for j in range(len(data_check)) :
# 1要素毎抜き出す
str_a = str(data_check[j])
# isnumeric関数は小数点、マイナスを文字列として扱うので置換する。
str_b = str_a.replace(',', '').replace('.', '').replace('-', '').replace('e', '')
#print (i,j,str_b)
if str_b.isnumeric() == False :
#文字列を発見したら、フラグを1にする
isnumeric_check = 1
#発見した行と文字列の表示
print ('alarm',y_posi,str_a)
if isnumeric_check == 1 :
#行を削除するindexの記録
print ('文字列が含まれているので削除します',y_posi,str_a)
del_index.append(y_posi)
return del_index
<正規化サブルーチン> del_index_ret = check_string_dframe(X_multi1)
if len(del_index_ret) != 0 :
X_multi1=X_multi1.drop(X_multi1.index[del_index_ret])
X_multi1
print ('学習データ一部文字列を含む行がありました')
else :
print ('学習データは文字列を含んでいません。正常です')
# 正規化を実施(ランダムフォレストでは不要だが、いろいろなもので予測したいため<正規化呼び出し側>
def preprocess_dataframe(prepro_dframe) :
#値を0~1に正規化します。
mscaler = preprocessing.MinMaxScaler()
mscaler.fit(prepro_dframe)
xms = mscaler.transform(prepro_dframe)
#正規化すると#データフレームからリストに戻るので再度DataFrameへ戻します。
prepro_after_dframe = pd.DataFrame(xms)
#縦軸、横軸も消えているので戻します。
prepro_after_dframe.columns = prepro_dframe.columns
prepro_after_dframe.index = prepro_dframe.index
return prepro_after_dframe
X_multi2 = preprocess_dataframe(X_multi1)
X_multi2.head(3)
Python 3 エンジニア認定データ分析 模擬… Dec 7, 2020
人工知能と競馬 (機会学習ランダムフォ… Aug 10, 2017
PR
Free Space
Calendar
Comments
Freepage List