盤點(diǎn)新手機(jī)器學(xué)習(xí)工程師常犯的6大錯(cuò)誤
初學(xué)者在從事機(jī)器學(xué)習(xí)或數(shù)據(jù)科學(xué)項(xiàng)目時(shí)經(jīng)常會(huì)遇到一些常見的錯(cuò)誤?在這里我們列出這些最常見的錯(cuò)誤。
在機(jī)器學(xué)習(xí)中,構(gòu)建產(chǎn)品或解決方案的方法有很多,每種方式的假設(shè)情況都不一樣。很多時(shí)候,瀏覽和識別哪些假設(shè)是合理的不是很容易。剛剛接觸機(jī)器學(xué)習(xí)的人都會(huì)犯錯(cuò)誤,而事后看來往往會(huì)感到不應(yīng)該。本文創(chuàng)建了新手機(jī)器學(xué)習(xí)工程師制作的一些常犯的錯(cuò)誤清單。希望你能從這些常見錯(cuò)誤中吸取教訓(xùn),并創(chuàng)造更多可靠的解決方案,從而帶來真正的價(jià)值。
將默認(rèn)損失函數(shù)視為理所當(dāng)然
在剛剛?cè)腴T的時(shí)候,均方誤差非常好,可以說這是一個(gè)驚人的默認(rèn)設(shè)置,但是對于真實(shí)世界的應(yīng)用程序來說,這種未經(jīng)專門設(shè)計(jì)的損失函數(shù)很少能給出***解。
以欺詐檢測為例。為了與業(yè)務(wù)目標(biāo)保持一致,你真正想要的是按照由于欺詐而損失的美元金額成比例地懲罰漏報(bào)。而使用均方誤差可能會(huì)給你良好的結(jié)果,但永遠(yuǎn)不會(huì)給你當(dāng)前***進(jìn)的結(jié)果。
成為機(jī)器學(xué)習(xí)工程師|第3步:選擇你的工具看看這篇文章,了解你可以使用的不同的ML工具。
要點(diǎn):始終建立一個(gè)與你的解決方案目標(biāo)非常吻合的自定義損失函數(shù)。
針對所有問題使用一種算法/方法
許多人將完成他們的***個(gè)教程,并立即開始使用他們可以想象的每個(gè)用例中學(xué)到的相同算法。這是很熟悉的,他們認(rèn)為它可以像任何其他算法一樣工作。這是一個(gè)錯(cuò)誤的假設(shè),并且可能會(huì)導(dǎo)致糟糕的結(jié)果。
讓你的數(shù)據(jù)為你選擇模型。對數(shù)據(jù)進(jìn)行預(yù)處理后,將其輸入許多不同的模型并查看結(jié)果。你將會(huì)很好地了解哪些模型最適合工作,哪些模型效果不佳。
成為機(jī)器學(xué)習(xí)工程師|第2步:選擇一個(gè)流程查看這篇文章,并掌握你的流程。
要點(diǎn):如果你發(fā)現(xiàn)自己一遍又一遍地使用相同的算法,這可能意味著你沒有得到***的結(jié)果。
忽略離群值
基于上下文,離群值可能很重要或者完全忽略。以污染預(yù)測為例,空氣污染可能會(huì)出現(xiàn)大的峰值,***看看它們并理解它們發(fā)生的原因。在由某種類型的傳感器錯(cuò)誤引起的異常情況下,忽略它們并從數(shù)據(jù)中刪除是安全的。
從模型角度來看,有些人對異常值比其他人更敏感。以Adaboost為例,它對離群值賦予極大的權(quán)重,而決策樹可能只是簡單地將每個(gè)異常值視為一個(gè)錯(cuò)誤的分類。
成為機(jī)器學(xué)習(xí)工程師|第2步:選擇一個(gè)流程,通過***實(shí)踐來避免這種錯(cuò)誤
要點(diǎn):在開始工作之前,始終密切關(guān)注你的數(shù)據(jù),并確定是否忽略離群值或仔細(xì)查看離群值
沒有正確處理周期性特征
一天中的小時(shí)、一周中的幾天、一年中的幾個(gè)月以及風(fēng)向都是周期性特征的例子。許多新的機(jī)器學(xué)習(xí)工程師不認(rèn)為可以將這些功能轉(zhuǎn)換為可以保留諸如23小時(shí)和0小時(shí)等彼此靠近且不遠(yuǎn)的信息的表示。
以小時(shí)為例,處理這個(gè)問題的***方法是計(jì)算sin和cos分量,以便將你的循環(huán)特征表示為(x,y)圓的坐標(biāo)。在這個(gè)表示小時(shí)內(nèi),23和0小時(shí)在數(shù)字上是緊挨著的,就像它們應(yīng)該是一樣。
很多人都要求提供代碼示例:在這里(https://gist.github.com/anonymous/7ce6274c630dabd70960c6d7fdd6c580)
要點(diǎn):如果你有周期性的功能,而且你沒有轉(zhuǎn)換它們,那么你就開始使用模型垃圾數(shù)據(jù)。
沒有標(biāo)準(zhǔn)化的L1 / L2正規(guī)化
L1和L2正則化懲罰大系數(shù),是調(diào)整線性或邏輯回歸的常用方法,然而,許多機(jī)器學(xué)習(xí)工程師在應(yīng)用正則化之前并不知道這對于標(biāo)準(zhǔn)化功能很重要。
想象一下,你有一個(gè)線性回歸模型,其中一個(gè)交易是一個(gè)特征。將所有功能標(biāo)準(zhǔn)化并將其放在平等的地位,這樣正規(guī)化在所有功能中都是一樣的。
要點(diǎn):正則化是偉大的,但如果你沒有標(biāo)準(zhǔn)化的功能可能會(huì)比較麻煩
將線性或邏輯回歸的系數(shù)解釋為特征重要性
線性回歸函數(shù)通常為每個(gè)系數(shù)返回p值。很多時(shí)候,這些系數(shù)使新手機(jī)器學(xué)習(xí)工程師認(rèn)為對于線性模型,系數(shù)值越大,特征越重要。由于變量的大小會(huì)改變系數(shù)的絕對值,所以這種情況幾乎不存在。如果特征是共線的,則系數(shù)可以從一個(gè)特征轉(zhuǎn)移到另一個(gè)特征。數(shù)據(jù)集的特征越多,特征共線性的可能性就越大,而對特征重要性的簡單解釋就越不可靠。
要點(diǎn):了解哪些特征對結(jié)果影響大是很重要的,但不要假設(shè)可以查看系數(shù)。他們經(jīng)常不講述整個(gè)“故事”。
做幾個(gè)項(xiàng)目并取得好成績可能會(huì)贏得一百萬美元。你努力工作,結(jié)果證明你做得很好,但和其他行業(yè)一樣,魔鬼藏在細(xì)節(jié)中,甚至幻想的情節(jié)都可以隱藏偏見和錯(cuò)誤。這份清單并不意味著詳盡無遺,而僅僅是為了讓讀者思考可能隱藏在解決方案中的所有小問題。為了取得良好的效果,重要的是要遵循你的流程,并且要經(jīng)常仔細(xì)檢查你是否犯了一些常見的錯(cuò)誤。
如果你發(fā)現(xiàn)這篇文章有用,你會(huì)從我的機(jī)器學(xué)習(xí)工程師|第2步中獲得很多:選擇流程文章。它可以幫助你解決一個(gè)過程,使你能夠捕捉更簡單的錯(cuò)誤并獲得更好的結(jié)果。