想要實(shí)現(xiàn)靠譜的機(jī)器學(xué)習(xí)?一定要避免這九點(diǎn)
從事IT領(lǐng)域工作二十年以來(lái),我發(fā)現(xiàn)人工智能技術(shù)逐步從概念轉(zhuǎn)向?qū)嶋H——機(jī)器學(xué)習(xí)技術(shù)位于前沿,并且變得更易于使用,即使對(duì)于沒(méi)有專(zhuān)業(yè)知識(shí)的團(tuán)隊(duì)也是如此。
隨著越來(lái)越多的團(tuán)隊(duì)使用預(yù)測(cè)模型,領(lǐng)導(dǎo)者和管理者必須意識(shí)到可能會(huì)扭曲團(tuán)隊(duì)工作結(jié)果的常見(jiàn)問(wèn)題。為了實(shí)現(xiàn)可靠的機(jī)器學(xué)習(xí)過(guò)程,以下是要避免的九個(gè)常見(jiàn)陷阱,以及可采用的最佳實(shí)踐方法。
陷阱1:抽樣偏差
任何機(jī)器學(xué)習(xí)項(xiàng)目的起點(diǎn)都是選擇訓(xùn)練數(shù)據(jù)。通常,組織機(jī)構(gòu)有一些可用的數(shù)據(jù),或者可以識(shí)別相關(guān)的外部供應(yīng)商,例如國(guó)營(yíng)企業(yè)或行業(yè)協(xié)會(huì)。這是問(wèn)題開(kāi)始的地方。
建模團(tuán)隊(duì)及其業(yè)務(wù)贊助商必須定義要使用的數(shù)據(jù)集。選擇一個(gè)會(huì)歪曲或低估實(shí)際案例的數(shù)據(jù)集會(huì)很容易引起偏差,這會(huì)扭曲結(jié)果。例如,一個(gè)訪問(wèn)只選擇在特定位置行走的人群,但卻將他們當(dāng)作健康人群的過(guò)度代表。
解決方案:為避免采樣偏差,團(tuán)隊(duì)必須保證他們是真正地隨機(jī)選擇數(shù)據(jù),而不是僅僅因?yàn)槭褂煤?jiǎn)單就使用特定案例。對(duì)于指導(dǎo)有效的數(shù)據(jù)選擇而言,理想數(shù)據(jù)集的清晰定義和模型的邏輯至關(guān)重要。通過(guò)在早期階段與企業(yè)所有者合作,讓幾位評(píng)審人員驗(yàn)證選擇標(biāo)準(zhǔn),機(jī)器學(xué)習(xí)團(tuán)隊(duì)可以確保他們的數(shù)據(jù)采樣方法有用并可靠。
陷阱2:不相關(guān)的功能選擇
在許多情況下,由于變量選擇的細(xì)微差別,建模師遇見(jiàn)了許多困難。許多技術(shù)需要大量功能集來(lái)推動(dòng)學(xué)習(xí)過(guò)程。但是,為了收集足夠的學(xué)習(xí)數(shù)據(jù),確保您獲取了正確且相關(guān)的功能可能非常具有挑戰(zhàn)性。
解決方案:構(gòu)建一個(gè)性能良好的模型的過(guò)程需要仔細(xì)的探索和分析,以確保您選擇和設(shè)計(jì)適當(dāng)?shù)墓δ?。了解領(lǐng)域和包含主題專(zhuān)家,是選擇正確功能最重要的兩個(gè)驅(qū)動(dòng)因素。此外,諸如遞歸特征消除(recursive feature elimination,RFE),隨機(jī)森林(random forest),主成分分析(principal component analysis,PCA)和自動(dòng)編碼器等技術(shù)有助于將建模工作集中在少數(shù)幾個(gè)更有效的功能上。
陷阱3:數(shù)據(jù)泄露
機(jī)器學(xué)習(xí)團(tuán)隊(duì)可能會(huì)偶然地收集建模數(shù)據(jù),使用的標(biāo)準(zhǔn)是團(tuán)隊(duì)試圖預(yù)測(cè)結(jié)果的一部分,因此,模型會(huì)顯示出優(yōu)秀到失真的性能。例如,一個(gè)團(tuán)隊(duì)可能錯(cuò)誤的包含了一個(gè)在旨在預(yù)測(cè)疾病的模型中指示某些疾病治療的變量。
解決方案:建模團(tuán)隊(duì)必須仔細(xì)構(gòu)建他們的數(shù)據(jù)集,在模型估計(jì)結(jié)果之前僅使用訓(xùn)練時(shí)實(shí)際可用的數(shù)據(jù)。
陷阱4:缺少數(shù)據(jù)
在某些情況下,由于缺少某些記錄,數(shù)據(jù)集會(huì)變得不完整。錯(cuò)誤地調(diào)整該條件或假設(shè)沒(méi)有缺失值,建模師可能會(huì)對(duì)結(jié)果的認(rèn)知產(chǎn)生重大偏差。例如,缺失的數(shù)據(jù)可能并不總是隨機(jī)的,例如,當(dāng)調(diào)查受訪者不太可能回答某個(gè)特定問(wèn)題時(shí)。因此,平均估算可能會(huì)誤導(dǎo)模型。
解決方案:如果您無(wú)法設(shè)計(jì)培訓(xùn)計(jì)劃以確保使用完整的數(shù)據(jù)集,則可以采用統(tǒng)計(jì)技術(shù),包括丟棄缺失值的記錄,或使用適當(dāng)?shù)牟逖a(bǔ)策略來(lái)估算缺失的數(shù)據(jù)值。
陷阱5:不準(zhǔn)確的縮放和標(biāo)準(zhǔn)化
構(gòu)建用于機(jī)器學(xué)習(xí)工作的數(shù)據(jù)集通常需要團(tuán)隊(duì)收集不同類(lèi)型的輸入端,這些輸入端有著不同的衡量尺度。在建立模型之前,如果未能調(diào)整變量的值以允許通用比例,線性回歸(linear regression),支持向量機(jī)(support vector machine,SVN),或k近鄰(k nearest neighbors,KNN)等算法會(huì)受到很大影響。這些問(wèn)題的出現(xiàn)在于范圍大的話會(huì)導(dǎo)致功能的高度變化,因此,它們可能變得多余。例如,如果您將兩者都當(dāng)作未處理的投入使用,那么薪水的數(shù)據(jù)可能會(huì)獲得比年齡更重的權(quán)重。
解決方案:在開(kāi)始建立模型之前,您必須小心地對(duì)數(shù)據(jù)集進(jìn)行標(biāo)準(zhǔn)化。您可以通過(guò)常用統(tǒng)計(jì)技術(shù)(如標(biāo)準(zhǔn)化或功能縮放)來(lái)轉(zhuǎn)換數(shù)據(jù)集,這取決于數(shù)據(jù)的類(lèi)型和團(tuán)隊(duì)的首選算法。
陷阱6:忽略異常值
忘記異常值可能會(huì)對(duì)模型的性能產(chǎn)生重大影響。例如,像AdaBoost這樣的算法會(huì)將異常值視為困難情況,并將不適當(dāng)?shù)臋?quán)重放在適當(dāng)?shù)奈恢蒙?,而決策樹(shù)更寬容。此外,不同的用例需要不同的離群值處理。例如,在發(fā)現(xiàn)欺詐行為的情況下,應(yīng)重點(diǎn)關(guān)注存款中異常值。
解決方案:要解決此類(lèi)問(wèn)題,您的團(tuán)隊(duì)?wèi)?yīng)該使用建模算法,它能夠正確處理異常值,或者在建模前過(guò)濾異常值。良好的開(kāi)端在于讓您的團(tuán)隊(duì)做一個(gè)初步檢查,以確定數(shù)據(jù)中是否存在異常值。最簡(jiǎn)單的方法是審查數(shù)據(jù)的圖標(biāo)或檢查任何數(shù)值,它們可能是幾個(gè)標(biāo)準(zhǔn)差,或更遠(yuǎn)離平均值的數(shù)值。
陷阱7:計(jì)算錯(cuò)誤功能
當(dāng)一個(gè)團(tuán)隊(duì)為建模提供投入時(shí),微分過(guò)程中的任何錯(cuò)誤都可能會(huì)為模型帶來(lái)誤導(dǎo)性輸入。毫無(wú)例外,無(wú)論團(tuán)隊(duì)如何構(gòu)建,模型都出乎意料地產(chǎn)生了不可靠的結(jié)果。這個(gè)問(wèn)題的一個(gè)例子是,一個(gè)團(tuán)隊(duì)弱化了一個(gè)依賴(lài)于計(jì)算的利用率的信用評(píng)分預(yù)測(cè)模型,因?yàn)檫@個(gè)團(tuán)隊(duì)包括來(lái)自信用報(bào)告的不活躍貿(mào)易信息。
解決方案:建模師必須仔細(xì)檢查團(tuán)隊(duì)如何獲取數(shù)據(jù)。關(guān)鍵的出發(fā)點(diǎn)是要了解哪些功能是原始格式,哪些是經(jīng)過(guò)設(shè)計(jì)的。自此,建模師就可以在進(jìn)行建模之前檢查衍生功能的假設(shè)和計(jì)算。
陷阱8:忽略多線投入(multi-collinear inputs)
使用數(shù)據(jù)集而不考慮多重共線性預(yù)測(cè)因子(multi-collinear predictors)是誤導(dǎo)模型建構(gòu)的另一種方式(多線性輸入的存在意味著兩個(gè)或多個(gè)變量之間存在著很高的相關(guān)性)。結(jié)果使其很難識(shí)別任何一個(gè)變量的影響。在這種情況下,選定功能的微小變化會(huì)對(duì)結(jié)果產(chǎn)生重大影響。這個(gè)問(wèn)題的一個(gè)例子是,廣告預(yù)算和流量作為預(yù)測(cè)變量呈現(xiàn)共線性。
解決方案:檢測(cè)多重共線性的簡(jiǎn)單方法是計(jì)算所有變量對(duì)應(yīng)的相關(guān)系數(shù)。之后您就有諸多選擇來(lái)解決任何確定的共線性問(wèn)題,如建筑構(gòu)圖或刪除冗余變量。
陷阱9:無(wú)效績(jī)效KPI
當(dāng)建模數(shù)據(jù)各種進(jìn)程進(jìn)入平衡狀態(tài)時(shí),大多數(shù)建模算法表現(xiàn)最好。當(dāng)數(shù)據(jù)顯示不平衡時(shí),衡量模型性能的正確指標(biāo)變的至關(guān)重要。例如,平均違約率為1.2%。一個(gè)模型的準(zhǔn)確度能達(dá)到98%,預(yù)測(cè)在所有情況下都不會(huì)發(fā)生變化。
解決方案:除非可以選擇生成更均衡的訓(xùn)練集,或使用基于成本的學(xué)習(xí)算法,選擇業(yè)務(wù)驅(qū)動(dòng)的績(jī)效指標(biāo)是最好的解決方案。對(duì)于超出準(zhǔn)確度的模型的績(jī)效有著各種措施,如精確度,召回率,F(xiàn)1得分和受試者工作特征(receiver operating characteristic,ROC)曲線。選擇最合適的度量標(biāo)準(zhǔn)將指導(dǎo)建模算法錯(cuò)誤最小化。