Machine Learning “for Dummies” (part 2)

機器學習“傻瓜書“

       回到鳶尾花的故事:我們有一系列用花、萼花瓣的寬和長以及種類描述的鳶尾花表,同時有一朵奇葩(姑且稱爲神祕花),我們要找到它的類屬性。爲了實現這個任務,我們假設鳶尾花的屬性可以推測其種類。
方案1:相同的觀測值
我們首先容易想到的方法是尋找另外一個有相同花瓣/花萼長寬屬性的鳶尾花。如果我們找到了這樣的鳶尾花,那麼它的種類很可能和神祕花是相同的。然而我們不能期待一定有這麼精確的尺寸。實際上,總會有點些許不同,你無法找到一個匹配的觀測值。

方案2:1-最近鄰
    取而代之的,我們可以尋找幾乎相同的。換句話說就是我們尋找帶有接近屬性的鳶尾花。如果兩朵花有相似的尺寸,他們看起來會很一樣,因此他們可能是一個種類。
但是如果有幾種不同類的花都和我們的神祕花看起來很相似,這就是個問題了。再次進擊思路,我們找其中最相似的那朵(鶴立雞羣的一支)。這意味着我們要恰當地定義什麼叫兩朵花相似,以及定義一朵鳶尾花a比其他的花都要更類似於花b。
科學工作者的做法是定義兩朵花間的"距離"(distance)。如果兩朵花距離很大,那麼他們是不同類的,如果兩朵花的距離很小,那就說明他們相似。有很多定義距離的方式。例如經常使用的一種叫做歐幾里得距離。這個叫歐式距離的"怪叔叔"其實和你一般認知上的距離是一樣的。
雖然,很容易理解地圖上兩點的(歐幾里德)距離;但是對於理解兩朵鳶尾花的距離可能還是有些障礙。
爲了計算這個距離我們要回憶一下一個數的"平方"和"平方根"的概念。平方就是一個數乘以它自己,例如2的平方就是2*2=4.求平方根是相反的過程,4的平方根是2。
爲了計算距離,你需要把不同屬性值的平方相加然後再求平方根。示範如下:


前兩朵鳶尾花的距離是:


第1朵和第3的距離是:


    上面計算得來的第2個距離顯然更小(3.70比3.90小),這意味着跟第2朵相比,第3朵鳶尾花與第1朵更相似。
有的人已經注意到了歐式距離實際上就是勾股定理。
現在你可能已經明白了怎麼找到最相似的鳶尾花:計算出神祕花和其他所有鳶尾花的距離,找到距離最小的那朵。這個方案是在實際當中被經常使用的,稱作"1-最近鄰"。


方案3:K-最近鄰
    一般,1-最近鄰工作良好,但是有時候會因爲各種原因而顯得乏力。其中一種原因是屬性的度量糟糕或者不夠精確。這樣,距離的度量也會糟糕,算法將不能找到真正的Mr.right(最正確的類)。
科學工作者已經找到一個簡單的方法解決這個問題:思路進擊,咱們尋找最相似的5朵而不是1朵。如果與神祕花最相似的5朵鳶尾花都屬於一個類,問題就很簡單了:神祕花的類就是這5朵最接地氣兒的鳶尾花所屬的類。
但是呢,如果5壯士(5朵最接近之花)擁有不同的類屬,就要做點事情了:科學工作者會統計每朵花所屬類別的數量,數量最多的那個類就代表神祕花的類。例如,給出5個最接近之花,其中1個是 Setosa,1個是Versicolour,剩下的都是Viginica,因此神祕花很可能也是Viginica。
這個方案就叫做5-最近鄰。

    思維進擊的你肯定會問爲啥子是找最接近的5朵?咋不是倆或者50呢?你真機智,這樣類似的算法就叫做K-最近鄰(k=2,……50,……),很難回答哪種算法是最棒的——它依賴於具體的問題。在實際運用當中,科學工作者會經常測試這些值,選擇最好的那個。
下一篇咱們嘮一嘮年輕而有朝氣的強大算法——隨機森林,盡情享受吧。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章