一、簡介
keras.utils.to_categorical(y, num_classes=None, dtype=’float32′)
Keras提供了一個非常方便的方法to_categorical()將類向量(整數)轉換為二進制類矩陣,從而更好地在神經網絡中使用。 作為一個機器學習工程師,解決分類問題是一個基本任務。to_categorical()函數是一個非常實用的工具,能夠方便地將類轉換為獨熱編碼,以便分類模型更好地學習。
二、函數參數
1.y:整數列表或Numpy數組。要轉換為獨熱編碼的類別,需要是非負整數值的向量。 2.num_classes:期望的輸出類別數。如果不指定,則會通過y值自動確定。 3.dtype:輸出數組的數據類型。
三、函數功能
這個函數的主要功能就是把原始的類別標籤轉換為獨熱編碼的形式,使得我們可以將它們當做分類問題中的特徵輸入到深度學習模型中進行訓練。
四、代碼示例
1、針對二分類問題的代碼
from keras.utils import to_categorical y_train_binary = to_categorical(y_train) y_test_binary = to_categorical(y_test) print(y_train_binary) print(y_test_binary)
上面的代碼中,如果原始的類別標籤是0或1,那麼使用to_categorical()函數後,會得到一個包含2個列(對應0或1)的矩陣。
2、針對多分類問題的代碼
y_train_categorical = to_categorical(y_train, num_classes=10) y_test_categorical = to_categorical(y_test, num_classes=10) print(y_train_categorical) print(y_test_categorical)
上面的代碼中,將原始的類別標籤轉換為了一個包含10個列的矩陣,其中對應的位置上為1的列就是該樣本所屬的類別。
3、從NumPy數組獲得獨熱編碼的代碼
import numpy as np np_arr = np.array([1, 2, 3, 4, 5]) print(to_categorical(np_arr))
上面的代碼中,獨熱編碼基於類別標籤創建由0和1組成的新數組。這個新數組的尺寸與原始的數據尺寸是相等的,但是新的數組將有n列,其中n是唯一的類完全的數量,而每一行(每個數據實例)則將具有一個1,其中列索引將是該數據實例的類別標籤。
五、總結
Keras.utils.to_categorical()是一個非常方便的工具函數,能夠將類別轉換為獨熱編碼,以方便深度學習模型學習。該函數可以處理多分類和二分類問題,並且可以處理NumPy數組和列表數據。
原創文章,作者:TZRTR,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/372414.html