機器學習筆記7 KNN K Means

2021-08-25 06:02:05 字數 1965 閱讀 1111

table of contents

三種監督學習演算法

有監督學習演算法

無監督半監督

knn(k-nearest neighbor/k-近鄰演算法)

基本思想:

問題及優化方法

k-means

基本思想

k-means演算法的侷限

訓練資料中同時擁有輸入變數和輸出變數,用乙個演算法把從輸入到輸出的對映關係學習出來,當我們拿到新的資料後,就可以通過已經被學習出的對映關係(模型),得到相應的輸出。有監督學習的**結果可控,優化目標明確,只要方法得當,資料***,一般模型質量也能比較好。在實際問題上的應用,以有監督學習為主。

訓練資料中只有輸入變數並沒有輸出變數,無監督學習的目的是將這些訓練資料潛在的結構或者分布找出來,當我們拿到新的輸入資料時有更多的了解。

是一種混合了有監督和無監督學習的方法。有監督學習雖然有效,但標註資料(給訓練資料x指定正確的y)在目前還是一種勞動力密集型的人工勞動,而且大量資料都沒有被人工標註過。

它的學習方法是先用無監督學習技術來發現和學習輸入變數的結構;然後用有監督學習對未標註資料的輸出結果進行「猜測」;最後再將帶著猜測標籤的資料作為訓練資料訓練有監督模型。

knn是一種有監督學習演算法既可以用於分類,又可以用於回歸的非引數統計方法。

訓練資料報括樣本的特徵向量(x)和標籤(y);k是乙個常數,由使用者來定義,k值越大,受雜訊的影響越小;但k值越大,也越容易模糊類別之間的界限;乙個沒有標籤的樣本進入演算法後,首先找到與它距離最近的k個樣本,然後用它這k個最近鄰中出現次數最多的標籤來確定它的標籤,或者是取k個近鄰的目標值平均數,作為未知物件的**結果。

多數表決法有個問題:如果訓練樣本的類別分布不均衡,出現頻率較多的樣本將會主導**結果。

這一問題的解決辦法有多種,其中常見的一種是:不再簡單計算k個近鄰中的多數,而是同時考慮k個近鄰的距離,k近鄰中每乙個樣本的類別(或目標值)都以距離的倒數為權值,最後求全體加權結果。

是一種聚類演算法,和降維演算法同屬於無監督學習演算法。聚類就是通過對樣本靜態特徵的分析,把相似的物件分成不同子集(「簇」),被分到同乙個子集中的樣本物件都具有相似的屬性。

假設有n個樣本(x1,x2,…,xn),每個都是d維實向量,kmeans 聚類的目標是將它們分為k個簇(k⩽n),這些簇表示為s=(s1,s2,…,sk)。kmeans 演算法的目標是使得簇內平方和(within-cluster sum of squares,wcss )最小:

其中μi是si的重心。

使用者確定k值,並將n個樣本投射為特徵空間(一般為歐氏空間)中的n個點(k⩽n);

演算法在這n個點中隨機選取k個點,作為初始的「簇核心」;

分別計算每個樣本點到k個簇核心的距離(這裡的距離一般取歐氏距離或余弦距離),找到離該點最近的簇核心,將它歸屬到對應的簇;設此時為時刻t,t時刻si的簇核心為μ(t)i。將某個樣本點xp歸入到簇s(t)i的原則是:它歸入該簇後,對該簇 wcss 的貢獻最小。因為 wcss 等於簇中各點到該簇核心的歐氏距離平方和,又因為在每次進行 step 3之前,我們已經認定了當時所有簇的簇核心μ(t)i,i=1,2,...,k已經存在。因此只要把xp分配到離它最近的簇核心即可 。

所有點都歸屬到簇之後,n個點就分為了k個簇。之後重新計算每個簇的重心(平均距離中心),即對於該簇中的所有樣本求均值,

反覆迭代3-4,直到簇核心不再移動為止。

上述演算法稱為lloyd's 演算法,是一種最常見的用於實現 kmeans 的啟發式演算法(一種基於直觀或經驗構造的演算法),通常情況它時間複雜度是 o(nkdi),其中n為樣本數,k為簇數,d為樣本維度數,而i為從開始到收斂的迭代次數。

kmeans 簡單直觀,有了啟發式演算法後,計算複雜度也可以接受,但是:

這也就造成了 kmeans 的應用侷限,使得它並不適合所有的資料。例如,對於非球形簇,或者多個簇之間尺寸和密度相差較大的情況,kmeans 就處理不好。

機器學習筆記 7 邏輯回歸

邏輯回歸 logistic 實際上是線性回歸推導出來的。而且是一種分類學習方法。由於簡單的二分類0 1影象不連續,我們想找到一種連續且可微的函式替換他。logistic function 正是這樣乙個函式 y 11 e z看看圖 是通過邏輯回歸根據花萼和花瓣的大小區別出是 0花 還是 1花 codi...

機器學習學習筆記

2.機器學習書籍 機器學習tom,這個是老經典,就是翻譯欠佳 prml,這個書正版的超貴,但是比較新且系統,可以通過其他途徑搞個副本。3.自己動手編碼實現2 3種經典演算法,比如svm,lr,bpnn等。4.了解spark上目前支援的機器學習方法的用途和用法,這個在日常工作中會用到。知道的多一點,方...

機器學習 學習筆記

關於梯度下降演算法的優化與 會有三種方法優化梯度下降演算法 1.共軛梯度下降法 conjugate 2.變尺度法 bfgs 3.限制變尺度法 l bfgs 這些方法的好處是 1.不用選擇學習速率 2.收斂的速度快,執行效率高 但是她們的缺點在於 實現她們的方法太複雜,所以我們就可以使用語言的內建庫函...