計算已知類別資料集中的點與當前點之間的距離;
按照距離遞增次序排序;
選取與當前點距離最小的k個點;
確定前k個點所在類別的出現頻率;
返回前k個點所出現頻率最高的類別作為當前點的**分類。
1.首先,匯入檢視資料集
import numpy as np
import pandas as pd
datingtest = pd.read_table( 'datingtestset.txt',header=none,names=['里程數','時間百分比','公升數','label'])
2.提取x,y
y = datingtest.iloc[:,-1]
x = datingtest.iloc[:,:-1]
x = np.array(x)
3.對y值離散因子化,此時的y已經是numpy型別#離散資料因子化
from sklearn.preprocessing import labelencoder
le = labelencoder()
le =le.fit(y)
y =le.transform(y)
# 檢視le的屬性
le.classes_
4.劃分資料集#劃分資料集
import sklearn.model_selection as ms
train_x, test_x, train_y, test_y = ms.train_test_split(x, y, test_size=0.25, random_state=7)
5.從sklearn匯入knn模組,設定n值為3from sklearn.neighbors import kneighborsclassifier
model=kneighborsclassifier(n_neighbors=3)
model.fit(train_x,train_y)
predict = model.predict(test_x)
6.引入準確率from sklearn.metrics import accuracy_score
accuracy_score(predict,test_y)
7.進一步改進,對資料集進行歸一化處理
# 極大極小值均一化
from sklearn import preprocessing
min_max_scaler = preprocessing.minmaxscaler()
x= min_max_scaler.fit_transform(x)
axscaler()
x= min_max_scaler.fit_transform(x)
可以看到準確率有所提公升 機器學習實戰《學習筆記》 KNN
新增編碼方式 coding utf 8 from numpy import import operator 準備資料 defcreatedataset group array 1.0,1.1 1.0,1.0 0,0 0,0.1 labels a a b b return group,labels 使...
學習筆記 機器學習實戰 KNN
knn演算法注釋版,新手小白,有錯誤歡迎指正 環境 python 3.6 knn分類器 def classify inx,dataset,labels,k inx為行向量 datasize dataset.shape 0 求訓練集的行數 diffmat tile inx datasize,1 dat...
機器學習 KNN演算法的相關筆記
乙個樣本在特徵空間中,總會有k個最相似 即特徵空間中最鄰近 的樣本。其中,大多數樣本屬於某乙個類別,則該樣本也屬於這個類別。是理論上比較成熟的方法,也是最簡單的機器學習演算法之一。行業應用 客戶流失 欺詐偵測等 更適合於稀有事件的分類問題 計算步驟 算距離 給定測試物件,計算它與訓練集中的每個物件的...