【Machine Learning】特征工程之独热编码(One-hot Encoding)

一、独热编码

        当我们在机器学习做特征工程时,如果某个categorical特征具有多个符号值,则不可能对具有这种特征的数据进行训练,而独热编码是解决这个问题的一种方法。比如我们有一个特征是protocol_type有三个值:tcp,udp,icmp,那么我们可以将三个名为tcp,udp,icmp的列追加到数据中,以表示protocol_type的值。最后,从数据中删除protocol_type这一列,如下表所示。

【Machine Learning】特征工程之独热编码(One-hot Encoding)_第1张图片


二、代码示例

# -*- 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)方法。

你可能感兴趣的:(Machine,Learning)