丰满人妻熟妇乱又伦精品,最新国产精品精品视频 视频,天堂а√中文最新版在线,成年网站未满十八禁

您現(xiàn)在的位置:首頁 > 資訊 > 國內 > 正文

K近鄰KNN模型

時間:2023-06-29 14:07:03    來源:嗶哩嗶哩    

SPSSAU-在線SPSS分析軟件


【資料圖】

K近鄰算法 KNN k-nearest neighbor ?SPSSAU

K近鄰KNN模型

K近鄰KNN(k-nearestneighbor)是一種簡單易懂的機器學習算法,其原理是找出挨著自己最近的K個鄰居,并且根據鄰居的類別來確定自己的類別情況。比如K為5個,即找出挨著自己最近的5個鄰居,5個鄰居中有4個是‘富人’,那么自己也會被標簽為‘富人’。此處涉及幾個點,一是距離如何計算,二是K值如何選擇,三是如何歸類。接下來案例部分將具體進行說明。

除此之外,K近鄰KNN模型與Kmeans有些類似,二者目的都是分類,但Kmeans是事先不知道數(shù)據如何分類,KNN事先已經知道如何分類,二者有時候可以匹配著使用,比如先使用kmeans得到聚類類別,然后使用KNN模型分析聚類效果情況等。

K近鄰KNN模型案例

Contents

1背景2

2理論2

3操作3

4SPSSAU輸出結果4

5文字分析4

6剖析6

1背景

K近鄰模型依舊經典的‘鳶尾花分類數(shù)據集’進行案例演示,其數(shù)據集為150個樣本,包括4個特征屬性(4個自變量X),標簽為鳶尾花卉類別,其分為3個類別分別是剛毛鳶尾花、變色鳶尾花和弗吉尼亞鳶尾花(下稱A、B、C三類)。

2理論

K近鄰KNN模型的原理上示意如下圖:

比如紅色點,挨著其最近的5個點(K=5時)如上圖,如果該5個點中多數(shù)均為A類,那么紅色點就歸為A類。需要注意的是,通常情況下K值為奇數(shù),因為如果為偶數(shù)比如為6,那么3個為A類3個為B類,此時不好劃分點的類別。

上述中關于挨的最近的距離,如何進行衡量呢?距離的計算方式非常多,比如歐式距離、曼哈頓距離等,通常情況下使用歐式距離,其計算公式如下:

比如有兩行數(shù)據分別3列(即3個X,3個特征項),兩行數(shù)據分別是(1,2,3)和(3,4,5),那么=。

另外關于K值的選擇上,通常建議K介于3~20之間,且一般為奇數(shù)值,SPSSAU默認為5,如果說K值太大,容易出現(xiàn)‘過擬合’現(xiàn)象即結果看著很好但事實上不好;如果K值過小,容易出現(xiàn)擬合現(xiàn)象很糟糕(欠擬合)現(xiàn)象。實際使用時,可考慮分別設置不同的K值,然后對模型的優(yōu)劣進行匯總和對比。

關于歸類問題,上述比如K=5,挨的最近5個點中有3個(超過一半)為A類,那么該點就分為A類,此種分類方式為‘等比投票權’,即5個點的權重完全一致。但我們知道,挨的最近的5個點,其實都能計算出距離值,是否可根據距離值大小來加權判斷呢?比如使用距離值的倒數(shù),即1/距離值作為權重,如果距離值越大,權重就越小,并且綜合計算來評估類別劃分,此種方式叫‘距離反比投票權法’。關于類別劃分參數(shù),其叫‘樣本投票權重’。

關于K近鄰KNN模型時,通常涉及到以下參數(shù)值,如下:

鄰近樣本個數(shù)K值,一般為奇數(shù),并且常介于3~20之間,可設置不同的K值來對比不同模型的優(yōu)劣。樣本投票權重,默認是‘等比投票權’,可選為‘距離反比投票權’,建議K值較小時可考慮使用‘距離反比投票權’法。距離計算方法上,默認是歐式距離,可選曼哈頓距離,通常使用歐式距離即可。鄰近搜索方法上,一種是全局搜索,比如100個樣本,某個點分別先計算出該點離另外100個樣本的距離,然后找出其中最小的K個,此種方式簡單易懂,但是計算費資源,因而延伸出KD樹和ball樹兩種優(yōu)化算法。默認情況下系統(tǒng)會自動結合數(shù)據情況選擇鄰近搜索方法,研究者也可自行選擇。

3操作

本例子操作如下:

