如果乙個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別。
兩個樣本的距離可以通過如下公式計算,又叫歐式距離
案例:
fromsklearn.datasets import load_iris
from
sklearn.model_selection import train_test_split
from
sklearn.preprocessing import standardscaler
from
sklearn.neighbors import kneighborsclassifier
def knn_iris():
"""用knn演算法對鳶尾花進行分類
:return
:
""" # 1
)獲取資料
iris =load_iris()
# 2)劃分資料集
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=22
) #
3)特徵工程:標準化
transfer =standardscaler()
x_train =transfer.fit_transform(x_train)
x_test =transfer.transform(x_test)
# 4)knn演算法預估器
estimator = kneighborsclassifier(n_neighbors=3
) estimator.fit(x_train, y_train)
# 5)模型評估
# 方法1:直接比對真實值和**值
y_predict =estimator.predict(x_test)
print(
"y_predict:\n
", y_predict)
print(
"直接比對真實值和**值:\n
", y_test ==y_predict)
# 方法2:計算準確率
score =estimator.score(x_test, y_test)
print(
"準確率為:\n
", score)
return
none
if __name__ == "
__main__":
# **1: 用knn演算法對鳶尾花進行分類
分類演算法 k近鄰演算法
k最近鄰 k nearest neighbor,knn 分類演算法,是乙個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。該方法的思路是 如果乙個樣本在特徵空間中的k個最相似 即特徵空間中最鄰近 的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別。用官方的話來說,所謂k近鄰演算法,即是給定...
K近鄰(KNN) 分類演算法
k近鄰 knn 分類演算法 knn是non parametric分類器 不做分布形式的假設,直接從資料估計概率密度 是memory based learning.knn不適用於高維資料 curse of dimension machine learning的python庫很多,比如mlpy 更多pa...
K近鄰分類演算法實現 in Python
k近鄰 knn 分類演算法 knn是non parametric分類器 不做分布形式的假設,直接從資料估計概率密度 是memory based learning.knn不適用於高維資料 curse of dimension machine learning的python庫很多,比如mlpy 更多pa...