0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺析機(jī)器學(xué)習(xí)建模中常見的7個(gè)誤區(qū)

zhKF_jqr_AI ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-07-28 09:27 ? 次閱讀

Cheng-Tao Chu總結(jié)了機(jī)器學(xué)習(xí)建模中常見的誤區(qū),提醒讀者注意算法的假定未必適合手頭的數(shù)據(jù)。Chu曾任Google欺詐支付分析首席工程師,LinkedIn搜索相關(guān)性負(fù)責(zé)人,Square欺詐檢測(cè)負(fù)責(zé)人,Codecademy數(shù)據(jù)分析主管,現(xiàn)為都鐸投資公司下一代研究、模擬、交易基礎(chǔ)設(shè)施MacroPipeline的首席架構(gòu)師。Chu在NIPS 2006的論文“基于多核的機(jī)器學(xué)習(xí)Map-Reduce”引用超過(guò)1400次,是開源項(xiàng)目Apache Mahout的基礎(chǔ)。

統(tǒng)計(jì)建模和工程有許多相似之處。

在工程上,有多種方法構(gòu)建一個(gè)鍵值存儲(chǔ),而每種設(shè)計(jì)對(duì)使用模式有著不同的假設(shè)。在統(tǒng)計(jì)建模中,有多種算法構(gòu)建一個(gè)分類器,而每種算法對(duì)數(shù)據(jù)有著不同的假設(shè)。

當(dāng)處理小規(guī)模數(shù)據(jù)時(shí),由于試驗(yàn)的成本較低,盡可能多地嘗試各種算法然后選出最好的算法,是很合理的選擇。但是當(dāng)我們碰到“大數(shù)據(jù)”的時(shí)候,事先分析數(shù)據(jù)并據(jù)此設(shè)計(jì)建模流程(預(yù)處理、建模、優(yōu)化算法、評(píng)估、產(chǎn)品化),會(huì)有很大幫助。

我在前一篇博客文章就提到了,有幾十種方法解決一個(gè)給定的建模問(wèn)題。每種模型有著不同的假定,辨識(shí)哪些假設(shè)合理,并沒(méi)有顯而易見的方法。在業(yè)界,大多數(shù)從業(yè)人員選擇他們最熟悉的建模算法,而不是最適合數(shù)據(jù)的算法。在這篇文章中,我想要分享一些常見的誤區(qū),至于最佳實(shí)踐,留待以后的文章。

1. 理所當(dāng)然地使用默認(rèn)損失函數(shù)

很多從業(yè)人員在訓(xùn)練和挑選模型的時(shí)候使用默認(rèn)的損失函數(shù)(例如,均方誤差)。在實(shí)踐中,默認(rèn)的損失函數(shù)很少對(duì)齊業(yè)務(wù)的目標(biāo)。就拿欺詐檢測(cè)來(lái)說(shuō)吧。當(dāng)嘗試檢測(cè)欺詐性交易時(shí),業(yè)務(wù)目標(biāo)是最小化欺詐的損失。而二元分類器的默認(rèn)損失函數(shù)給予假陽(yáng)性和假陰性同樣的權(quán)重。為了對(duì)齊業(yè)務(wù)目標(biāo),損失函數(shù)不僅應(yīng)該加大懲罰假陰性的力度,同時(shí)懲罰假陰性的力度也應(yīng)該和損失金額成比例。此外,欺詐檢測(cè)中的數(shù)據(jù)集通常包含高度失衡的標(biāo)簽。在這些情形下,損失函數(shù)需要向罕見類別方向傾斜。

2. 在非線性相互作用中使用原始的線性模型

構(gòu)建二元分類器時(shí),出于簡(jiǎn)單性,許多從業(yè)人員立刻拿出邏輯回歸。不過(guò),很多人忘了,邏輯回歸是一個(gè)線性模型,因此需要手工編碼預(yù)測(cè)因子中的非線性相互作用。回到欺詐性檢測(cè)的例子,“賬單地址 = 配送地址且交易額 < $50”這樣的高階相互作用特征對(duì)良好的模型表現(xiàn)而言不可或缺。所以,這類問(wèn)題應(yīng)該考慮非線性模型,比如配有核函數(shù)的SVM、基于決策樹的分類器這樣內(nèi)置高階相互作用特征支持的模型。