訓練集比例默認選擇為:即80%(150*=120個樣本)進行訓練K近鄰KNN模型,余下20%即30個樣本(測試數(shù)據)用于模型的驗證。需要注意的是,多數(shù)情況下,會首先對數(shù)據進行標準化處理,處理方式一般使用為正態(tài)標準化,此處理目的是讓數(shù)據保持一致性量綱。當然也可使用其它的量綱方式,比如區(qū)間化,歸一化等。

接著對參數(shù)設置如下:

鄰近樣本個數(shù)K值默認為5,樣本投票權重方式為‘等比投票權’,鄰近搜索方法自動讓系統(tǒng)選擇,距離計算方式為‘歐氏距離’法。

4SPSSAU輸出結果

SPSSAU共輸出5項結果,依次為基本信息匯總,訓練集或測試集模型評估結果,測試集結果混淆矩陣,模型匯總表和模型代碼,如下說明:

上述表格中,基本信息匯總表格展示因變量Y的分類數(shù)據分布情況,接著展示訓練集和測試集效果情況,并且單獨提供測試集數(shù)據混淆判斷矩陣,進一步分析測試數(shù)據的正確效果等,模型匯總表格展示整體模型參數(shù)情況,并且提供sklean進行KNN模型構建的核心代碼。

5文字分析

上表格中分別針對訓練集和測試集,提供四個評估指標,分別是精確率、召回率、f1-scrore、準確率,以及平均指標和樣本量指標等,如下表格說明:

一般來說,f1-score指標值最適合,因為其綜合精確率和召回率兩個指標,并且可查看其平均值(綜合)指標,本案例為,并且測試數(shù)據的表現(xiàn)上為,意味著評估效果好,當前的KNN模型(基于K值為5時)表現(xiàn)良好。當然也可以更新K值個數(shù),比如設置為7,重新運行結果并且對比選擇最優(yōu)模型。事實上當前設置K=7時,訓練集的f1-scroe由上升到有點提升,但這并不重要,因為當K值更大時,理論上模型就會變的更好,反倒訓練集時太好了反倒有‘過擬合’現(xiàn)象,因而應該更多關注于測試集數(shù)據,測試集數(shù)據的f1-score值為,說明測試集表現(xiàn)基本一致(測試集數(shù)據的擬合表現(xiàn)非常關鍵)。

進一步地,可查看測試數(shù)據的‘混淆矩陣’,即模型預測和事實情況的交叉集合,如下圖:

‘混淆矩陣’時,右下三角對角線的值越大越好,其表示預測值和真實值完全一致。上圖中B類時有2個測試數(shù)據被預測為C類,錯誤率較低。

最后針對模型匯總表,其展示構建K近鄰KNN的各項參數(shù)設置,包括針對數(shù)據進行標準化正態(tài)處理,參數(shù)值為norm,訓練集占比和K值設置等。最后,SPSSAU輸出使用python中slearn包構建本次K近鄰KNN模型的核心代碼如下:

model= KNeighborsClassifier(n_neighbors=5, weights=uniform,algorithm=auto, p=2)

(x_train,y_train)

6剖析

涉及以下幾個關鍵點,分別如下:

K近鄰KNN模型時是否需要標準化處理?

一般建議是進行標準化處理,通常使用正態(tài)標準化處理方式即可,當然也可使用比如歸一化處理等,其目的是處理特征的單位量綱問題,試想身高為與體重為50公斤,這單位不同計算距離時會有嚴重影響。

訓練集比例應該選擇多少?

如果數(shù)據量很大,比如1萬,那么訓練集比例可以較高比如,如果數(shù)據量較小,此時訓練集比例選擇較小預留出較多數(shù)據進行測試即可。

保存預測值

保存預測值時,SPSSAU會新生成一個標題用于存儲模型預測的類別信息,其數(shù)字的意義與模型中標簽項(因變量Y)的數(shù)字保持一致意義。

SPSSAU進行K近鄰KNN模型構建時,自變量X(特征項)中包括定類數(shù)據如何處理?

K近鄰KNN模型時,如果有定類數(shù)據,建議對其啞變量處理后放入,關于啞變量可點擊查看。

/front/spssau/helps/otherdocuments/

SPSSAU進行KNN時提示數(shù)據質量異常?

當前KNN支持分類任務,需要確保標簽項(因變量Y)為定類數(shù)據,如果為定量連續(xù)數(shù)據,也或者樣本量較少(或者非會員僅分析前100個樣本)時可能出現(xiàn)無法計算因而提示數(shù)據質量異常。

關鍵詞:
相關新聞

最近更新

凡本網注明“XXX(非汪清新聞網)提供”的作品,均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和其真實性負責。

特別關注