K-近鄰:鳶尾花(iris數據集)分類

擊上方
「藍色字」
可關注咱們!


今日分享:鳶尾花分類 KNN模型評價web


一:實例流程算法

一、獲取數據:是否須要利用pandas讀取數據微信

二、數據處理:選定特徵值及目標值,若存在缺失值,則需進行處理機器學習

三、進行特徵工程:若特徵值爲數值型數據,考慮是否進行標準化處理;若特徵值中存在類別型的文本數據,需進行one-hot編碼處理,實現途徑,使用pandas轉換成字典,進行特徵抽取 ;若數據維度較高,考慮是否須要降維處理。學習

四、實例化估計器,訓練,預測測試


二:數據集介紹編碼

本次示例的數據集爲sklearn中自帶的數據集(機器學習中數據相關介紹  sklearn數據集介紹),數據文件已默認下載到本地中,使用時直接導入便可。順便經過iris數據集來代碼演示一下自帶數據集的相關操做spa










三:代碼演示.net


#導入相關庫
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler


def knn_iris():
   '''K-近鄰模型對鳶尾花進行分類'''
   
   #加載數據集
   iris = load_iris()
   
   #劃分數據集
   #切記 x_train,x_test,y_train,y_test 順序位置必定不能寫錯
   #括號中參數分別爲 (特徵值 目標值 測試集大小佔比) 佔比可自行設定 經常使用0.25
   x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,test_size=0.25)
   
   '''特徵工程(標準化)'''
   std = StandardScaler()
   
   #對測試集和訓練集的特徵值進行標準化
   x_train = std.fit_transform(x_train)

   x_test = std.transform(x_test)
   
   #Knn模型實例化
   knn = KNeighborsClassifier()
   
   #訓練數據
   knn.fit(x_train,y_train)
   
   print('得出預測結果')
   y_predict = knn.predict(x_test)
   
   print(y_predict)
   
   print('得出預測準確率')
   print(knn.score(x_test,y_test))
   

   
if __name__ == '__main__':
   knn_iris()


輸出結果3d

得出預測結果
[0 1 1 0 0 2 1 0 0 0 1 2 1 0 2 2 0 1 2 2 1 1 1 0 1 0 2 1 0 0 1 1 2 2 1 1 1
0
]
得出預測準確率
0.9736842105263158


因爲該數據集是專門方便學習者用來學習練習分類算法的,所以其預測的準確率仍是很高的


二:KNN模型評價

KNN模型時比較簡單易上手的一種分類模型,可是該模型也存在一些問題,好比說:

k值取多大爲好呢?大小又有什麼影響?k值取很小:容易受異常點影響;k值取很大:容易受最近數據太多致使比例變化


優缺點

優勢:簡單,易於理解,易於實現,無需估計參數,無需訓練

缺點:懶惰算法,對測試樣本分類時的計算量大,內存開銷大必須指定K值,K值選擇不當則分類精度不能保證




Python基礎知識集錦

爬蟲專題文章整理篇!!!

Python數據分析乾貨整理篇

Matplotlib數據可視化專題集錦貼



公衆號     QQ羣

掃QQ羣二維碼進交流學習羣

或在後臺回覆:加羣

本文分享自微信公衆號 - 數據指南(BigDataDT)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索