閱讀筆記:A Few useful things to Know About machine Learning

這是Machine Learning領域的經典論文,文中提到了ML相關的12個keys,並自稱這些keys是「black art」,我以爲有點像ML的「最佳實踐」。算法

網上有此文的中文翻譯,寫得很詳細,附上兩個,並感謝這兩位同窗的工做:dom

https://blog.csdn.net/u011467621/article/details/48243135機器學習

https://blog.csdn.net/danameng/article/details/21563093函數

想看完整翻譯的同窗能夠參考上面兩篇文章,我在這裏簡要記錄一下我讀後的一些思考。學習

12個keys,逐條來看。測試

一、ML = Representation + Evaluation + Optimition

Representation是一個有點困擾個人詞,看了Table 1中,Representation的舉例是KNN、SVM、Naive Beyes,我以爲換成Model來表達更合適,可是後來仔細一想,使用Representation還有更有深意。Representation翻譯過來是「表達、表述」,因此咱們能夠理解爲,ML的模型是一種「表達方式」,也就是說,每個模型都在以本身的方式來「表達」數據,好比,DT用樹形結構表達數據,KNN用空間距離表達數據,Naive Beyes用機率表達數據,這彷佛加深了我對Model本質的理解。lua

Evaluation是評價、評估的意思,是損失函數和模型評估函數的合體,從本質上講,這兩類東西實際上是同質的,都是用來評估模型的,只不過評估的角度不一樣,往極端了說,若是你認爲一個函數既能夠做爲損失函數也能夠用於模型評估,那你徹底能夠只用一個函數。spa

另外,文中的Table 1值得收藏,也貼在這裏。.net

二、泛化能力是ML的核心

泛化能力是 誤差(bias) + 方差(variance) + 噪聲(noise) 的總和,這個在周志華老師的書中有詳細的論述。翻譯

用打靶圖來解釋bias和variance挺直觀的,附上原圖:

三、只有數據是不夠滴

在作ML時,選擇模型、選擇損失函數、參數尋優等環節都隱含了不少假設,在這些假設的前提下,才能訓練出有用的模型。

反過來講,每個假設都是對建模的一個約束,應該嘗試不一樣的假設,才能找到最佳的那一個。

四、過擬合有不少種

過擬合(overfit)在ML中很常見,緣由多是訓練數據太少、模型太複雜或其餘。解決辦法是交叉驗證、正則化等。

這一點實際上是和第2點緊密聯繫的,能夠放到一塊兒來理解。泛化偏差裏包括noise項,可是這並意味着noise是致使過擬合的緣由,即便沒有noise,過擬合同樣會發生。

五、高維未見得有益

直覺上講,特徵越多,對數據的描述角度越多,ML的效果應該越好,事實並不是如此。

維數多可能致使數據量相對不足,或者某些不重要的特徵反而對模型效果有害,相似於引入了噪聲項。

這也提醒咱們,特徵不是越多越好,要利用真正「有用」的特徵。那麼,怎麼知道一個特徵是否有用,能夠利用諸如Lasso、feature_importance 等方法或參數來評估和篩選。

六、理論僅僅是理論

實踐和理論是有差距的,理論提出的不少「理想狀況」或說「極限狀況」在實踐中每每達不到。至於到底有哪些理論,既然實踐不大有用,我也沒細看,哈哈。

七、特徵是關鍵

仍是那句老話:特徵決定機器學習的上限,模型只是在逼近這個上限。

從實踐角度看,計算特徵光靠數理知識確定不行,對數據來源的理解是關鍵,也就是咱們常說的,要理解業務,此外還須要一些直覺和創造力。

另外,有一個問題值得注意,單個特徵沒用,不表明組合起來沒用,一個典型例子是異或(XOR),feature A 、feature B 和 A XOR B是沒有相關性的。這也提醒咱們,在構造特徵時,能夠考慮加入特徵的組合變換,說不定會收穫奇效。

八、收集更多數據比調優算法更實用

若是找到了有用的特徵,可是模型的泛化偏差仍是很差,應該收集更多數據仍是對算法作調優?

實踐告訴咱們,收集更多數據更有效。

因此,在處理實際問題時,每每會預先選好幾個Model,好比 RandomForest、GBDT,模型內部的參數也肯定爲幾個經驗值,而後用構造出的特徵作訓練和測試,看AUC、TPR、FPR等指標,效果很差時,優先調整feature並爭取得到更多的數據,模型的選型和參數調優是最不重要的。

九、用多個模型來學習

前面提到過,每一個Model有隱含的假設條件和適用範圍,ML在處理實際問題時,未必能肯定用哪一種模型更好,因此最好的辦法是多個模型一塊兒用,而後利用ensemble方法把多個模型聚合起來,這樣每每會獲得比較好的學習效果。

十、簡單未必精確

這是對奧卡姆剃刀原理的一次矯正,咱們不能由於簡單的模型不容易過擬合或者簡單的模型恰好效果好,就放棄看似複雜的模型。

在實際應用中,效果比較好的模型每每是多個簡單模型ensemble後造成的複雜模型,這也能說明,單純追求簡單是錯的,泛化能力強是咱們追求的終極目標。

十一、可表示不等於可學習

這一點大約是對ML侷限性的闡述,ML並不是萬能鑰匙,有時ML就是沒法取得很好的效果。

十二、相關性不等於因果關係

ML通常只能發現特徵之間的相關關係,相關關係是因果關係的基礎,可是不等於因果關係,並且ML使用的是觀測數據,不是實驗數據,咱們沒法自行驗證因果關係是否成立。

因此,咱們要從業務角度理解相關關係,並對此保持警戒,由於這樣的關係極可能是不穩定的甚至稍縱即逝的假象。

 

原文連接:https://homes.cs.washington.edu/~pedrod/papers/cacm12.pdf

相關文章
相關標籤/搜索