我們在進(jìn)行建模時,變量中經(jīng)常會有一些變量為離散型變量,例如性別。這些變量我們一般無法直接放到模型中去訓(xùn)練模型。因此在使用之前,我們往往會對此類變量進(jìn)行處理。一般是對離散變量進(jìn)行one-hot編碼。下面具體介紹通過python對離散變量進(jìn)行one-hot的方法。

注意:這里提供兩種啞編碼的實現(xiàn)方法,pandas和sklearn。它們大的區(qū)別是,pandas默認(rèn)只處理字符串類別變量,sklearn默認(rèn)只處理數(shù)值型類別變量(需要先 LabelEncoder )
① pd.get_dummies(prefix=)
pandas的get_dummies()可以直接對變量進(jìn)行one-hot編碼,其中prefix是為one-hot編碼后的變量進(jìn)行命名。
②LabelEncoder和OneHotEncoder
我們也可以通過sklearn的模塊實現(xiàn)對離散變量的one-hot編碼,其中LabelEncoder是將離散變量替換為數(shù)字,
OneHotEncoder則實現(xiàn)對替換為數(shù)字的離散變量進(jìn)行one-hot編碼。
注:get_dummies()可以直接對字符型變量進(jìn)行one-hot編碼,但OneHotEncoder不能直接對字符型變量編碼,因此我們需要先將字符型變量轉(zhuǎn)換為數(shù)值型變量。這就是為什么在OneHotEncoder之前需要LabelEncoder的原因。
下面我們通過實例來介紹這兩種方法的具體使用:
①數(shù)據(jù)的導(dǎo)入
import pandas as pd
import os
os.getcwd()
os.chdir('E:\study\kaggle\Titanic')
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder
data = pd.read_csv('train.csv')
分享題目:python對離散變量的one-hot編碼方法-創(chuàng)新互聯(lián)
當(dāng)前地址:http://www.chinadenli.net/article32/deiopc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、外貿(mào)建站、電子商務(wù)、定制開發(fā)、用戶體驗、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容