KNN分類算法——Python

 KNN算法的核心思想是如果一個樣本在特徵空間中的k個最相鄰的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,並具有這個類別上樣本的特性

from sklearn import datasets   #使用sklearn自帶數據集
from sklearn.model_selection import train_test_split  #把數據分爲訓練和測試數據
from sklearn.neighbors import KNeighborsClassifier  # KNN算法
import numpy as np


# 讀取數據
iris = datasets.load_iris()  # 鳶尾花數據集
X = iris.data     # x爲特徵,爲一個矩陣(N*D),N爲樣本個數,D是維數
Y = iris.target   # y爲標籤,向量(0,1,2)


# 把數據分成訓練數據和測試數據
x_train,x_test,y_train,y_test = train_test_split(X,Y,random_state = 2003)  # 默認25%爲測試數據


# 構建KNN模型並做訓練,取K=3
model = KNeighborsClassifier(n_neighbors = 3)
model.fit(x_train,y_train)  # 訓練


# 計算準確率 :準確率=正確個數/整個數據的個數
correct = np.count_nonzero((model.predict(x_test) == y_test) == True)       # 用模型得到的值與真實值做比較,數出True的個數
print("準確率是:%.3f"%(correct/len(x_test)))    # %.3f 格式化輸出浮點數

 

# 選擇合適的決策邊界

import matplotlib.pyplot as plt
import numpy as np
from itertools import product    # ite
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章