Python數(shù)據(jù)分析(6)K近鄰算法分類模型

前言

  • 蛋肥使用丁香花數(shù)據(jù)集,練習(xí)K近鄰算法分類模型以及K近鄰算法回歸模型。

準(zhǔn)備

時(shí)間:2021/09/13
系統(tǒng)環(huán)境:Windows 10
所用工具:Jupyter Notebook\Python 3.0
涉及的庫:pandas\train_test_split\KNeighborsClassifier\accuracy_score\KNeighborsRegressor

搭建K近鄰算法分類模型

參考資料
丁香花數(shù)據(jù)集

#讀取數(shù)據(jù)集
import pandas as pd
df=pd.read_csv(r"C:\Users\Archer\Desktop\course-9-syringa.csv")

#選取自變量、因變量
X=df[["sepal_length","sepal_width","petal_length","petal_width"]]
Y=df["labels"]

#劃分訓(xùn)練集、測試集,測試集占20%
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.2,random_state=1)

#搭建K近鄰算法分類模型
from sklearn.neighbors import KNeighborsClassifier as KNN
knn=KNN(n_neighbors=3)
knn.fit(X_train,Y_train)

獲取預(yù)測準(zhǔn)確度

蛋肥想法:通過測試集數(shù)據(jù),檢驗(yàn)預(yù)測準(zhǔn)確度,測得準(zhǔn)確度為73.33%,蛋肥修改了“n_neighbors”的值,去探尋其與準(zhǔn)確度的關(guān)系。

#預(yù)測結(jié)果評分
from sklearn.metrics import accuracy_score
Y_pred=knn.predict(X_test)
score=accuracy_score(Y_pred,Y_test)
print(str(score))

搭建K近鄰算法回歸模型

蛋肥想法:因?yàn)镵近鄰算法回歸模型,是將離待預(yù)測樣本點(diǎn)最近的K個(gè)訓(xùn)練樣本點(diǎn)的平均值作為待預(yù)測樣本點(diǎn)的分類,而此次使用的數(shù)據(jù)集,分類列是文本,需要先轉(zhuǎn)換為數(shù)值。

#讀取數(shù)據(jù)集
import pandas as pd
df=pd.read_csv(r"C:\Users\Archer\Desktop\course-9-syringa.csv")

#將labels轉(zhuǎn)化為數(shù)值
df=df.replace({"labels":{"daphne":1,"syringa":2,"willow":3}})

#選取自變量、因變量
X=df[["sepal_length","sepal_width","petal_length","petal_width"]]
Y=df["labels"]

#劃分訓(xùn)練集、測試集,測試集占20%
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.2,random_state=1)

from sklearn.neighbors import KNeighborsRegressor as KNR
knr=KNR(n_neighbors=3)
knr.fit(X_train,Y_train)

獲取預(yù)測準(zhǔn)確度

蛋肥想法:通過測試集數(shù)據(jù),檢驗(yàn)預(yù)測準(zhǔn)確度,測得準(zhǔn)確度為80.00%。

#預(yù)測結(jié)果評分
from sklearn.metrics import accuracy_score
Y_pred=knr.predict(X_test)
#因?yàn)閗nr算出的Y_pred值屬性與Y_test不同
Y_pred_=list(map(lambda x:int(x),Y_pred))
score=accuracy_score(Y_pred_,Y_test)
print(str(score))

總結(jié)

  • K近鄰算法分類模型,是將離待預(yù)測樣本點(diǎn)最近的K個(gè)訓(xùn)練樣本點(diǎn)中出現(xiàn)次數(shù)最多的分類作為待預(yù)測樣本點(diǎn)的分類。
  • K近鄰算法回歸模型,是將離待預(yù)測樣本點(diǎn)最近的K個(gè)訓(xùn)練樣本點(diǎn)的平均值作為待預(yù)測樣本點(diǎn)的分類。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容