本文是為機(jī)器學(xué)習(xí)初學(xué)者準(zhǔn)備的放椰,目的是了解制作一個(gè)真正好的機(jī)器學(xué)習(xí)模型所涉及的不同步驟匈辱,以及應(yīng)該避免哪些錯(cuò)誤缔刹。本文并不是任何特定的語言球涛,它涵蓋了訓(xùn)練模型所需的所有必要步驟。
加載數(shù)據(jù)
將數(shù)據(jù)加載到DataFrame中(為了方便起見校镐,我假設(shè)您的數(shù)據(jù)可以以表格形式存儲(chǔ))
將數(shù)據(jù)拆分為訓(xùn)練和驗(yàn)證數(shù)據(jù)
需要注意的一點(diǎn)是亿扁,我們?cè)谕瓿扇魏螖M合,輸入或任何其他預(yù)處理步驟之前拆分?jǐn)?shù)據(jù)鸟廓。驗(yàn)證旨在衡量模型對(duì)之前未考慮過的數(shù)據(jù)的處理方式从祝。如果預(yù)處理步驟中一起使用(訓(xùn)練+驗(yàn)證)數(shù)據(jù),則會(huì)導(dǎo)致驗(yàn)證的漏洞引谜。這意味著牍陌,驗(yàn)證數(shù)據(jù)也會(huì)影響我們的預(yù)處理步驟/擬合,這是我們從不想要的员咽,應(yīng)該避免毒涧。
因此,我們?cè)陂_始時(shí)將數(shù)據(jù)分為訓(xùn)練和驗(yàn)證贝室。有很多方法可以做到契讲,但最常用的方法之一是:train_test_split()
處理數(shù)據(jù)
處理意味著填充數(shù)據(jù)中的缺失值。缺失值可能是由于許多原因 - 有人不同意提供年收入档玻,有人沒有透露家庭成員的數(shù)量怀泊,傳輸過程中的數(shù)據(jù)丟失等茫藏。大多數(shù)算法误趴,不能用于缺失數(shù)據(jù)。所以我們的目標(biāo)是估計(jì)數(shù)據(jù)本身的缺失值并填充它們务傲。
請(qǐng)記住凉当,我們應(yīng)該僅處理訓(xùn)練數(shù)據(jù)(出于上一步中描述的原因)枣申。根據(jù)數(shù)據(jù)類型有不同的輸入方法,例如均值/中位數(shù)方法(對(duì)于數(shù)值數(shù)據(jù))看杭,one-hot編碼(對(duì)于分類數(shù)據(jù))等忠藤。選擇任何方法并確保您的最終數(shù)據(jù)不包含任何遺漏值。
特征選擇
特征選擇是數(shù)據(jù)科學(xué)家工作流程中非常關(guān)鍵的組成部分楼雹。這意味著僅選擇用于預(yù)測(cè)目標(biāo)標(biāo)簽的相關(guān)特征模孩,而不是考慮數(shù)據(jù)中存在的所有特征。在現(xiàn)實(shí)生活中贮缅,我們有100個(gè)榨咐,1000個(gè)甚至10,000個(gè)特征,所有特征對(duì)預(yù)測(cè)都不是同樣重要谴供。此外块茁,當(dāng)模型呈現(xiàn)具有非常高維度的數(shù)據(jù)時(shí),通常會(huì)導(dǎo)致以下問題:
? ? 訓(xùn)練時(shí)間隨著特征的數(shù)量呈指數(shù)增長(zhǎng)桂肌。
? ? ? 隨著特征數(shù)量的增加数焊,模型的過度擬合風(fēng)險(xiǎn)也在增加。
? ? ? 數(shù)據(jù)冗余不會(huì)以任何方式使模型受益崎场,反而增加了復(fù)雜性佩耳。因此,冗余數(shù)據(jù)刪除是最大化特征相關(guān)性同時(shí)減少特征冗余的重要部分照雁。
有不同的特征選擇方法蚕愤,這有助于減少維數(shù),而不會(huì)損失太多的總信息饺蚊。這可以提高模型的整體精度萍诱,幫助理解特征及其重要性。
? ? ? 刪除低方差的特征
? ? ? 單變量特征選擇
? ? ? 遞歸特征消除(RFE)
應(yīng)用上述任何策略污呼,并找到最有意義的特征子集裕坊。
訓(xùn)練你的模型
現(xiàn)在是訓(xùn)練模型的主要部分。訓(xùn)練模型意味著找到最合適的權(quán)重/參數(shù)燕酷,以便最大限度地分類(在分類問題中)或預(yù)測(cè)與實(shí)際值之間的誤差最屑(在回歸問題中)。
選擇您感興趣的任何類型的模型 - 線性回歸苗缩,決策樹饵蒂,隨機(jī)森林,XGBoost或任何其他機(jī)器學(xué)習(xí)模型酱讶,并僅使用具有所選特征的新修改的訓(xùn)練數(shù)據(jù)訓(xùn)練您的模型退盯。
在驗(yàn)證數(shù)據(jù)上測(cè)試您的模型
在驗(yàn)證數(shù)據(jù)上重復(fù)您的步驟:
? ? 使用計(jì)算和用于訓(xùn)練數(shù)據(jù)的相同參數(shù)來驗(yàn)證驗(yàn)證數(shù)據(jù)。
? ? 在估算的驗(yàn)證數(shù)據(jù)上,選擇在訓(xùn)練數(shù)據(jù)的特征選擇期間的相同特征渊迁。
? ? 繼續(xù)使用驗(yàn)證數(shù)據(jù)預(yù)測(cè)模型的準(zhǔn)確性慰照。判斷模型質(zhì)量的方法有很多種 - mean_absolute_error,cross_validation_error等等琉朽。目的是最小化驗(yàn)證數(shù)據(jù)的輸出誤差毒租。
調(diào)整你的模型
這是最棘手的部分,這里給出一個(gè)概述箱叁。一旦您嘗試了不同的模型墅垮,不同的特征和不同的精度參數(shù),并滿足自己的機(jī)器學(xué)習(xí)模型質(zhì)量耕漱,您的學(xué)習(xí)模型就可以用于實(shí)際數(shù)據(jù)了噩斟。請(qǐng)記住,您永遠(yuǎn)無法達(dá)到100%的準(zhǔn)確率孤个。