機器學習入門KNN近鄰演算法 一

2021-08-21 11:57:30 字數 1870 閱讀 4549

1 機器學習處理流程:

2 機器學習分類:

3 k-近鄰演算法原理

4 knn用於分類

5 knn用於回歸

import numpy as np

import matplotlib.pyplot as plt

from sklearn.neighbors import kneighborsregressor

%matplotlib inline

x = np.linspace(0,2*np.pi,40)

y = np.sin(x)

plt.scatter(x,y)

plt.xlabel('feature')

plt.ylabel('target')

# 隨機數種子,用於固定隨機數

np.random.seed(2)

noise = np.random.random(size=20) - 0.5

y[::2] += noise

plt.scatter(x,y)

# 生成knn回歸模型

# n_neighbors 就是距離**樣本最近的點的個數

knn = kneighborsregressor(n_neighbors=19)

knn.fit(x.reshape(-1,1),y)

# 獲取**樣本集

# **資料的形狀應該和訓練資料的形狀一致(不要求數量一致,要求特徵一致)

x_test = np.linspace(0,2*np.pi,100).reshape(-1,1)

y_ = knn.predict(x_test)

plt.plot(x_test,y_,color='orange',label='predict')

plt.scatter(x,y,color='blue',label='true-data')

plt.legend()

# 建立多個演算法模型,採用不同的引數,檢視回歸的結果

knn1 = kneighborsregressor(n_neighbors=1)

knn2 = kneighborsregressor(n_neighbors=7)

knn3 = kneighborsregressor(n_neighbors=21)

knn1.fit(x.reshape(-1,1),y)

knn2.fit(x.reshape(-1,1),y)

knn3.fit(x.reshape(-1,1),y)

y1_ = knn1.predict(x_test)

y2_ = knn2.predict(x_test)

y3_ = knn3.predict(x_test)

# 擬合度過高,稱為過擬合,對資料分析的過於在意區域性特徵

plt.plot(x_test,y1_,color='orange',label='n_neighbors=1')

# 擬合度剛好,稱為最佳擬合,這是機器學習的終極目標,調參就是為了達到這個目的

plt.plot(x_test,y2_,color='cyan',label='n_neighbors=7')

# 擬合度太差,稱為欠擬合,對資料特徵分析不透徹,資料有效特徵太少,樣本數量太少

plt.plot(x_test,y3_,color='red',label='n_neighbors=21')

plt.scatter(x,y,color='blue',label='true-data')

plt.legend()

機器學習入門 KNN近鄰演算法

knn近鄰演算法終極思想莫非一句話 物以類聚,人以群分。此演算法為機器學習入門的演算法,複雜程度極低,適合入門新手練習。雖然演算法簡單,可並不代表沒用,麻雀雖小,五臟六腑俱全。在本圖中求綠色圓屬於哪一類?怎麼求?如何驗證?機器學習思想,但凡是設計到屬於哪一類這種問題很多人會想到,分類器 classi...

機器學習之 KNN近鄰演算法(一)入門

是有監督學習的分類演算法 當 乙個新的值x的時候,根據它距離最近的k個點是什麼類別來判斷x屬於哪個類別。1.資料預處理 目標label轉換成數字 2.資料集進行二八分,測試knn模型計算的準確性 準備資料 moviename,kiss,action,type 我在時間盡頭等你,20,0,愛情 倩女幽...

機器學習 kNN近鄰演算法

上圖中,綠色圓要被決定賦予哪個類,是紅色三角形還是藍色四方形?如果k 3,由於紅色三角形所佔比例為2 3,綠色圓將被賦予紅色三角形那個類,如果k 5,由於藍色四方形比例為3 5,因此綠色圓被賦予藍色四方形類。k最近鄰 k nearest neighbor,knn 分類演算法,是乙個理論上比較成熟的方...