日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实践中学到的最重要的机器学习经验!

發(fā)布時(shí)間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实践中学到的最重要的机器学习经验! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文 | 微調(diào)
源 | 知乎問答

今天我們討論一個(gè)很有實(shí)際意義的問題:你在實(shí)踐中學(xué)到的最重要的機(jī)器學(xué)習(xí)經(jīng)驗(yàn)是什么?以下回答來自知乎優(yōu)秀答主微調(diào)。

1.永遠(yuǎn)保持懷疑

機(jī)器學(xué)習(xí)是最容易得到錯(cuò)誤結(jié)論的一種解決方案。和編程、做表格、或者純粹的數(shù)學(xué)建模不同,機(jī)器學(xué)習(xí)是由數(shù)據(jù)驅(qū)動(dòng),并有很強(qiáng)的黑箱性。因此很多時(shí)候容易得出似是而非的結(jié)論。舉個(gè)最簡單的例子:偽相關(guān)/虛假相關(guān)(spurious correlation),兩個(gè)變量很容易看起來有很強(qiáng)的相關(guān)(參看圖1和2),然而這僅僅是偶然。因此當(dāng)機(jī)器學(xué)習(xí)模型很輕松就達(dá)到很好的效果時(shí),比如百分之百的正確率,你要警惕。除了過擬合以外,你很有可能包含了某個(gè)不該使用的強(qiáng)特征,甚至把標(biāo)簽y也當(dāng)做特征使用了。

▲圖1. 奶酪消耗量與被死于床單(交纏)之間的關(guān)聯(lián)性 [1]▲圖2. 非商業(yè)性空間飛船發(fā)射數(shù)量與社會(huì)學(xué)博士畢業(yè)數(shù)量之間的關(guān)系 [1]

2.尋找“最小預(yù)測單元”,避免追求通過一個(gè)模型預(yù)測多個(gè)目標(biāo)

最清晰易懂,且容易證明正誤的模型就是目標(biāo)明確的模型。我們得知業(yè)務(wù)需求以后,盡量把預(yù)測范圍控制好,不要被同時(shí)實(shí)現(xiàn)多個(gè)目標(biāo)所誘惑。

舉例,如果客戶的需要是預(yù)測明天的天氣,那就做一個(gè)純粹的天氣預(yù)測模型,不要瞻前顧后的想要同時(shí)預(yù)測濕度、溫度等相關(guān)但不是根本的問題。你想要通過單個(gè)模型得到的結(jié)論越多,往往建模和調(diào)參就越復(fù)雜。從單一問題入手,再逐步擴(kuò)展,甚至將知識遷移,都是可以的。

3.簡單有效的模型最好,不要完全棄用“人為規(guī)則”

首先不要為了使用模型而創(chuàng)造問題:機(jī)器學(xué)習(xí)的目標(biāo)是解決問題。因此,從簡單到復(fù)雜模型的“進(jìn)化”才是比較合理的方案。比如如果能用監(jiān)督,就監(jiān)督學(xué)習(xí)。退而求其次才選擇半監(jiān)督或者無監(jiān)督。

另一個(gè)經(jīng)驗(yàn)是,如果一個(gè)問題有現(xiàn)成的規(guī)則,不要完全棄用,也不要追求用機(jī)器學(xué)習(xí)模型徹底替代規(guī)則??梢詮陌胱詣?dòng)模型到自動(dòng)模型進(jìn)行“升級“,這可以理解為迭代過程。比如在機(jī)器學(xué)習(xí)模型不成熟、數(shù)據(jù)量不夠的時(shí)候,僅當(dāng)模型評分高且符合人為規(guī)則時(shí)才使用其預(yù)測結(jié)果,置信度低的預(yù)測結(jié)果依然使用規(guī)則預(yù)測或者人為驗(yàn)證。等到數(shù)據(jù)量和數(shù)據(jù)質(zhì)量上去了,再逐步替換或者舍棄人為規(guī)則。

