首頁  |   網站導覽  |   會員登入  |  
首頁 » 分析方法 » K最近鄰演算法

K最近鄰演算法
K-Nearest Neighbors algorithm, K-NN
K最近鄰演算法是一個較具直覺性的演算法,他的分類概念是將空間中距離較接近的樣本點劃分為同一類,在機器學習的分類方法中常作為其他較複雜分類方法的比較基礎。方法名稱中的K指的是當給定一個新樣本點時,尋找最近距離的K個樣本點來作為分類的依據。

其他分類方法-方法簡介

本方法使用之R相關套件與參考文獻:
相關套件:stats、base、kknn
參考文獻:(依套件名稱排序)
  1. R Core Team (2013). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL: http://www.R-project.org/.
  2. Mark Culp, Kjell Johnson and George Michailidis (2012). ada: ada: an R package for stochastic boosting. R package version 2.0-3. URL: http://CRAN.R-project.org/package=kknn
範例F-6:

鳶尾花(iris)資料,最早由英國統計學家費雪(R. A. Fisher, 1890 – 1962)用於多變量分析(multivariate analysis)中的判別分析(discriminant analysis),故常稱為費雪鳶尾花資料。此資料是由美國植物學家安德生(E. S. Anderson, 1897 – 1969)所收集,故也稱為安德生鳶尾花資料。此資料記錄了鳶尾花三個亞種及其特徵,三亞種分別為山鳶尾(setosa)、變色鳶尾(versicolor)及維吉尼亞鳶尾(virginica),花的特徵則包含花萼(sepal)與花瓣(petal)的長度與寬度。

表:鳶尾花資料
變數名稱 花萼長度 花萼寬度 花瓣長度 花瓣寬度 品種
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
150 5.9 3.0 5.1 1.8 virginica