3. 忘了離群值

離群值值得注意。取決于上下文,它們或者需要特別關(guān)注,或者應(yīng)該完全忽略。以利潤(rùn)預(yù)測(cè)為例。如果觀察到了不同尋常的利率尖峰,對(duì)其給予額外關(guān)注,查明導(dǎo)致尖峰的原因,應(yīng)該是個(gè)好主意。不過(guò)如果離群值是由機(jī)制誤差、測(cè)量誤差或其他任何不可推廣的原因造成的,那么,在將數(shù)據(jù)傳給建模算法前,過(guò)濾掉這些離群值是個(gè)好主意。

相比其他模型,一些模型對(duì)離群值更敏感。比如,AdaBoost可能會(huì)將那些離群值視作“困難”情形,給予離群值巨大的權(quán)重,而決策樹可能僅僅將每個(gè)離群值視作假分類。如果數(shù)據(jù)集包含相當(dāng)數(shù)量的離群值,需要使用在離群值上魯棒性好的建模算法,或者過(guò)濾掉離群值,這一點(diǎn)很重要。

4. 當(dāng)n遠(yuǎn)小于p時(shí)使用高方差模型

SVM是最流行的現(xiàn)成的建模算法之一,而其最強(qiáng)力的特性之一是使用不同的核調(diào)整模型。SVM的核可以看成一種自動(dòng)組合現(xiàn)有特征至更豐富的特征空間的方法。由于這一強(qiáng)力特性幾乎沒(méi)什么代價(jià),大多數(shù)從業(yè)人員在訓(xùn)練SVM模型時(shí)默認(rèn)使用核。然而,當(dāng)n << p(樣本數(shù)遠(yuǎn)小于特征數(shù))時(shí)——在業(yè)界很常見,比如醫(yī)療數(shù)據(jù)——更豐富的特征空間意味著高得多的過(guò)擬合數(shù)據(jù)的風(fēng)險(xiǎn)。事實(shí)上,當(dāng)n << p時(shí),應(yīng)該完全避免高方差模型。

5. 使用L1/L2/...正則化時(shí)不做標(biāo)準(zhǔn)化

應(yīng)用L1或L2懲罰大系數(shù)是常用的正則化線性回歸或邏輯回歸的方法。然而,許多從業(yè)人員沒(méi)有意識(shí)到在應(yīng)用這些正則化技術(shù)之前標(biāo)準(zhǔn)化特征的重要性。

回到欺詐檢測(cè)的例子,想象一個(gè)交易額特征的線性回歸模型。在沒(méi)有正則化的情況下,如果交易額的單位是元,擬合的參數(shù)大概會(huì)是單位是分的情況下擬合的參數(shù)的一百倍。而在有正則化的情況下,由于L1/L2對(duì)較大系數(shù)懲罰的力度更大,以元為單位的交易額會(huì)受到更多懲罰。因此,正則化出現(xiàn)了偏差,傾向于懲罰尺度較小的特征。為了緩解這一問(wèn)題,在預(yù)處理步驟中標(biāo)準(zhǔn)化所有特征,讓它們位于同一水平線上。

6. 使用線性模型時(shí)沒(méi)有考慮多重共線性

想象一下,創(chuàng)建一個(gè)包含兩個(gè)變量X1、X2的線性模型,假定標(biāo)準(zhǔn)答案是Y = X1+ X2。理想情況下,如果觀測(cè)數(shù)據(jù)的噪聲不大,線性回歸方案將重建標(biāo)準(zhǔn)答案。然而,如果X1和X2共線,那么在大多數(shù)優(yōu)化算法看來(lái),Y = 2 * X1、Y = 3 * X1- X2、Y = 100 * X1- 99 * X2都很不錯(cuò)。這可能不會(huì)造成什么妨害,因?yàn)樗⑽磳?dǎo)致估計(jì)出現(xiàn)偏差。不過(guò),它確實(shí)造成了不良的狀況,使得系數(shù)的權(quán)重難以解釋。

