數(shù)據(jù)科學(xué)工作通常需要大幅度提高工作量才能提高所開發(fā)模型的準(zhǔn)確性。這五個(gè)建議將有助于改善您的機(jī)器學(xué)習(xí)模型,并幫助您的項(xiàng)目達(dá)到其目標(biāo)。
如果您已經(jīng)完成了一些自己的數(shù)據(jù)科學(xué)項(xiàng)目,那么您現(xiàn)在可能已經(jīng)意識到,達(dá)到80%的準(zhǔn)確性還不錯(cuò)!但是在現(xiàn)實(shí)世界中,有80%不會(huì)削減它。實(shí)際上,我工作過的大多數(shù)公司都期望至少90%的最低準(zhǔn)確性(或他們所關(guān)注的任何度量標(biāo)準(zhǔn))。
因此,我將討論可以極大地提高準(zhǔn)確性的5件事。 我強(qiáng)烈建議您仔細(xì)閱讀所有五點(diǎn)內(nèi)容, 因?yàn)槠渲邪嗽S多大多數(shù)初學(xué)者都不知道的細(xì)節(jié)。
到此為止,您應(yīng)該理解,在決定機(jī)器學(xué)習(xí)模型的性能方面,有比您想象的更多的變量。
話雖如此,您可以做以下五件事來改善您的機(jī)器學(xué)習(xí)模型!
1.處理缺失值
我看到的最大錯(cuò)誤之一是人們?nèi)绾翁幚砣笔У膬r(jià)值觀,這不一定是他們的錯(cuò)。網(wǎng)絡(luò)上有很多資料說,您通常通過均值插補(bǔ)來處理缺失值 , 將空值替換為給定特征的均值,這通常不是最佳方法。
例如,假設(shè)我們有一個(gè)顯示年齡和健身得分的表,并且假設(shè)一個(gè)八十歲的孩子缺少健身得分。如果我們將平均健身得分從15到80歲的年齡范圍內(nèi)進(jìn)行計(jì)算,那么八十歲的孩子似乎將獲得比他們實(shí)際應(yīng)該更高的健身得分。
因此,您要問自己的第一個(gè)問題是 為什么 數(shù)據(jù)一開始會(huì)丟失。
接下來,考慮除均值/中位數(shù)插補(bǔ)外的其他處理丟失數(shù)據(jù)的方法:
特征預(yù)測建模:回到我關(guān)于年齡和健身得分的示例,我們可以對年齡和健身得分之間的關(guān)系進(jìn)行建模,然后使用該模型查找給定年齡的預(yù)期健身得分。這可以通過多種技術(shù)來完成,包括回歸,ANOVA等。
K最近鄰插補(bǔ):使用KNN插補(bǔ),缺失數(shù)據(jù)中填充了另一個(gè)相似樣本中的值,對于不知道的數(shù)據(jù),KNN中的相似性使用距離函數(shù)(即歐幾里德距離)確定。
刪除行:最后,您可以刪除該行。通常不建議這樣做,但是當(dāng)您有大量數(shù)據(jù)開始時(shí),它是可以接受的 。
2.特征工程
可以顯著改善機(jī)器學(xué)習(xí)模型的第二種方法是通過特征工程。特征工程是將原始數(shù)據(jù)轉(zhuǎn)換為更好地表示人們正在試圖解決的潛在問題的特征的過程。沒有具體的方法可以執(zhí)行此步驟,這就是使數(shù)據(jù)科學(xué)與科學(xué)一樣多的藝術(shù)。話雖如此,以下是您可以考慮的一些事項(xiàng):
轉(zhuǎn)換DateTime變量以僅提取一周中的一天,一年中的月份等。
為變量創(chuàng)建箱或桶。(例如,對于高度變量,可以為100–149厘米,150–199厘米,200–249厘米等)
組合多個(gè)功能和/或值以創(chuàng)建一個(gè)新功能。例如,針對泰坦尼克號挑戰(zhàn)的最準(zhǔn)確模型之一設(shè)計(jì)了一個(gè)新變量“ Is_women_or_child”,如果該人是女人還是孩子,則為True,否則為false。
3.特征選擇
可以大大提高模型準(zhǔn)確性的第三個(gè)領(lǐng)域是特征選擇,即選擇數(shù)據(jù)集中最相關(guān)/最有價(jià)值的特征。特征太多會(huì)導(dǎo)致算法過擬合,而特征太少會(huì)導(dǎo)致算法不足。
我喜歡使用兩種主要方法來幫助您選擇功能:
功能重要性:某些算法(例如隨機(jī)森林或XGBoost)可讓您確定哪些功能在預(yù)測目標(biāo)變量的值時(shí)最“重要”。通過快速創(chuàng)建這些模型之一并進(jìn)行功能重要性,您將了解哪些變量比其他變量更有用。
降維:主成分分析(PCA)是最常見的降維技術(shù)之一,它具有大量特征,并使用線性代數(shù)將其簡化為更少的特征。
4.集成學(xué)習(xí)算法
改善機(jī)器學(xué)習(xí)模型的最簡單方法之一就是簡單地選擇更好的機(jī)器學(xué)習(xí)算法。如果您還不知道什么是集成學(xué)習(xí)算法,那么現(xiàn)在該學(xué)習(xí)它了!
集合學(xué)習(xí) 是一種結(jié)合使用多種學(xué)習(xí)算法的方法。這樣做的目的是,與單獨(dú)使用單個(gè)算法相比,它可以實(shí)現(xiàn)更高的預(yù)測性能。
流行的整體學(xué)習(xí)算法包括隨機(jī)森林,XGBoost,梯度提升和AdaBoost。為了解釋為什么集成學(xué)習(xí)算法如此強(qiáng)大,我將以隨機(jī)森林為例:
隨機(jī)森林涉及使用原始數(shù)據(jù)的自舉數(shù)據(jù)集創(chuàng)建多個(gè)決策樹。然后,模型選擇每個(gè)決策樹的所有預(yù)測的模式(多數(shù))。這有什么意義?通過依靠“多數(shù)勝利”模型,它降低了單個(gè)樹出錯(cuò)的風(fēng)險(xiǎn)。
例如,如果我們創(chuàng)建一個(gè)決策樹,第三個(gè)決策樹,它將預(yù)測0。但是,如果我們依靠所有4個(gè)決策樹的模式,則預(yù)測值為1。這就是集成學(xué)習(xí)的力量!
5.調(diào)整超參數(shù)
最后,調(diào)整模型的超參數(shù)并不經(jīng)常被談?wù)摚匀环浅V匾?。在這里,必須清楚地了解正在使用的ML模型。否則,可能很難理解每個(gè)超參數(shù)。
看一下隨機(jī)森林的所有超參數(shù):
class sklearn.ensemble.RandomForestClassifier(n_estimators=100, *, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None, ccp_alpha=0.0, max_samples=None)
例如,了解什么是min_impurity_decrease可能是一個(gè)好主意,這樣,當(dāng)您希望機(jī)器學(xué)習(xí)模型更加寬容時(shí),可以調(diào)整此參數(shù)!;)
審核編輯 黃昊宇
-
算法
+關(guān)注
關(guān)注
23文章
4631瀏覽量
93423 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8446瀏覽量
133123
發(fā)布評論請先 登錄
相關(guān)推薦
評論