1. 程式人生 > >機器學習基礎(三十七) —— 處理類別特徵

機器學習基礎(三十七) —— 處理類別特徵

當類別特徵仍保持原始形式時,其取值來自所有可能取值構成的集合而不是一個數字,故不能作為輸入。

當各個取值之間是沒有順序關係的並列關係,這樣的類別特徵稱為 名義(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.]