精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

機器學習之KNN算法原理及Python實現方法詳解-創新互聯

本文實例講述了機器學習之KNN算法原理及Python實現方法。分享給大家供大家參考,具體如下:

創新互聯技術團隊10余年來致力于為客戶提供網站設計、成都網站制作成都品牌網站建設成都全網營銷推廣、搜索引擎SEO優化等服務。經過多年發展,公司擁有經驗豐富的技術團隊,先后服務、推廣了上1000家網站,包括各類中小企業、企事單位、高校等機構單位。

文中代碼出自《機器學習實戰》CH02,可參考本站:

機器學習實戰 (Peter Harrington著) 中文版

機器學習實戰 (Peter Harrington著) 英文原版 [附源代碼]

KNN算法介紹

KNN是一種監督學習算法,通過計算新數據與訓練數據特征值之間的距離,然后選取K(K>=1)個距離最近的鄰居進行分類判(投票法)或者回歸。若K=1,新數據被簡單分配給其近鄰的類。

KNN算法實現過程

(1)選擇一種距離計算方式, 通過數據所有的特征計算新數據與已知類別數據集中的數據點的距離;

(2)按照距離遞增次序進行排序,選取與當前距離最小的k個點;

(3)對于離散分類,返回k個點出現頻率最多的類別作預測分類;對于回歸則返回k個點的加權值作為預測值;

算法關鍵

(1)數據的所有特征都要做可比較的量化


若是數據特征中存在非數值的類型,必須采取手段將其量化為數值。例如樣本特征中包含顏色,可通過將顏色轉換為灰度值來實現距離計算。


(2)樣本特征要做歸一化處理


樣本有多個參數,每一個參數都有自己的定義域和取值范圍,他們對距離計算的影響不一樣,如取值較大的影響力會蓋過取值較小的參數。所以樣本參數必須做一些scale處理,最簡單的方式就是所有特征的數值都采取歸一化處置。


(3)需要一個距離函數以計算兩個樣本之間的距離


距離的定義:歐氏距離、余弦距離、漢明距離、曼哈頓距離等,一般選歐氏距離作為距離度量,但是這是只適用于連續變量。在文本分類這種非連續變量情況下,漢明距離可以用來作為度量。通常情況下,如果運用一些特殊的算法來計算度量的話,K近鄰分類精度可顯著提高,如運用大邊緣最近鄰法或者近鄰成分分析法。


(4)確定K的值


K值選的太大易引起欠擬合,太小容易過擬合。交叉驗證確定K值。

KNN分類

分類算法常采用多數表決決定。一個缺點是出現頻率較多的樣本將會主導測試點的預測結果。解決這個缺點的方法之一是在進行分類時將K個鄰居到測試點的距離考慮進去。若樣本到測試點距離d,則選1/d為該鄰居的權重,統計k個鄰居所有類標簽的權重和,值大的就是新數據點的預測類標簽。

KNN回歸

KNN回歸是取K個鄰居類標簽值得加權作為新數據點的預測值。

優缺點

(1)KNN算法的優點

  • 1.簡單、有效。
  • 2.重新訓練的代價較低(類別體系的變化和訓練集的變化,在Web環境和電子商務應用中是很常見的)。
  • 3.計算時間和空間線性于訓練集的規模(在一些場合不算太大)。
  • 4.由于KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對于類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。
  • 5.該算法比較適用于樣本容量比較大的類域的自動分類,而那些樣本容量較小的類域采用這種算法比較容易產生誤分。

(2)KNN算法缺點

  • 1.KNN算法是懶散學習方法(lazy learning,基本上不學習),一些積極學習的算法要快很多。
  • 2.類別評分不是規格化的(不像概率評分)(???)。
  • 3.輸出的可解釋性不強,例如決策樹的可解釋性較強。
  • 4.該算法在分類時有個主要的不足是,當樣本不平衡時,如一個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入一個新樣本時,該樣本的K個鄰居中大容量類的樣本占多數。該算法只計算最近的鄰居樣本,某一類的樣本數量很大,那么或者這類樣本并不接近目標樣本,或者這類樣本很靠近目標樣本。無論怎樣,數量并不能影響運行結果。可以采用權值的方法(和該樣本距離小的鄰居權值大)來改進。
  • 5.計算量較大。目前常用的解決方法是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本。

KNN實現

import numpy as np
import operator
import matplotlib
import matplotlib.pyplot as plt
from os import listdir
def Create_DataSet():
 group = np.array([[1.0, 1.1],[1.0,1.0],[0,0],[0,0.1]])
 labels = ['A','A','B','B']
 return group,labels


網頁標題:機器學習之KNN算法原理及Python實現方法詳解-創新互聯
本文網址:http://m.jcarcd.cn/article/gddjd.html
主站蜘蛛池模板: 国产欧美一v精品 | 国产精品专区五 | 日韩高清片一二区 | 福利导航在线 | 三级在线国产 | 成人自拍2025 | 成人免费区 | 成人性毛 | 变态另类国产 | 欧美一级A免费区 | 91香蕉国产亚| 精品国产自在在线 | 亚洲无码aⅴ中文字幕 | 日本女优中文字幕 | 欧美亚洲日韩 | 日本三级免费观看 | 日韩午夜影院伦理片 | 国产精美 | 欧美自拍偷拍 | 韩剧排行榜 | 日本欧美影院 | 看片天堂 | 午夜一日本级频 | 国产大片91 | 日韩一区二区三区波 | 日韩精品A | 国产网站一区二 | 中文字幕亚洲 | 午夜国产视频 | 日韩二区三区四区 | 欧美亚洲日本韩国 | 国产91精品看黄 | 成人日本在线观看 | 国语自产偷拍精品视 | 日本中文字幕乱码a | 国内自产一区视频 | 午夜福利影视大全 | 制服丝袜中文字 | 国产高清中文 | 国产亚洲宗合激 | 日本在线一区二 |