機器學習分類演算法之KNN演算法

2022-09-12 09:33:12 字數 2384 閱讀 7111

knn演算法為按距離進行分類的,對於已知的分類,根據歐式距離,最靠近那個分類就被**為那個分類。

本文只是簡單展示一下實現**,具體的特徵和分類,還得自己根據實際場景去調整。

在開始之前注意看看匯入的包是否都存在,如不存在的化,請先安裝相應的包

# -*- coding:utf-8 -*-import numpy 

asnp

from

sklearn import datasets

from

sklearn.model_selection import train_test_split

from

sklearn.neighbors import kneighborsclassifier

from

sklearn.model_selection import cross_val_score

import matplotlib.pyplot

asplt

import joblib

import pandas

aspd

#載入iris資料集

iris =datasets.load_iris()

iris_x =iris.data

iris_y =iris.target

#print(iris_x[:

4,:])

#資料分割

x_train,x_test,y_train,y_test = train_test_split(iris_x,iris_y,test_size=1/3,random_state=3

)#**********交叉驗證*************************===#cv_scores =

#k_range = range(1,31

)'''

#此處為交叉驗證,看knn的k取什麼值的時候效果最好

for n in

k_range:

knn = kneighborsclassifier(n_neighbors=n)

scores = cross_val_score(knn,x_train,y_train,cv=10,scoring='

accuracy')

plt.plot(k_range,cv_scores)

plt.xlabel('k

')plt.ylabel(

'accuracy')

plt.show()

'''#模型訓練

'''best_knn = kneighborsclassifier(n_neighbors=3) # 選擇最優的k=3傳入模型

best_knn.fit(x_train,y_train) #訓練模型

print(best_knn.score(x_test,y_test)) #看看評分

#模型本地儲存

joblib.dump(best_knn,

'd:/users/wangkangren729/pycharmprojects/iris/model/best_knn.pkl

',compress=3

)#load model

'''bknn = joblib.load('

d:/users/wangkangren729/pycharmprojects/iris/model/best_knn.pkl')

#讀取本地新資料

data = pd.read_csv('

predict.data')

#print(data.head(5))

attributes=data[['

sl','

sw','

pl','pw'

]] #前四列屬性簡化為sl,sw,pl,pw

types=data['

type

'] #第5列屬性為鳶尾花的類別

#print(type(attributes))

#data_frame = attributes.loc[0

,:].to_frame()

#print(attributes)

#print(type(attributes[i]))

#**新資料

print(bknn.predict(attributes))

#print(type([[

4.1, 2.2, 2.3, 5.4

]]))

#print([[

4.1, 2.2, 2.3, 5.4

]])#print(bknn.predict([[

4.1, 2.2, 2.3, 5.4

]]))

#print(types)

#print(bknn.predict(attributes))

機器學習分類演算法(一)k NN分類演算法

k kk nn分類器是最簡單的機器學習分類演算法之一,它的基本思想是 從訓練樣本集中找出與測試樣本 距離 最近的k個樣本作為此測試樣本的 鄰居 然後根據這k個樣本的類別基於一定規則進行投票表決,最高的決定為測試樣本的 類別。用乙個詞來說就是 近朱者赤近墨者黑 由以上所述可以得知,k近鄰分類演算法主要...

機器演算法 KNN分類演算法

一 參考 機器學習與實踐 knn演算法是乙個易於掌握且非常有效的演算法,knn是懶惰學習 lazy learning 演算法中的一種,所以不需要訓練,但是需要樣本資料。演算法總共分為三步 1.使用歐氏距離公式 計算當前點與樣本資料中所有點的距離 2.選出距離最近的k個點 3.在距離最近的k個點中選出...

python 機器學習KNN分類演算法

k近鄰演算法是機器學習中最簡單的演算法,其可以做最基本的分類操作,偽 如下 對未知類別屬性的資料集中的每個點依次執行以下操作 1 計算已知類別資料集中的每個點與當前點之間的距離 2 按照距離遞增次序排序 3 選怒與當前點距離最小的k個點 4 確定前k個點所在類別出現的頻率 5 返回前k個點出現頻率最...