天天看點

機器學習(三)——KNN算法

K-近鄰算法采用測量不同特征之間的距離方法進行分類

使用的距離計算算法是歐幾裡得算法,可以衡量多元空間中各個點之間的絕對距離。

dist(X,Y)=

機器學習(三)——KNN算法
import sklearn.datasets as datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split

#1.捕獲鸢尾花資料
iris = datasets.load_iris()

#2.提取樣本資料
feature = iris['data']
target = iris['target']

#3.資料集拆分
x_train,x_test,y_train,y_test = train_test_split(feature,target,train_size=0.2,random_state=2020)

#4.觀察資料集看是否需要做特征工程的處理
print(x_train.shape)

#5.執行個體化模型資料
knn = KNeighborsClassifier(n_neighbors=3)  #n_neighbors == k
#模型超參數:如果模型參數有不同的取值會直接影響模型的分類和預測。
#在knn中,k的取值不同會直接導緻分類的結果不同。k就是knn中的模型超參數

#6.使用訓練集模型訓練資料
#X:訓練集的特征資料--特征資料必須是二維的
#y:訓練集的目标資料
knn = knn.fit(x_train,y_train)
print(knn)

#7.測試模型
#predict表示使用訓練好的模型進行實作分類或者預測
y_pred = knn.predict(x_test)   #模型基于訓練資料傳回的分類結果
y_true = y_test                #測試集的真實分類結果
print('模型的分類結果',y_pred)
print('模型的真實結果',y_true)
#或者采用score直接進行評分
s = knn.score(x_test,y_test)
print(s)
           

運作結果

機器學習(三)——KNN算法

繼續閱讀