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 分類演算法,是乙個理論上比較成熟的方...