您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何使用KNN近鄰算法,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
百度百科介紹的已經很詳細,在此只作簡單介紹。
存在一個樣本數據集合,也稱作訓練樣本集,并且樣本集中每個數據都存在標簽,即我們知道樣本集中每一數據 與所屬分類的對應關系。輸人沒有標簽的新數據后,將新數據的每個特征與樣本集中數據對應的 特征進行比較,然后算法提取樣本集中特征最相似數據(最近鄰)的分類標簽。一般來說,我們 只選擇樣本數據集中前K個最相似的數據,這就是K-近鄰算法中K的出處,通常K是不大于20的整數。 最后 ,選擇K個最相似數據中出現次數最多的分類,作為新數據的分類。
優點:精度高、對異常值不敏感、無數據輸入假定。
缺點:時間復雜度高、空間復雜度高。
適用數據范圍:數值型和標稱型。
1,導包
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
import sklearn.datasets as datasets#該數據集中,有好多的數據 是關于數據分析的一些數據
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
%matplotlib inline
2.導入sklearn自帶的鳶尾花數據集
iris_data =datasets.load_iris()
3.獲取數據集的特征和標簽
data =iris_data.data
label=iris_data.target
4.查看特征名稱
iris_data.feature_names
由此發現該數據集有,['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']四個特征,一一對應其data中的每一列數據
5.拆分訓練集和測試集
#data 一分為二,訓練數據X_train,x_test;
#target 一分為二 y_train,y_test
#y_train 目標值,y_test (保留的真實值)
X_train,x_test,y_train,y_test = train_test_split(data,target,test_size=0.1)
6.實例化算法并開始訓練數據
#聲明算法
knn = KNeighborsClassifier()
#訓練數據
knn.fit(X_train,y_train)
7.查看準確率
knn.score(x_test,y_test)
8.進行測試,并將預測結果與真實結果對比
#進行測試,只將數據交給model進行預測
y_ = knn.predict(x_test)
y_
y_是預測結果,y_test是真實標簽,對比即可
9.展示數據
#獲取訓練樣本
#對原始數據進行處理,獲取花萼的長度和寬度
#繪制展示這些花
X_train = data[:,:2]
y_train = ta
使用三點圖展示數據
plt.scatter(X_train[:,0],X_train[0:,1],c=y_train,cmap="rainbow")
上述內容就是如何使用KNN近鄰算法,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。