當資料中存在文字屬性時,機器學習演算法不便於處理文字屬性,這時候需要把文字屬性轉換成數字。轉換時,如果屬性間存在順序關係,例如:(冷,暖,熱),可以直接使用整數編碼;但當屬性間沒有順序關係時,例如:(紅, 綠, 藍),則可使用獨熱編碼。
獨熱編碼:編碼屬性的值為1,其餘屬性的值為0
一、人工獨熱編碼
from二、scikit-learn獨熱編碼numpy import argmax
import numpy as np
data = '
hello world
'alphabet = '
abcdefghigklmnopqrstuvwxyz
'char_to_int = dict((c, i) for i, c in
enumerate(alphabet))
int_to_char = dict((i, c) for i, c in
enumerate(alphabet))
#整數編碼
integer_encoded = [char_to_int[char] for char in
data]
(integer_encoded)
#獨熱編碼
onehot_encoder =list()
for i in
integer_encoded:
letter = [0 for _ in
range(len(alphabet))]
(np.array(onehot_encoder))
#從獨熱編碼恢復資料(argmax-返回最大值的索引)
from numpy importargmax
from numpy import
array
from sklearn.preprocessing import
labelencoder
from sklearn.preprocessing import
onehotencoder
#整數編碼
data = array(['
cold
', '
cold
', '
warm
', '
hot', '
warm
', '
cold
', '
hot', '
hot', '
warm
', '
cold'])
label_encoder =labelencoder()
label_encoded =label_encoder.fit_transform(data)
(label_encoded)
#獨熱編碼
onehot_encoder = onehotencoder(categories='
auto')
onehot_encoded = onehot_encoder.fit_transform(label_encoded.reshape(-1, 1))
onehot =onehot_encoded.toarray()
(onehot)
#恢復編碼
One Hot encoder獨熱編碼
ref 1 什麼是獨熱碼 獨熱碼,在英文文獻中稱做 one hot code,直觀來說就是有多少個狀態就有多少位元,而且只有乙個位元為1,其他全為0的一種碼制。在機器學習中對於離散型的分型別的資料,需要對其進行數位化比如說性別這一屬性,只能有男性或者女性或者其他這三種值,如何對這三個值進行數位化表達...
獨熱編碼函式
想用自己的資料進行獨熱編碼,一開始沒用官方的程式。from sklearn import preprocessing enc preprocessing.onehotencoder 想用這個函式的可以參考博主 我找的是github裡的乙個程式 可以參考下。貼上 def one hot y n cla...
獨熱編碼 One Hot Eocode
假設現在我們要對5張手寫數字進行分類,這些數字的標籤labels的範圍是0 9,形成 5,的行向量,為 5,4,3,8,7 labels 5,4,3,8,7 num classes 10 batch size tf.size labels labels表示的標籤,5張有5個標籤。batch size...