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_demo():
"""用knn演算法對鳶尾花進行分類
:return
:
"""# 載入sklearn自帶的鳶尾花資料
iris =load_iris()
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=6
) # 對資料進行標準化處理
transfer =standardscaler()
x_train =transfer.fit_transform(x_train)
# 測試集用transform,這樣裡面的引數才會和訓練集是一樣的,fit_transform是計算引數,並應用到資料中
x_test =transfer.transform(x_test)
# knn演算法訓練
estimator = kneighborsclassifier(n_neighbors=3
) estimator.fit(x_train,y_train)
# 計算乙個**值
y_predict =estimator.predict(x_test)
print(
"y_predict:
", y_predict)
print(
"對比**值和測試值
", y_predict ==y_test)
# 用測試集計算評估的準確率
scroe =estimator.score(x_test, y_test)
print(
"準確率為:
", scroe)
return
none
if __name__ == "
__main__":
knn_demo()
def knn_gridsearch_demo():"""用knn演算法對鳶尾花進行分類,加入網格搜尋和交叉驗證
:return
:
"""# 載入sklearn自帶的鳶尾花資料
iris =load_iris()
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=6
) # 對資料進行標準化處理
transfer =standardscaler()
x_train =transfer.fit_transform(x_train)
x_test =transfer.fit_transform(x_test)
# knn演算法訓練
estimator =kneighborsclassifier()
# 加入網格搜尋和交叉驗證
param_dict =
estimator = gridsearchcv(estimator , param_grid=param_dict,cv=10
) estimator.fit(x_train,y_train)
# 計算乙個**值
y_predict =estimator.predict(x_test)
print(
"y_predict:
", y_predict)
print(
"對比**值和測試值
", y_predict ==y_test)
# 用測試集計算評估的準確率
scroe =estimator.score(x_test, y_test)
print(
"準確率為:
", scroe)
print(
"最佳引數:\n
",estimator.best_params_)
print(
"最佳結果:\n
", estimator.best_score_)
print(
"最佳估計器:\n
", estimator.best_estimator_)
print(
"交叉驗證結果:\n
", estimator.cv_results_)
return none
kNN分類演算法
knn k nearest neighbors 又叫k最鄰近演算法,是一種根據待分類的樣本與已知類別的樣本間的距離得到其分類結果的分類演算法。計算待分類樣本與所有已知類別樣本的距離值 從這些距離值中選取最小的k個 根據這k個樣本的類別情況,確定待分類的分類結果 距離的計算 這裡的距離其實是一種相似度...
kNN分類演算法
一 概述 knn演算法採用測量不同特徵值之間的距離方法進行分類。對未知類別屬性的資料集中的每個點執行如下操作 1 計算已知類別資料集中的點與當前點之間的距離 2 按照距離遞增次序排序 3 選取與當前點距離最小的k個點 4 確定前k個點所在類別的出現頻率 5 返回前k個點出現頻率最高的類別作為當前點的...
kNN分類演算法
一 演算法實施過程 1 計算已知類別資料集中的點與當前點之間的距離 2 按照距離遞增次序排序 3 選取與當前點距離最小的k個點 4 確定前k個點所在類別的出現頻率 5 返回前k個點出現頻率最高的類別作為當前點的 分類。二 python 實現 from numpy import import oper...