iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
0
AI & Data

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

DAY25 - 二元分類問題 - 寶可夢對戰預測 - 3

  • 分享至 

  • xImage
  •  

大家好,昨天讀取了資料集,對資料進行觀察,並且填補有缺失的資料,今天要對這些資料進行處理。

首先要處理的是資料型態的問題,讀取的這些檔案中有資料是無法直接輸入模型的型態,所以要進行轉換,先顯示資料型態做觀察。

print(pokemon_df.dtypes)
print(combats_df.dtypes) 

https://ithelp.ithome.com.tw/upload/images/20201005/20112114SR6Vh2VmXE.jpg
https://ithelp.ithome.com.tw/upload/images/20201005/20112114cp9b8bL8EI.jpg
可以發現pokemon_df裡,Name、Type 1、Type 2、Legendary的資料型態是object和bool,這些是無法直接輸入模型,其中Name是不會用到的資料,之後會從資料集中去除,其他的則是要進行轉換,要將Type 1、Type 2的資料型態從object轉為category,之後會再透過這個型態下的cat.codes方法轉為數值表示;將Legendary的資料型態從bool轉為int,False和True會用0和1來表示。

pokemon_df['Type 1'] = pokemon_df['Type 1'].astype('category')
pokemon_df['Type 2'] = pokemon_df['Type 2'].astype('category')
pokemon_df['Legendary'] = pokemon_df['Legendary'].astype('int')
pokemon_df.dtypes

https://ithelp.ithome.com.tw/upload/images/20201005/20112114YHGQYek2Eq.jpg

接下來會使用one-hot encoding和數值來表示寶可夢的屬性,用作之後訓練資料的比較。

先分別取得Type 1和Type 2的one-hot encoding,方法是pd.get_dummies:

df_type1_one_hot = pd.get_dummies(pokemon_df['Type 1']) 
df_type2_one_hot = pd.get_dummies(pokemon_df['Type 2'])

再將兩組one-hot encoding合併,然後併回資料集:

combine_df_one_hot=df_type1_one_hot.add(df_type2_one_hot,fill_value=0).astype('int64')
pokemon_df = pokemon_df.join(combine_df_one_hot)
pokemon_df.head()

https://ithelp.ithome.com.tw/upload/images/20201005/20112114i4gB4gfIEP.jpg
數值表示的部分會轉換Type 1、Type 2型態為int,並且取代原本Type 1、Type2的資料:

pokemon_df['Type 2'].cat.codes.head(10)
pokemon_df['Type 1'] = pokemon_df['Type 1'].cat.codes
pokemon_df['Type 2'] = pokemon_df['Type 2'].cat.codes
pokemon_df.head()

https://ithelp.ithome.com.tw/upload/images/20201005/20112114ZVGgwkbHyH.jpg

接著去除不會用到的資料name:
pokemon_df.drop('Name', axis='columns', inplace=True)

最後將combats_df裡獲勝的表示改成0和1,第一支贏表示成0,第二支贏則是1:

combats_df['Winner'] = combats_df.apply(lambda x: 0 if x.Winner == x.First_pokemon else 1, axis='columns')
combats_df.head()

https://ithelp.ithome.com.tw/upload/images/20201005/20112114gXaWhSQ65b.jpg


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

尚未有邦友留言

立即登入留言