機器學習代碼實戰——One-Hot編碼(獨熱編碼)

1.實驗目的

根據csv文件已給屬性(Car Model、Mileage、Sell Price($)、Age(yrs))來預測汽車售價。下面將給出兩種預測onehot編碼方法,其中模型用LinearRegression。

汽車數據
密碼:7izi

2.訓練+預測

2.1.get_dummies方法

import pandas as pd

df = pd.read_csv('carprices.csv')  
dummies = pd.get_dummies(df['Car Model'])  #對Car Model字段用get_dummies數字化
dummies

在這裏插入圖片描述

merged = pd.concat([df,dummies],axis='columns')  #合併字段
final = merged.drop(['Car Model','Mercedez Benz C class'],axis='columns')   #刪除原Car Model字段和Mercedez Benz C class,其中刪除Mercedez Benz C class是爲了防止虛擬陷阱(詳細請查閱相關資料)

X = final.drop('Sell Price($)',axis='columns')  #訓練數據
y = final['Sell Price($)']    #訓練標籤
 
from sklearn.linear_model import LinearRegression

model = LinearRegression()   
model.fit(X,y)    #用LinearRegression擬合訓練數據
model.score(X,y)  #計算得分

在這裏插入圖片描述
預測:
在這裏插入圖片描述

2.2.OneHotEncoder方法

from sklearn.preprocessing import LabelEncoder   #導入LabelEncoder模塊

le = LabelEncoder()  #實例化對象
dfle = df
dfle['Car Model'] = le.fit_transform(dfle['Car Model']) #利用LabelEncoder將字段Car Model數字化
dfle

在這裏插入圖片描述

X = dfle[['Car Model','Mileage','Age(yrs)']].values
y = dfle['Sell Price($)'].values

from sklearn.preprocessing import OneHotEncoder  #導入OneHotEncoder模塊
ohe = OneHotEncoder(categorical_features=[0]) #對第一個字段OneHot編碼
X = ohe.fit_transform(X).toarray() #轉化成0、1形式
X = X[:,1:]   #其中刪除Mercedez Benz C class是爲了防止虛擬陷阱(詳細請查閱相關資料)
X

model.fit(X,y)
model.score(X,y)

在這裏插入圖片描述
在這裏插入圖片描述
預測:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章