升級進(jìn)化是錦上添花,不是雪中送炭。在商業(yè)上,我們告訴客戶這叫做“混合系統(tǒng)”Hybrid System,但機(jī)器學(xué)習(xí)上這個(gè)叫“主動(dòng)學(xué)習(xí)”(active learning)。

4.考慮的數(shù)據(jù)的依賴性(dependency)

數(shù)據(jù)往往有時(shí)序或者空間上的相關(guān)性。如果不考慮時(shí)空依賴性,問題往往會(huì)得到簡化,但可能有嚴(yán)重偏差。如果需要考慮時(shí)間與空間上的依賴性,優(yōu)先從簡單的角度入手。

舉個(gè)簡單的例子,圖2和圖3中的數(shù)據(jù)如果不考慮時(shí)空依賴性,都會(huì)導(dǎo)致錯(cuò)誤的理解。解決機(jī)器學(xué)習(xí)問題,如果在不確定數(shù)據(jù)的結(jié)構(gòu)關(guān)系時(shí),有限假設(shè)不存在依賴。如果效果不好,再換用更復(fù)雜的,可以處理依賴性的模型。

▲圖3. O點(diǎn)在單獨(dú)來看的情況下是正常點(diǎn),但考慮到臨近點(diǎn)后就是異常點(diǎn) [2]▲圖4. 紅色部分單獨(dú)來看不是異常,但考慮到臨近點(diǎn)的時(shí)間關(guān)系后就是異常點(diǎn) [3]

5.從回歸到分類、從全部數(shù)據(jù)到部分?jǐn)?shù)據(jù)、從連續(xù)到離散

5.1. 在特定情況下,因?yàn)闂l件限制,我們的回歸模型效果不好或者要求的精度比較低,可以把回歸問題轉(zhuǎn)化為分類問題。

▲圖5. 將預(yù)測漲跌幅度轉(zhuǎn)化為單純預(yù)測“漲”和“跌”

5.2. 同理,如果數(shù)據(jù)的質(zhì)量不連貫,我們可以大膽的拋棄掉一部分?jǐn)?shù)據(jù)。比如下圖中所描述的情況,拋棄掉一部分?jǐn)?shù)據(jù)可以增強(qiáng)中間區(qū)段的模型擬合能力。當(dāng)然,由精簡數(shù)據(jù)后得到的模型不該被用于預(yù)測拋棄數(shù)據(jù)段。

▲圖6. 去掉一部分?jǐn)?shù)據(jù)后,模型擬合程度可能會(huì)大幅度提高 [4]

5.3. 如果需要,對于特征也可以做離散化。連續(xù)變量:變量在特定區(qū)間內(nèi)有無限個(gè)可能取值,如股票的價(jià)格。離散變量:變量在特定區(qū)間內(nèi)的可選取值有限,比如{紅、藍(lán)、黃}三種顏色。從數(shù)學(xué)角度看,連續(xù)變量往往可以被離散化,從而轉(zhuǎn)為離散變量。這種轉(zhuǎn)化可以依賴于固定區(qū)間,或者固定密度,甚至是變化的條件。將連續(xù)變量離散化適合廣義線性模型,如邏輯回歸,而不適合樹模型或者神經(jīng)網(wǎng)絡(luò)。連續(xù)特征離散化的優(yōu)點(diǎn):

  • 降低噪音對模型的干擾,提高魯棒性。假設(shè)一個(gè)特征的正常范圍是[0,1],那么明顯異常的值,如100,不會(huì)造成大的擾動(dòng)

  • 在特征離散化以后,模型過擬合的風(fēng)險(xiǎn)一定程度上也得到了降低

  • 一般經(jīng)過轉(zhuǎn)化后,編碼可以使用獨(dú)熱編碼(one-hot encoding),得到一個(gè)稀疏的表示,方便進(jìn)行矩陣計(jì)算

此處的重點(diǎn)是:部分價(jià)值 >>毫無價(jià)值。將預(yù)測范圍縮小后,預(yù)測效果往往能有大幅度的提高。將數(shù)據(jù)分割后單獨(dú)處理,預(yù)測效果往往也有提升。而數(shù)據(jù)離散化可以有效的提高某些模型的能力。

