我試圖解決輸入特徵集大小約爲54的迴歸問題。迴歸中的特徵選擇和預測準確性R中的森林
對單個預測變量'X1'使用OLS線性迴歸,我無法解釋Y中的變化 - 因此我試圖使用迴歸森林(即隨機森林迴歸)來查找其他重要特徵。後來發現選定的'X1'是最重要的特徵。
我的數據集有〜14500個條目。我已經將它按比例9:1分成了訓練和測試集。
我有以下問題:
試圖找到重要的功能時,我應該運行在整個數據集的迴歸森林,或只在訓練數據?
一旦發現重要特徵,應該使用少數幾個特徵重新構建模型,以查看特徵選擇是否以較小的成本加速計算以提高預測能力?
現在,我已經使用訓練集和所有功能構建了模型,並且我將它用於測試集上的預測。我正在計算訓練集的MSE和R平方。我在訓練數據上得到高MSE和低R2,並在測試數據上反轉(如下所示)。這是不尋常的嗎?
森林< - 隨機森林(FMLA,dTraining,ntree = 501,重要性= T)
平均值((dTraining $ Y - 預測(林,數據= dTraining))^ 2)
0.9371891
rSquared(dTraining $ Y,dTraining $ Y - 預測(林,數據= dTraining))
0.7431078
平均值((DTEST $ Y - 預測(林,newdata = DTEST))^ 2)
0.009771256
rSquared(DTEST $ Y,DTEST $ Ý - 預測(林,newdata = DTEST))
0.9950448
請建議。 任何建議,如果R平方和MSE是這個問題的好指標,或者如果我需要查看一些其他指標來評估模型是否好?
感謝您的意見。 rSquared是來自庫(miscTools)的模塊。它給出與使用公式相同的結果:1 - sum((dTest $ y - predict(fit,newdata = dTest))^ 2)/ sum((dTest $ y - mean(dTest $ y))^ 2) – Sree
是需要檢查從訓練集中選擇的重要特徵是否也被發現在測試集中很重要? – Sree
是*什麼*要求?不確定你指的是... – CPak