在對資料進行預處理時,怎樣處理類別型特徵?

2021-09-29 07:43:42 字數 757 閱讀 1898

類別型特徵主要是指性別(男/女),體型(胖/瘦/適中)等只有在選項內取值的特徵,類別型特徵的原始輸入通常是字串形式,除了決策樹等少數模型能夠直接處理字串形式的輸入,對於邏輯回歸、支援向量機等模型來說,類別型特徵必須經過處理轉換成數值型特徵才能正確工作。

序號編碼通常用於處理類別間具有大小關係的資料,例如考試的成績可以由好到壞分為(a、b、c、d)四檔,序號編碼會把他們按照大小關係表示為(1、2、3、4),這樣變換完了之後依然保持著大小的關係。

然而當一組資料之間不再具有大小關係的時候,如血型(a、b、ab、o)四個屬性值之間是沒有大小關係的(此時可以認為是幾個平行關係的屬性,甚至是幾個完全抽象的無法理解的資料),這樣的資料是不可以使用序號編碼的,此時就產生了下面的方法——獨熱編碼。

還是以上面的血型(a、b、ab、o)為例,可以表示為:

a:[1,0,0,0]

b:[0,1,0,0]

ab:[0,0,1,0]

o:[0,0,0,1]

獨熱編碼的兩個問題:

二進位制編碼先給每個類別賦予乙個類別id,然後再將id對應的二進位制編碼作為結果。依然用血型的例子可以得到如下的結果:

血型類別id

二進位制表示a1

001b

2010ab3

011o

4100

相對於獨熱編碼,二進位制編碼更加緊湊,節省儲存空間。(效果未必更好)

統計各類別在訓練集**現的頻率,並將頻率作為新的特徵。

在某些情況下,具有統計意義的統計編碼也是一種值得嘗試的技巧。

在對資料進行編輯時候,子表資料處理方式

方式一 刪除之前所有子資料,再次插入來自頁面的新資料 方式二 如下,更新原始資料中已有的頁面資料,再將原始資料中來自頁面意外的資料刪除掉 說明 如果頁面資料量少於原始資料量可以理解,如果頁面資料量大於原始資料量呢?如下操作,部分insert,部分update 獲取頁面的集合資料,如果id是空inse...

Repeater如何對資料進行處理

最近不止乙個同學,問我在repeater裡怎麼格式化資料,怎麼處理。因為repeater 屬於伺服器端控制項。要麼利用本身的控制項事件來處理,要麼在資料來源上處理。但這樣很不方便。其實我們可以用下面2個方法 三元表示式 int.parse eval price tostring 3600 eval ...

對資料進行安全性處理

1 資料庫方面 為資料加上乙個字段,每次運算元據都會改變該字段的內容,並且操作時都會比對一下該字段的內容 解釋 在設計資料庫中的表的時候,加上乙個欄位x,每次取資料的時候把x的值取出來,更新的時候比一下資料庫中的x欄位的內容是否和你取出來時一樣。如果一樣,就更新這條資料,並把x的內容改變,比如設成x...