1

我想訓練一個迴歸模型,爲了做到這一點,我使用了隨機森林模型。但是,我還需要做特徵選擇,因爲我的數據集中有很多特徵,如果我使用了所有特徵,那麼我會過度擬合。爲了評估我的模型的性能,我還進行了5次交叉驗證,我對這兩種方法的問題是正確的,爲什麼?功能選擇和交叉驗證

1-我應該將數據分成兩半,在上半年做功能選擇,並使用這些選定的功能在剩下的一半上進行5次交叉驗證(CV)(在這種情況下,5個CV將精確地使用相同的選定功能)。

2-執行以下程序:

1-數據分割成4/5的培訓和1/5用於測試 2-分割此訓練數據(完整的數據的4/5)到兩半: a-)在上半年訓練模型,並使用訓練的模型做特徵選擇。 b)使用第一部分中選定的特徵,以便在訓練數據集的後半部分訓練模型(這將是我們最終的訓練模型)。 3-對剩餘的1/5數據(在訓練階段從未使用)測試模型的性能 4-重複上一步5次,並且在每次我們隨機(無替換)地分割數據分成4/5進行訓練和1/5進行測試

我唯一擔心的是在第二個程序中我們將有5個模型,最終模型的特徵將是這五個模型的頂級特徵的結合,所以我不確定5CV的性能是否可以反映最終模型的最終性能,特別是因爲最終模型具有與5倍中的每個模型不同的特徵(因爲它是每個模型的選定特徵的結合5 CV)

回答

0

Do t他對全部數據進行簡歷(將其分成5部分,並對每個分組使用不同的部分組合),然後在cv-splits上進行特徵選擇,然後在選擇的輸出上進行RF選擇。

原因:因爲CV在不同的數據拆分下檢查您的模型,所以您的模型不會過度擬合。由於特徵選擇可以被視爲你的模型的一部分,你必須檢查這個過度擬合。

當您使用CV驗證您的模型後,將您的整個數據放入其中,然後執行此單一模型的轉換。

此外,如果您擔心過度配合,您應該限制深度和數量的樹木中的RF。 CV主要用作模型開發過程中的工具,最終模型使用所有數據。

1

交叉驗證應該始終是任何機器學習算法中最外層的迴路。

因此,將數據分成5組。對於您選擇的每個組作爲測試集(1/5),在對訓練集(4/5)進行特徵選擇後進行擬合。對所有的CV摺疊重複此操作 - 這裏有5個摺疊。

現在一旦CV程序完成,您就可以估算出您的模型精度,這是您個人CV倍數精度的簡單平均值。

只要在整套數據上訓練模型的最後一組特徵,請執行以下操作來選擇最後一組特徵。

- 每當您按上述方法在摺疊上做一個簡歷時,就爲您在特定摺疊中選擇的功能投票。在5倍簡歷末尾,選擇具有最高票數的特定數量的功能。

使用上面選擇的一組特徵來完成特徵選擇的最後一個過程,然後對完整數據(所有5個摺疊的組合)進行訓練並將模型移動到生產。