分類一般分為兩種:
積極學習法:先根據訓練集構造模型,然後根據模型對測試集分類
消極學習法:推遲建模,先簡單儲存訓練集,等到給定測試集時再進行建模,如knn演算法。
1. 簡述
knn的核心思想就是:物以類聚,人以群分
即給定乙個訓練資料集,對於新的輸入例項,在訓練集中找到與該例項最鄰近的k個例項,這k個例項多數屬於某個類,就把該輸入例項分為這個類
2. k值的選擇
若k值較小,相當於用較小鄰域的例項進行**,近似誤差減小,估計誤差增大,對鄰近的例項點敏感,若鄰近點恰好是雜訊點,則**出錯。總之,k值減小,模型複雜,易過擬合(已知資料**很好,未知資料**差)
若k值較大,相當於用較大鄰域的例項進行**,近似誤差增大,估計誤差減小,較遠的例項點(可能為不相似點)也會參與**,使**出錯。總之,k值增大,模型變簡單
若k=n,簡單地**為訓練集中最多的類,模型過於簡單,忽略大量有用資訊
所以,k值一般靠經驗,或採用交叉驗證法選取最優k值,就是初始取個較小值,之後再不斷調整來達到最優,但這個k值也只是對這個樣本集是最優的,一般採用k為奇數,避免產生票數相等的情況難以抉擇
3.距離度量
這是指如何選取鄰居的問題,即鄰居間的相似度的度量方式
歐氏距離、曼哈頓距離(l1距離、城市區距離)、切比雪夫距離(各個座標距離的最大值)分別為閔可夫斯基距離在p=2/1/∞的特殊情況,分別應用於空間、距離、西洋棋比賽上
另外,還有標準化歐氏距離(後=(前-均值)/ 方差),馬氏距離,巴氏距離,漢明距離(兩個等長字串s1與s2之間的漢明距離定義為將其中乙個變為另外乙個所需要作的最小替換次數),夾角余弦(向量),jaccard係數(集合),皮爾遜係數pcc(變數的相關性)
4 改進
如何尋找鄰居?
最簡單的方法就是對整個樣本集逐一計算距離,全部儲存,再進行查詢
改進方案有兩種,一是對樣本進行組織與整理,分群分層 ,壓縮到接近測試樣本領域的小範圍內(kd樹)。另乙個就是在原有樣本集中挑選出對分類計算有效的樣本,減少樣本數,從而減少計算與儲存(壓縮近鄰演算法)。
壓縮近鄰法
首先定義兩個儲存器,乙個用來存放即將生成的樣本集,稱為store;另一儲存器則存放原樣本集,稱為grabbag。其演算法是:
1. 初始化。store是空集,原樣本集存入grabbag;從grabbag中任意選擇一樣本放入store中作為新樣本集的第乙個樣本。
2. 樣本集生成。在grabbag中取出第i個樣本用store中的當前樣本集按最近鄰法分類。若分類錯誤,則將該樣本從grabbag轉入store中,若分類正確,則將該樣本放回grabbag中。
3. 結束過程。若grabbag中所有樣本在執行第二步時沒有發生轉入store的現象,或grabbag已成空集,則演算法終止,否則轉入第二步。
5.分類決策規則
多數表決規則,即經驗風險最小化
也可以為每個鄰居賦予一定的投票權重,通過它們與測試資料的遠近來分配相應的投票權重(例如距離的倒數1/d2)
matlab**:
k近鄰法 kNN分類
模型原型 sklearn.neighbors.kneighborsclassifier n neighbors 5,weights uniform algorithm auto leaf size 30,p 2,metric minkowski metric params none,n jobs 1...
k 近鄰法KNN 機器學習ML
參考 1.統計學習方法 李航 2.3.4.演算法基本思想 物以類聚,人以群分 存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較,然後演算法提取樣本集中特徵最相似資料 最相鄰 的分類標籤。一般來說,我們只...
HTML CSS知識點概括(2)
1.background img漸變 1.1線性漸變 background image linear gradient 這種漸變在一條直線上從乙個顏色過渡到另乙個顏色 取值 在關鍵字 to 後面加上 top bottom right left 中的某乙個關鍵字或多個關鍵字,例如 to bottom ...