我的機器學習筆記 KNN

2021-10-03 15:46:50 字數 1975 閱讀 3901

計算已知類別資料集中的點與當前點之間的距離

按照距離遞增次序排序

選取與當前點距離最小的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值為3
from 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個最相似 即特徵空間中最鄰近 的樣本。其中,大多數樣本屬於某乙個類別,則該樣本也屬於這個類別。是理論上比較成熟的方法,也是最簡單的機器學習演算法之一。行業應用 客戶流失 欺詐偵測等 更適合於稀有事件的分類問題 計算步驟 算距離 給定測試物件,計算它與訓練集中的每個物件的...