ML 100Day sixday KNN算法

1、KNN算法:k最近鄰(K-NearestNeighbor,KNN)分類算法的核心思想是如果一個樣本在特徵空間中的k個最相似(即特徵空間中的最臨近)的樣本中大多數屬於某一個類別,則該樣本也屬於這個類別。KNN算法不僅可以用於分類,還可以用於迴歸,通過找出一個樣本的k個最近鄰居,將這些鄰居的屬性的平均值付給該樣本,作爲預測值

在這裏插入圖片描述
在這裏插入圖片描述
最後一步是投票選出出現頻率最大的
“”"
NearestNeighbors用到的參數解釋
n_neighbors=5,默認值爲5,表示查詢k個最近鄰的數目
algorithm=‘auto’,指定用於計算最近鄰的算法,auto表示試圖採用最適合的算法計算最近鄰
fit(X)表示用X來訓練算法
“”"

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#導入數據集
df = pd.read_csv(‘C:\Users\Administrator\Desktop\ml 100day\Social_Network_Ads.csv’)
#劃分X和Y
#選區相應的X和Y的serise,並轉換成矩陣
X = df.iloc[:,[2,3]].values
Y = df.iloc[:,4].values
#分測試集和
from sklearn.model_selection import train_test_split
#創建對象
X_train,X_test,Y_train,Y_tes = train_test_split(X,Y,test_size=0.25,random_state= 0)
#數據歸一化
from sklearn.preprocessing import StandardScaler
#創建標準化對象
sc = StandardScaler()
#數據歸一化
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
#使用KNN算法訓練模型
from sklearn.neighbors import KNeighborsClassifier
#創建對象KNN
“”"
NearestNeighbors用到的參數解釋
n_neighbors=5,默認值爲5,表示查詢k個最近鄰的數目
algorithm=‘auto’,指定用於計算最近鄰的算法,auto表示試圖採用最適合的算法計算最近鄰
fit(X)表示用X來訓練算法
“”"
knn = KNeighborsClassifier(n_neighbors=5,metric=‘minkowski’,p=2)
#爲什麼使用Y_train訓練呢?
knnClassifier = knn.fit(X_train,Y_train)
#預測結果
y_pred = knnClassifier.predict(X_test)
#評估預測,我們預測了測試集,現在我們評估模型是否正確的學習和理解,這個混淆舉證包含了我們正確和錯誤的預測
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(Y_tes,y_pred)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章