Q2:資料中記錄有花萼與花瓣的長度與寬度以及花的亞種,且花的亞種個數已確知為3種,植物學家想了解,若未看到花的實體,僅由記錄的資料中(花萼與花瓣的長度與寬度)是否能分辨出花的亞種?當有新的紀錄資料時,能否分辨該朵花屬於何種亞種?
統計方法:問題中想利用花萼與花瓣的長度與寬度來了解該花屬於何種亞種,且亞種個數為已知,故適合使用具有分類能力的分析方法。具有分類能力的方法有許多種,如判別分析(discriminat analysis)、決策樹(decision tree)或是類神經網路(neural network),以下列出適用於此鳶尾花資料的方法,使用者可比較在相同的目的下,不同分析方法所獲得結果的差異性。
分類模式
決策樹 判別分析 類神經網路 其它分類方法
分類與迴歸樹(CART) 判別分析
(Discriminant Analysis)
單一隱藏層
Feed Forward網路(NNET)
支援向量機器
(Support Vector Machine)
快速不偏有效統計樹(QUEST) 多層感知機網路(MLP) K最近鄰演算法
(K-Nearest Neighbors Algorithm)
卡方自動交互檢視法(CHAID) 輻射基底類神經網路( RBF ) 單純貝式分類器
(Naïve Bayesian Classifier)
C5.0法 機率類神經網路(PNN) 適應型強化分類法
(Adaptive Boosting)
隨機森林法(Random Forest)
K最近鄰演算法 - 分析結果
  • 分析方法:K最近鄰演算法
  • 資料名稱:範例F-6
  • 依變數名稱:Species
  • 自變數名稱:Sepal.Length, Sepal.Width, Petal.Length, Petal.Width
  • 計算時間:0.552秒

  • 變數訊息I
    數值變數(numerical)
    變數名稱
    Variable
    樣本數
    Count
    平均數
    Mean
    中位數
    Median
    最小值
    Minimum
    最大值
    Maximum
    標準差
    Std. dev.
    Sepal.Length1505.84335.84.37.90.8281
    Sepal.Width1503.0573324.40.4359
    Petal.Length1503.7584.3516.91.7653
    Petal.Width1501.19931.30.12.50.7622

    類別變數(categorical)
    變數名稱
    Variable
    變數值
    Value
    編碼
    Coded
    個數
    Count
    Speciessetosa050
    versicolor150
    virginica250
    I:變數訊息皆不包含遺失值
  • 模式訊息:
    依變數類型 類別
    距離計算方式 歐基里德
    最小分類錯誤機率 0.0222
    最佳核函數 gaussian
    最佳鄰居個數 8

  • 錯誤分類機率表:
    k值\核函數rectangularepanechnikovgaussianoptimal
    10.05190.05190.05190.0519
    20.0370.05190.05190.0519
    30.0370.0370.0370.0519
    40.04440.0370.0370.0444
    50.0370.0370.0370.0444
    60.02960.0370.02960.037
    70.02960.0370.02960.037
    80.0370.02960.02220.037
    90.0370.02960.02960.037
    100.0370.02960.02220.0296
    110.02960.02960.02960.0296

  • 錯誤分類機率圖:

  • 最佳核模式配適訊息:
    各鄰近點位置距離:(下載完整CSV檔)
    樣本點編號k = 1k = 2k = 3k = 4k = 5k = 6k = 7k = 8
    100.13070.13110.18510.26740.26740.27320.3909
    200.16290.17640.17640.2790.28990.43160.5066
    300.13070.16820.28990.31590.35430.35880.3783
    400.24280.24630.27320.28990.35480.35480.3656
    500.26740.2790.29780.34130.37860.43160.483
    14600.33310.34130.35360.43140.45870.5990.6038
    14700.50050.52190.52720.74930.76290.76290.8099
    14800.31140.41050.41360.42650.45870.47220.482
    14900.2090.50330.53770.70940.70940.73390.9005
    15000.20550.26150.50840.59940.61970.62710.6397

    各鄰近點位置權數:(下載完整CSV檔)
    樣本點編號k = 1k = 2k = 3k = 4k = 5k = 6k = 7k = 8
    10.39890.35710.35690.31940.25090.25090.24590.1481
    20.39890.35510.3480.3480.28340.27580.17610.1293
    30.39890.35510.3290.2250.20210.16950.1660.1505
    40.39890.22790.22420.19640.17960.12070.12070.1121
    50.39890.28010.27150.25730.22430.19640.15880.1259
    1460.39890.28010.27520.26780.22040.2040.12710.1248
    1470.39890.25550.24580.24330.1470.14170.14170.1242
    1480.39890.23540.15950.15730.14830.1270.11860.1127
    1490.39890.3750.27870.26490.19560.19560.18610.1265
    1500.39890.350.32270.1790.13090.12130.11780.1121

    各鄰近點配適值:(下載完整CSV檔)
    樣本點編號k = 1k = 2k = 3k = 4k = 5k = 6k = 7k = 8
    1setosasetosasetosasetosasetosasetosasetosasetosa
    2setosasetosasetosasetosasetosasetosasetosasetosa
    3setosasetosasetosasetosasetosasetosasetosasetosa
    4setosasetosasetosasetosasetosasetosasetosasetosa
    5setosasetosasetosasetosasetosasetosasetosasetosa
    146virginicavirginicavirginicavirginicavirginicavirginicavirginicavirginica
    147virginicavirginicavirginicaversicolorvirginicavirginicavirginicavirginica
    148virginicavirginicavirginicavirginicavirginicavirginicaversicolorvirginica
    149virginicavirginicavirginicavirginicavirginicavirginicavirginicavirginica
    150virginicavirginicavirginicaversicolorvirginicavirginicaversicolorversicolor

    最近臨近點選擇機率:(下載完整CSV檔)
    樣本點編號setosaversicolorvirginica
    1100
    2100
    3100
    4100
    5100
    146001
    14700.14330.8567
    14800.08140.9186
    149001
    15000.2360.764

  • 觀察值與配適值(訓練樣本)比較表:(下載完整CSV檔)
    樣本點編號觀察值配適值
    1setosasetosa
    2setosasetosa
    3setosasetosa
    4setosasetosa
    5setosasetosa
    146virginicavirginica
    147virginicavirginica
    148virginicavirginica
    149virginicavirginica
    150virginicavirginica

  • 預測v.s.觀察分類表(訓練樣本):
    Species 預測值
    setosaversicolorvirginica
    觀察值setosa4600
    versicolor0441
    virginica0143
    正確預測比例(對角線元素總和/所有觀察值總和):98.52 %

  • 觀察值與預測值(測試樣本)比較表:(下載完整CSV檔)
    樣本點編號觀察值預測值
    15setosasetosa
    35setosasetosa
    38setosasetosa
    40setosasetosa
    58versicolorversicolor
    114virginicavirginica
    115virginicavirginica
    120virginicaversicolor
    122virginicavirginica
    140virginicavirginica

  • 預測v.s.觀察分類表(測試樣本):
    Species 預測值
    setosaversicolorvirginica
    觀察值setosa400
    versicolor041
    virginica015
    正確預測比例(對角線元素總和/所有觀察值總和):86.67 %

  • 最佳核模式下測試樣本分類圖:

[重新分析]
影音教學內容為本系統資料處理與分析方法之操作說明,
可供使用者即時參考及線上自學,
輕鬆上手「R資料分析暨導引系統」!

步驟一:資料匯入
選擇要進行分析的資料檔或上傳檔案
您所選擇的資料檔為:
  
使用已儲存模式I對資料進行分類預測
I:對樣本資料進行訓練後可儲存模式,並對新增資料進行分類預測