一、獨熱編碼
當我們在機器學習做特徵工程時,如果某個categorical特徵具有多個符號值,則不可能對具有這種特徵的數據進行訓練,而獨熱編碼是解決這個問題的一種方法。比如我們有一個特徵是protocol_type有三個值:tcp,udp,icmp,那麼我們可以將三個名爲tcp,udp,icmp的列追加到數據中,以表示protocol_type的值。最後,從數據中刪除protocol_type這一列,如下表所示。
二、代碼示例
# -*- coding: utf-8 -*-
import pandas as pd
def one_hot(df):
protocol_type_one_hot = pd.get_dummies(df["protocol_type"])
df = df.drop('protocol_type', axis=1)
df = df.join(protocol_type_one_hot)
return df
if __name__=='__main__':
df=pd.read_csv('data.csv')
df=one_hot(df)
這個就是我們常在特徵工程中使用的獨熱編碼(One-hot Encoding)方法。