6. 數(shù)據(jù)比模型更重要,但數(shù)據(jù)不是越多越好

機(jī)器學(xué)習(xí)模型的表現(xiàn)高度依賴于數(shù)據(jù)量 [6],選擇對的模型至少其次,巧婦難為無米之炊。數(shù)據(jù)重要性 >> 模型重要性。

但數(shù)據(jù)不是越多越好,隨機(jī)數(shù)據(jù)中也可能因?yàn)榍珊隙嬖谀撤N關(guān)聯(lián)。就像上文中提到的虛假相關(guān)的例子。Freedman在1989年做過的模擬實(shí)驗(yàn) [5]中發(fā)現(xiàn),即使數(shù)據(jù)全是由噪音構(gòu)成,在適當(dāng)?shù)奶幚砗?#xff0c;也能發(fā)現(xiàn)數(shù)據(jù)中顯著的相關(guān)性:

  • 6個(gè)特征顯著

  • 對回歸的做F-test的P值遠(yuǎn)小于0.05,即回歸存在統(tǒng)計(jì)學(xué)意義

以此為例,統(tǒng)計(jì)學(xué)檢驗(yàn)顯著不代表模型真的有意義。一般來說,需要先確認(rèn)數(shù)據(jù)的來源性,其次要確認(rèn)顯著的特征是否正常,最后需要反復(fù)試驗(yàn)來驗(yàn)證。最重要的是,要依據(jù)人為經(jīng)驗(yàn)選取可能有關(guān)的數(shù)據(jù),這建立在對問題的深入理解上。

7. 模型選擇、評估與調(diào)試

模型選擇是建立在對于問題的理解上,一般是啟發(fā)式(heuristic),也就是基于經(jīng)驗(yàn)所確定的。

  • 優(yōu)先選取符合問題假設(shè)的模型。如樸素貝葉斯假設(shè)特征間的獨(dú)立同分布,而邏輯回歸就沒有這么強(qiáng)的假設(shè)

  • 優(yōu)先選取簡單模型,循序漸進(jìn)

  • 優(yōu)先選取對于數(shù)據(jù)預(yù)處理要求低的模型,如可以處理缺失值,不需要進(jìn)行數(shù)值化轉(zhuǎn)化的模型。比如xgboost或者lightbgm等

  • 用迭代的思路選擇模型,先選擇大方向,再微調(diào)。在模型選擇時(shí)可以使用工具包的默認(rèn)值,確定了大概模型后再進(jìn)行參數(shù)調(diào)整