7. 將線性回歸或邏輯回歸的系數(shù)絕對(duì)值視作特征重要性

因?yàn)楹芏喱F(xiàn)成的線性回歸器返回每個(gè)系數(shù)的p值,許多從業(yè)人員相信,線性模型的系數(shù)的絕對(duì)值越大,相應(yīng)的特征就越重要。其實(shí)這極少成立:

改變變量的尺度會(huì)改變系數(shù)的絕對(duì)值

如果特征具有多重共線性,系數(shù)可以從一個(gè)特征移動(dòng)到其他特征。同時(shí),數(shù)據(jù)集的特征越多,特征具有多重共線性的概率就越高,通過(guò)系數(shù)解釋特征重要性就越不可靠。

以上是機(jī)器學(xué)習(xí)實(shí)踐中常見的7個(gè)誤區(qū)。這個(gè)列表并不求全,主要用意是激發(fā)讀者的思考,建模的假定可能并不適用于手頭的數(shù)據(jù)。為了達(dá)到最佳的模型表現(xiàn),選擇具有最合適的假定的建模算法很重要——而不是直接選擇你最熟悉的算法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:老司機(jī)帶你避開機(jī)器學(xué)習(xí)那些坑

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    電路設(shè)計(jì)常見的八個(gè)誤區(qū)

    電路設(shè)計(jì)常見的八個(gè)誤區(qū):現(xiàn)象一:這板子的PCB設(shè)計(jì)要求不高,就用細(xì)一點(diǎn)的線,自動(dòng)布吧;現(xiàn)象二:這些總線信號(hào)都用電阻拉一下,感覺放心些;現(xiàn)象三:CPU和FPGA的這些不用的I/O口怎么處理呢?先讓它空著吧,以后再說(shuō)。
    發(fā)表于 12-28 11:46 ?1385次閱讀

    單片機(jī)學(xué)習(xí)中常見的問(wèn)題和誤區(qū)

    ,對(duì)一些知識(shí)把握不準(zhǔn),也不可避免地形成一些誤解。根據(jù)本人在教學(xué)及實(shí)踐中的探討和摸索,總結(jié)出這些在學(xué)習(xí)過(guò)程中常見的問(wèn)題和誤區(qū)并給予分析和糾正。2.單片機(jī)學(xué)習(xí)中的
    發(fā)表于 02-09 00:11

    初學(xué)單片機(jī)常見誤區(qū)

    學(xué)習(xí)單片機(jī)常見誤區(qū)
    發(fā)表于 04-02 06:20

    電路穩(wěn)定性設(shè)計(jì)中常見的幾個(gè)誤區(qū),你都知道嗎?

    電路設(shè)計(jì)不僅有很多技巧,同樣也存在很多誤區(qū),本文將介紹電路穩(wěn)定性設(shè)計(jì)當(dāng)中的常見誤區(qū)誤區(qū)1:產(chǎn)品故障=產(chǎn)品不可靠 產(chǎn)品出現(xiàn)問(wèn)題,有時(shí)候并不是研發(fā)的問(wèn)題,曾經(jīng)有案例,面向國(guó)內(nèi)中等以上發(fā)達(dá)
    發(fā)表于 12-18 07:00

    10個(gè)常見的_Android_新手誤區(qū)

    10個(gè)常見的_Android_新手誤區(qū)
    發(fā)表于 03-19 11:23 ?0次下載

    從零到python機(jī)器學(xué)習(xí)大神的7個(gè)步驟

    有許多python機(jī)器學(xué)習(xí)資源在線免費(fèi)提供,從哪開始?如何進(jìn)行?從零到python機(jī)器學(xué)習(xí)大神只要7個(gè)
    發(fā)表于 11-15 12:29 ?1.3w次閱讀

    糾正10個(gè)有關(guān)編程的常見誤區(qū)

    在編程行業(yè),一直流傳著很多誤區(qū)。下面讓我們一起來(lái)糾正10個(gè)有關(guān)編程的常見誤區(qū),以幫助編程初學(xué)者或有志成為程序員的人,更理性地認(rèn)識(shí)編程。
    的頭像 發(fā)表于 02-02 16:02 ?3322次閱讀

    工業(yè)機(jī)器常見的三大應(yīng)用誤區(qū)盤點(diǎn)

    眾所周知,機(jī)器人投資通常從幾萬(wàn)到百萬(wàn)美元,在第一時(shí)間作出正確的選擇并且避免常見的錯(cuò)誤是非常重要的。錯(cuò)誤將導(dǎo)致不必要的開支或者任務(wù)的延期,接下來(lái)小編列出了機(jī)器人應(yīng)用的幾大誤區(qū),快來(lái)看看吧
    的頭像 發(fā)表于 07-24 11:00 ?2773次閱讀

    機(jī)器學(xué)習(xí)研究中常見的七大謠傳總結(jié)

    學(xué)習(xí)深度學(xué)習(xí)的過(guò)程中,我們常會(huì)遇到各種謠傳,也會(huì)遇到各種想當(dāng)然的「執(zhí)念」。在本文中,作者總結(jié)了機(jī)器學(xué)習(xí)研究中常見的七大謠傳,他們很多都是我
    的頭像 發(fā)表于 02-26 14:05 ?2803次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>研究<b class='flag-5'>中常見</b>的七大謠傳總結(jié)

    機(jī)器學(xué)習(xí)十大算法精髓總結(jié)

    常見機(jī)器學(xué)習(xí)算法是學(xué)習(xí)映射Y = f(X)來(lái)預(yù)測(cè)新X的Y,這叫做預(yù)測(cè)建模或預(yù)測(cè)分析。
    的頭像 發(fā)表于 05-05 09:21 ?3725次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>十大算法精髓總結(jié)

    機(jī)器學(xué)習(xí)在衛(wèi)星遙測(cè)分析建模中的應(yīng)用綜述

    機(jī)器學(xué)習(xí)在衛(wèi)星遙測(cè)分析建模中的應(yīng)用綜述
    發(fā)表于 06-29 16:40 ?55次下載

    17個(gè)機(jī)器學(xué)習(xí)的常用算法

    根據(jù)數(shù)據(jù)類型的不同,對(duì)一個(gè)問(wèn)題的建模有不同的方式。在機(jī)器學(xué)習(xí)或者人工智能領(lǐng)域,人們首先會(huì)考慮算法的學(xué)習(xí)方式。在
    的頭像 發(fā)表于 08-11 11:20 ?1759次閱讀

    17個(gè)機(jī)器學(xué)習(xí)的常用算法!

    源自:AI知識(shí)干貨 根據(jù)數(shù)據(jù)類型的不同,對(duì)一個(gè)問(wèn)題的建模有不同的方式。在機(jī)器學(xué)習(xí)或者人工智能領(lǐng)域,人們首先會(huì)考慮算法的學(xué)習(xí)方式。在
    的頭像 發(fā)表于 08-22 09:57 ?2118次閱讀
    17<b class='flag-5'>個(gè)</b><b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的常用算法!

    消除 AC 驅(qū)動(dòng)器的 8 個(gè)常見誤區(qū)

    消除 AC 驅(qū)動(dòng)器的 8 個(gè)常見誤區(qū)
    發(fā)表于 11-04 09:52 ?0次下載
    消除 AC 驅(qū)動(dòng)器的 8 <b class='flag-5'>個(gè)</b><b class='flag-5'>常見</b><b class='flag-5'>誤區(qū)</b>

    新手學(xué)習(xí)單片機(jī)最常見的六大誤區(qū)!

    ,扮演著至關(guān)重要的角色。然而,學(xué)習(xí)單片機(jī)并非一帆風(fēng)順,初學(xué)者常常會(huì)面臨各種挑戰(zhàn)和困惑。因此,了解并避免新手常見誤區(qū),將有助于使學(xué)習(xí)過(guò)程更加順利和愉快。新手
    的頭像 發(fā)表于 03-28 08:03 ?722次閱讀
    新手<b class='flag-5'>學(xué)習(xí)</b>單片機(jī)最<b class='flag-5'>常見</b>的六大<b class='flag-5'>誤區(qū)</b>!