當你構(gòu)建第一個模型,注意避免這5個坑。
數(shù)據(jù)科學和機器學習正變得越來越流行,這個領(lǐng)域的人數(shù)每天都在增長。這意味著有很多數(shù)據(jù)科學家在構(gòu)建他們的第一個機器學習模型時沒有豐富的經(jīng)驗,而這也是錯誤可能會發(fā)生的地方。
近日,軟件架構(gòu)師、數(shù)據(jù)科學家、Kaggle 大師 Agnis Liukis 撰寫了一篇文章,他在文中談了談在機器學習中最常見的一些初學者錯誤的解決方案,以確保初學者了解并避免它們。
以下為文章內(nèi)容:
在機器學習領(lǐng)域,初學者避免這 5 個坑
1、在需要的地方?jīng)]有使用數(shù)據(jù)歸一化
對數(shù)據(jù)進行歸一化操作,然后獲取特征,并將其輸入到模型中,讓模型做出預測,這種方法是很容易的。但在某些情況下,這種簡單方法的結(jié)果可能會讓人失望,因為它缺少一個非常重要的部分。
一些類型的模型需要數(shù)據(jù)歸一化,如線性回歸、經(jīng)典神經(jīng)網(wǎng)絡(luò)等。這類模型使用特征值去乘訓練值的權(quán)重。在非歸一化特征的情況下,一個特征值的可能范圍可能不同于另一個特征值的可能范圍。
假設(shè)一個特征的值在 [0,0.001] 范圍內(nèi),另一個特征的值在 [100000,200000] 范圍內(nèi)。對于使兩個特征同等重要的模型,第一個特征的權(quán)重將比第二個特征的權(quán)重大 1 億倍。巨大的權(quán)重可能會給模型帶來嚴重問題,比如存在一些異常值的時候。此外,估計各種特征的重要性變得困難,因為權(quán)重大可能意味著特征很重要,但也可能只是意味著其特征值很小
歸一化后,所有特征的值都在相同的范圍內(nèi),通常為 [0,1] 或 [-1,1]。在這種情況下,權(quán)重將在相似的范圍內(nèi),并與每個特征的實際重要性密切對應(yīng)。
總的來說,在需要的地方使用數(shù)據(jù)歸一化將產(chǎn)生更好、更準確的預測。
2、認為特征越多越好
有人可能會認為加入所有特征是一個好主意,認為模型會自動選擇并使用最好的特征。實際上,這種想法很難成真。
模型的特征越多,過擬合的風險越大。即使在完全隨機的數(shù)據(jù)中,模型也能夠找到一些特征(信號),盡管有時較弱,有時較強。當然,隨機噪聲中沒有真實信號。但如果我們有足夠多的噪聲列,則該模型有可能根據(jù)檢測到的故障信號使用其中的一部分。當這種情況發(fā)生時,模型預測質(zhì)量將會降低,因為它們一定程度上基于隨機噪聲。
現(xiàn)在有許多技術(shù)幫助我們進行特征選擇。但你要記住,你需要解釋你擁有的每一個特征,以及為什么這個特征會幫助你的模型。
3. 在需要外推的情況下,使用基于樹的模型
基于樹的模型易于使用,功能強大,這也是其受歡迎的原因。然而,在某些情況下,使用基于樹的模型可能是錯誤的。
基于樹的模型無法外推,這些模型的預測值永遠不會大于訓練數(shù)據(jù)中的最大值,而且在訓練中也永遠不會輸出比最小值更小的預測值。
在某些任務(wù)中,外推能力可能非常重要。例如,如果該模型預測股票價格,那么未來股票價格可能會比以往任何時候都高。在這種情況下,基于樹的模型將無法直接使用,因為它們的預測幾乎會超過最高歷史價格。
這個問題有多種解決方案,一種解決方案是預測變化或差異,而不是直接預測價值。另一種解決方案是為此類任務(wù)使用不同類型的模型。線性回歸或神經(jīng)網(wǎng)絡(luò)就可以進行外推。
4、在不需要的地方使用數(shù)據(jù)歸一化
之前文章談到了數(shù)據(jù)歸一化的必要性,但情況并非總是如此,基于樹的模型不需要數(shù)據(jù)歸一化。神經(jīng)網(wǎng)絡(luò)可能也不需要明確的歸一化,因為有些網(wǎng)絡(luò)內(nèi)部已經(jīng)包含歸一化層,例如 Keras 庫的 BatchNormalization 操作。
在某些情況下,即使是線性回歸也可能不需要數(shù)據(jù)歸一化,這是指所有特征都已處于類似的值范圍,并且具有相同的含義。例如,如果模型適用于時間序列數(shù)據(jù),并且所有特征都是同一參數(shù)的歷史值。
5. 在訓練集和驗證集 / 測試集之間泄漏信息
造成數(shù)據(jù)泄漏比人們想象的要容易,考慮以下代碼段:
數(shù)據(jù)泄漏的示例特性
實際上,這兩種特征(sum_feature 和 diff_feature)都不正確。它們正在泄漏信息,因為在拆分到訓練集 / 測試集后,具有訓練數(shù)據(jù)的部分將包含來自測試的一些信息。這將導致更高的驗證分數(shù),但當應(yīng)用于實際的數(shù)據(jù)模型時,性能會更差。
正確的方法是首先將訓練集 / 測試集分開,然后才應(yīng)用特征生成功能。通常,分別處理訓練集和測試集是一種很好的特征工程模式。
在某些情況下,可能需要在兩者之間傳遞一些信息 —— 例如,我們可能希望在測試集和訓練集上使用相同的 StandardScaler。
總而言之,從錯誤中吸取教訓是件好事,希望上述所提供的錯誤示例能幫助到你。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4781瀏覽量
101175 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7145瀏覽量
89583 -
機器學習
+關(guān)注
關(guān)注
66文章
8441瀏覽量
133087
原文標題:機器學習初學者易踩的5個坑
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
常見xgboost錯誤及解決方案
常見電位測量錯誤及解決方案
DFT的常見誤區(qū)與解決方案
SSM開發(fā)中的常見問題及解決方案
EEPROM編程常見錯誤及解決方案
PCBA加工常見質(zhì)量問題揭秘:焊接不良與解決方案
關(guān)于光耦合器的常見誤解
![關(guān)于光耦合器的<b class='flag-5'>常見</b><b class='flag-5'>誤解</b>](https://file1.elecfans.com/web3/M00/01/45/wKgZPGdSW46AVKMbAAOdvmxpg_M450.png#pic_center)
常見的GND連接錯誤及解決方案
SQL錯誤代碼及解決方案
aes加密的常見錯誤及解決方案
socket 常見錯誤與解決方案
SUMIF函數(shù)常見錯誤及解決方案
對電動汽車電池11大誤解的解答
功能測試覆蓋中最常見的是什么方法
PCB設(shè)計工作中常見的錯誤有哪些?
![PCB設(shè)計工作中<b class='flag-5'>常見</b>的<b class='flag-5'>錯誤</b>有哪些?](https://file1.elecfans.com/web2/M00/BB/AC/wKgaomWWA_GAfcdaAAHRimRH5Cg056.png)
評論