啞編碼示例解釋一

2021-09-25 07:43:37 字數 1560 閱讀 2378

**和注釋如下:

#-*- coding:utf-8 -*-

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

from sklearn.preprocessing import onehotencoder

enc = onehotencoder()

enc.fit(\

[[1, 1, 4], \

[2, 2, 1], \

[1, 3, 2],\

[2, 1, 3]])

print"--------------------------------1-------------------------------"

print enc.n_values_

print"--------------------------------2-------------------------------"

print enc.feature_indices_

print"--------------------------------3-------------------------------"

print enc.transform([[2, 1, 4], [2, 2, 1], [1, 3, 2], [2, 1, 3]])#①

print"--------------------------------4-------------------------------"

print enc.transform([[2, 1, 4], [2, 2, 1], [1, 3, 2], [2, 1, 3]]).toarray()#②

#例如訓練集中有三維

#每個維度的取值分別有m,n,l種

#那麼#最終結果中的bit總數量就是m+n+l

#進行編碼的時候就是當前的值是第幾大,就在第幾個bit位置1

# 例如,上面的例子中,

# 第1維的取值有2種

# 第2維的取值有3種

# 第3維的取值有4種

# 那麼最終轉化結果中的bit總數就是2+3+4=9bit長度,也就是最終結果的形式是:【x,x,|x,x,x,|x,x,x,x】

#由於②處有4條資料,所以最終得到的矩陣就是4x9矩陣

# 然後是矩陣中的元素的取值,首先每個元素x只能是0 或者1

# 以第1條資料[2,1,4]為例,

# 由於第一維只有2種取值,所以取2時,x,x,=0,1 ③

# 由於第二維只有3種取值,所以取1時,x,x,x,=1,0,0 ④

# 由於第三維只有4種取值,所以取4時,x,x,x,x=0,0,0,1 ⑤

# 也就是說,1的位置代表取訓練集中的對應維度的第幾個值,例如,第三維度有四種取值,那麼這些取值進行排序後就是1,2,3,4

# 我想在第三維取1就是1000,我想在第三維取4就是0001

#最終的轉化結果就是把③④⑤的結果拼接起來:0,1,1,0,0,0,0,0,1

#所以第一條資料轉化完畢,如果想轉化其他的三條資料,規律也與上面的相同

資料預處理之獨熱編碼 標籤編碼與啞編碼

資料分類 我們在用模型去解決機器學習問題的時候,首先很重要的過程就是對特徵的預處理。我們的資料可以分為連續型和離散型。對於連續型資料,我們一般的做法是對其進行標準化或者歸一化 對於離散型資料,我們基本就是按照one hot 獨熱 編碼,該離散特徵有多少取值,就用多少維來表示該特徵。標籤編碼 labe...

編碼通俗解釋

很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為 位元組 再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態,狀態開始變來變去。他們看到這樣是好的,於是它們就這機器稱為 計...

onehot編碼解釋

one hot編碼,又稱為一位有效編碼,主要是採用n位狀態暫存器來對n個狀態進行編碼,每個狀態都由他獨立的暫存器位,並且在任意時候只有一位有效。one hot編碼是分類變數作為二進位制向量的表示。這首先要求將分類值對映到整數值。然後,每個整數值被表示為二進位制向量,除了整數的索引之外,它都是零值,它...