同時(shí),評估模型時(shí),每次僅選擇一個(gè)標(biāo)準(zhǔn),比如召回率、ROC或者準(zhǔn)確度,同時(shí)優(yōu)化多個(gè)目標(biāo)是很復(fù)雜的:

  • 可以用可視化來直觀對比算法間的優(yōu)劣

  • 控制模型中的隨機(jī)性,保證評估有意義,如選用固定的參數(shù)(如 random_state=42)

  • 用相同的數(shù)據(jù)集來訓(xùn)練、測試不同的模型

  • 善用交叉驗(yàn)證,尤其當(dāng)數(shù)據(jù)集較小的時(shí)候

  • 如果有必要,也可以使用統(tǒng)計(jì)學(xué)檢驗(yàn)

  • 除此之外,還需要考慮到運(yùn)算開銷的問題。訓(xùn)練不同的模型運(yùn)算開銷差別很大,要根據(jù)資源和時(shí)間決定。在資源有限的前提下,可以選擇模型表現(xiàn)相對較差但運(yùn)算開銷小的方法。

    8. 總結(jié)出一套適合自己的“套路”

    開始一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目以前,值得思考幾個(gè)“小問題”:

  • 確定要預(yù)測的目標(biāo),找到項(xiàng)目痛點(diǎn),不追求同時(shí)預(yù)測多個(gè)目標(biāo)

  • 確定解決問題的框架,優(yōu)先使用監(jiān)督學(xué)習(xí),用無監(jiān)督發(fā)掘新思路

  • 結(jié)合已有的規(guī)則,嘗試融合機(jī)器學(xué)習(xí)模型和人為規(guī)則

  • 如果可能,優(yōu)先嘗試分類任務(wù),也可以嘗試將回歸轉(zhuǎn)為分類

  • 從易到難,確定嘗試哪些機(jī)器學(xué)習(xí)模型

  • 要解決的問題是否對于“時(shí)空”存在依賴性,如果可以回避依賴性,可以先試試簡單模型

  • 如果發(fā)現(xiàn)使用全部數(shù)據(jù)效果不好,可以嘗試拋棄部分?jǐn)?shù)據(jù)或分段處理

  • 在做數(shù)據(jù)工程時(shí),應(yīng)該考慮到的一些問題:

  • 數(shù)據(jù)并非越多越好,多余的無關(guān)特征會(huì)因?yàn)閭蜗嚓P(guān)、巧合而影響模型

  • 對數(shù)據(jù)做相關(guān)性分析的時(shí)候,善用可視化可以一目了然的發(fā)現(xiàn)問題

  • 對于高度相關(guān)的特征,移除或者合并前要三思,可能并不會(huì)提高模型能力

  • 如果選用了線性模型,可能需要對特征進(jìn)行離散化

  • 對于大部分模型來說,歸一化或者標(biāo)準(zhǔn)化是必不可少的步驟,至少“無害”

  • 如果問題較為復(fù)雜,盡量選擇非線性的魯棒性強(qiáng)的模型:

  • 在模型選擇與評估時(shí),考慮到一些問題:

  • 根據(jù)要解決的問題和對數(shù)據(jù)的理解,大致決定出模型的搜索范圍,如嘗試SVM,邏輯回歸,隨機(jī)森林,xgboost。如資源允許,可擴(kuò)大模型候選名單

  • 根據(jù)要解決的問題和對數(shù)據(jù)的理解,決定模型的評估標(biāo)準(zhǔn)。雖然我們建議選擇單一的評估標(biāo)準(zhǔn)進(jìn)行對比,但推薦計(jì)算所有可能的評估標(biāo)準(zhǔn)

  • 根據(jù)具體問題中的數(shù)據(jù)量大小,以及模型穩(wěn)定性,決定是否使用交叉驗(yàn)證

  • 結(jié)合參數(shù)搜索、交叉驗(yàn)證方法,通過選定的評估標(biāo)準(zhǔn)從候選模型中找到表現(xiàn)最好的模型

  • 對上一步中的所選模型進(jìn)行微調(diào)

  • 迭代以上步驟直到找到最優(yōu)的模型

  • 還有很多摔過的坑,吃過的苦,有限于篇幅就不展開了。如果只允許我說一條我學(xué)到的最重要的經(jīng)驗(yàn),那一定是:保持獨(dú)立思考的能力,不要?jiǎng)e人說什么/書上說什么/論文里寫什么,你就相信什么。畢竟在機(jī)器學(xué)習(xí)的世界里,我們每個(gè)人都是“民科”:)

    來源:知乎問答https://www.zhihu.com/question/46301335/answer/317361262

    后臺(tái)回復(fù)關(guān)鍵詞【入群

    加入賣萌屋NLP/IR/Rec與求職討論群

    后臺(tái)回復(fù)關(guān)鍵詞【頂會(huì)

    獲取ACL、CIKM等各大頂會(huì)論文集!

    ?

    [1]http://tylervigen.com/spurious-correlations

    [2]Mira, A., Bhattacharyya, D.K. and Saharia, S., 2012. RODHA: robust outlier detection using hybrid approach. American Journal of Intelligent Systems, 2(5), pp.129-140.

    [3]http://researchmining.blogspot.ca/2012/10/types-of-outliers.html

    [4]支持向量機(jī)-從入門到放棄(https://zhuanlan.zhihu.com/p/30596284)

    [5]Freedman, L.S. and Pee, D., 1989. Return to a note on screening regression equations. The American Statistician, 43(4), pp.279-282.

    總結(jié)

    以上是生活随笔為你收集整理的实践中学到的最重要的机器学习经验!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。