機器學習--K近鄰算法

sklearn.neighbors.KNeighborsClassifier:https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html#sklearn.neighbors.KNeighborsClassifier

1、定義:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。

KNN算法最早是由Cover和Hart提出的一種分類算法。

兩個樣本的距離通過歐式距離計算

2、sklearn K-近鄰算法API

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm='auto')

  • n_neighbors : int,可選默認=5,k_neighbors查詢默認使用的鄰居數
  • algorithm:{‘auto’,‘ball_tree’,‘kd_tree’,‘brute’},可選用於計算最近鄰居的算法:‘ball_tree’將會使用 BallTree,‘kd_tree’將使用 KDTree。‘auto’將嘗試根據傳遞給fit方法的值來決定最合適的算法。 (不同實現方式影響效率)
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.25,random_state=42)

knn = KNeighborsClassifier(n_neighbors=3)  # 超參數n_neighbors
knn.fit(x_train,y_train)
y_pred=knn.predict(x_test)
print("k近鄰預測值:",y_pred)
print("k近鄰預測準確率:",knn.score(x_test,y_test))

 

>>> X = [[0], [1], [2], [3]]
>>> y = [0, 0, 1, 1]
>>> from sklearn.neighbors import KNeighborsClassifier
>>> neigh = KNeighborsClassifier(n_neighbors=3)
>>> neigh.fit(X, y)
KNeighborsClassifier(...)
>>> print(neigh.predict([[1.1]]))
[0]
>>> print(neigh.predict_proba([[0.9]]))
[[0.66666667 0.33333333]]

 


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