iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0
AI & Data

AI初見 從零開始的TensorFlow生活系列 第 26

DAY26 - 二元分類問題 - 寶可夢對戰預測 - 4

  • 分享至 

  • xImage
  •  

大家好,昨天進行了資料的處理,將無法直接輸入模型的資料做型態轉換,然後以one-hot coding和數值兩種方式表示寶可夢屬性,再去除不需要的資料,以及以0和1表示寶可夢勝負。今天要做的是將寶可夢對戰資料分成訓練資料、驗證資料、測試資料,再來將寶可夢資料標準化。

先匯入Numpy,分割資料集的方法跟上一個題目一樣,用亂數分組成訓練資料、驗證資料、測試資料,各組資料比例為6:2:2:

import numpy as np
data_num = combats_df.shape[0]
indexes = np.random.permutation(data_num)
train_indexes = indexes[:int(data_num *0.6)]
val_indexes = indexes[int(data_num *0.6):int(data_num *0.8)]
test_indexes = indexes[int(data_num *0.8):]
train_data = combats_df.loc[train_indexes]
val_data = combats_df.loc[val_indexes]
test_data = combats_df.loc[test_indexes]

再來就是將資料標準化,其中數值表示的屬性與其他數值資料的標準化方式不同,而用one-hot encoding的資料就不用標準化。

數值表示的屬性標準化的方式是將資料除以19(總共19種屬性),將數值縮放至0與1之間:

pokemon_df['Type 1'] = pokemon_df['Type 1'] / 19
pokemon_df['Type 2'] = pokemon_df['Type 2'] / 19

再來其他數值資料(生命值到進化階段資料)的標準化方式是跟上一個題目一樣,是使用標準分數(Standard Score),讓資料聚集在0的附近:

mean = pokemon_df.loc[:, 'HP':'Generation'].mean()
std = pokemon_df.loc[:, 'HP':'Generation'].std()
pokemon_df.loc[:,'HP':'Generation']=(pokemon_df.loc[:,'HP':'Generation']-mean)/std
pokemon_df.head()

https://ithelp.ithome.com.tw/upload/images/20201006/20112114ZxmIcJG6Fk.jpg


上一篇
DAY25 - 二元分類問題 - 寶可夢對戰預測 - 3
下一篇
DAY27 - 二元分類問題 - 寶可夢對戰預測 - 5
系列文
AI初見 從零開始的TensorFlow生活30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言