機器學習基礎(三十七) —— 處理類別特徵
阿新 • • 發佈:2019-01-28
當類別特徵仍保持原始形式時,其取值來自所有可能取值構成的集合而不是一個數字,故不能作為輸入。
當各個取值之間是沒有順序關係的並列關係,這樣的類別特徵稱為 名義(nominal)變數。相反,那些存在順序關係的(比如評級,評級5的會好於評級1的),則被稱為 有序(ordinal)變數。
將類別特徵表示為數字形式,常可藉助 1-of-k 這樣的編碼方法進行。
假設變數的取值有 k 個,如果對這些值用 1 到 k 編序,則可用長度為 k 的二元向量來表示一個變數的值。在這樣的向量裡,該取值所對應的序號所在的元素為1,其他元素均為0.
>>> labels = ['A+', 'A-' , 'B+', 'B-', 'C+','C-', 'D+', 'D-']
>>> binary_code = [0]*len(labels)
>>> binary_code[labels.index('B+')] = 1
>>> binary_code
[ 0., 0., 1., 0., 0., 0., 0., 0.]
# 根據 類別 B+ 獲得其對應的二元向量編碼
# [ 0., 0., 1., 0., 0., 0., 0., 0.]