sklearn.neighbors.KNeighborsClassifier(k近鄰分類器)


KNeighborsClassifier參數說明KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=None, **kwargs)

n_neighbors:所選用的近鄰數,相當於K.

weights:預測的權函數,概率值

     weights的參數設置

        ‘uniform’:同一的權重,即每個鄰域中的所有點都是平均加權的。

        ‘distance’ :這種情況下,距離越近權重越大,反之,距離越遠其權重越小。

         [callable](可調用):用戶定義的函數,它接受一個距離數組,並返回一個包含權重的相同形狀的數組

algorithm :用於計算最近鄰居的算法,。有{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}

         ‘auto’      :根據樣本數據自動刷選合適的算法。

         ‘ball_tree’:構建“球樹”算法模型。

         ‘kd_tree’ :‘’kd樹‘’算法。

         ‘brute’     :使用蠻力搜索,即或相當於Knn算法,需遍歷所有樣本數據與目標數據的距離,進而按升序排序從而選取最近的K個值,采用投票得出結果。

leaf_size葉的大小,針對算法為球樹或KD樹而言。這個設置會影響構造和查詢的速度,以及存儲樹所需的內存。最優值取決於問題的性質。

metric:用於樹的距離度量。默認度量是Minkowski,p=2等價於標准的歐幾里德度量。有關可用度量的列表,可以查閱距離度量類的文檔。如果度量是“預先計算的”,則假定X是距離矩陣,在擬合期間必須是平方。

p:Minkowski度量參數的參數來自sklearn.emeics.pairwise.pairwise_距離。當p=1時,這等價於使用曼哈頓距離(L1),歐幾里得距離(L2)等價於p=2時,對於任意的p,則使用Minkowski_距離(L_P)。

metric_params:度量函數的附加關鍵字參數,設置應為dict(字典)形式。

n_jobs:要為鄰居搜索的並行作業的數量。None指1,除非在 joblib.parallel_backend背景。-1意味着使用所有處理器,若要了解相關的知識應該具體查找一下。

方法:

fit(self, X[, y])

以X為訓練數據,y為目標值擬合模型

get_params(self[, deep])

獲取此估計器的參數。

kneighbors(self[, X, n_neighbors, …])

找到點的K鄰域。

kneighbors_graph(self[, X, n_neighbors, mode])

計算X中點的k-鄰域(加權)圖

predict(self, X)

預測提供的數據的類標簽

predict_proba(self, X)

返回測試數據X的概率估計。

score(self, X, y[, sample_weight])

返回給定測試數據和標簽的平均精度。

set_params(self, \*\*params)

設置此估計器的參數。


KNeighborsClassifier:

from sklearn.neighbors import KNeighborsClassifier
import numpy as np
import pandas as pd
dataset = pd.read_csv('f:pycharm data/colors.csv',dtype = np.str)
#取所有特征列
x = dataset.iloc[:,:-1]
#取標簽列
y = dataset.iloc[:,-1]
#建立模型
model = KNeighborsClassifier(3)
#訓練模型
model.fit(x,y)
#預測
predict_data = [[3,3,2],
[1,3,2],
[5,2,5]]
result = model.predict(predict_data)
print(result)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM