knn演算法為按距離進行分類的,對於已知的分類,根據歐式距離,最靠近那個分類就被**為那個分類。
本文只是簡單展示一下實現**,具體的特徵和分類,還得自己根據實際場景去調整。
在開始之前注意看看匯入的包是否都存在,如不存在的化,請先安裝相應的包
# -*- coding:utf-8 -*-import numpyasnp
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個點出現頻率最...