1. 程式人生 > >【Machine Learning】特徵工程之獨熱編碼(One-hot Encoding)

【Machine Learning】特徵工程之獨熱編碼(One-hot Encoding)

一、獨熱編碼

        當我們在機器學習做特徵工程時,如果某個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)方法。