2016-02-11 41 views
0

我有一個包含10列和158行的數據集。我嘗試預測我的測試數據集是1列,158行。如何確保我的R^2分數?

我做了交叉驗證,網格搜索和使用ElasticNet算法。

在評估模型之前,我檢查了10列之間的皮爾遜相關性,我用它來訓練我的模型和我試圖預測的其他1列。相關性不好,但當我評估模型時,R^2得分接近0.98。

我該如何確保這個分數是有把握的?因爲我沒有想到這樣的R^2。這是我期望的太高。

在此先感謝。

+0

這不是一個編碼問題。機器學習可能更適合http://datascience.stackexchange.com – thelatemail

回答

0

一個好的模型可以使R^2得分接近1.0。這意味着學習模型非常適合測試數據。如果您預測的是連續值,則可以繪製並檢查實際值和預測值。它可以更好地描繪你的模型。

此外,您可以嘗試使用不同的錯誤度量標準,例如均方根誤差,均方誤差或絕對誤差以及迴歸和準確度,ROC曲線或混淆矩陣,以確保您的模型真的很好。

另一個重要的是,你不能真正比較皮爾遜係數和R^2得分。具有低皮爾遜係數的特徵可以導致具有良好R^2得分的模型,反之亦然。

這是因爲皮爾遜相關只是給你變量之間的線性依賴。在你的情況下,相關性的低值意味着你的特徵和目標不是線性相關的。這也可能意味着,這些特徵非線性高度相關(這可能是一個好的R^2評分模型的原因)。所以,皮爾遜係數的低值並不意味着你的功能不好。如果您真的想測試您的功能是否良好,請嘗試使用不同的相關係數,例如距離關聯或等級關聯。

功能評估或選擇的其他替代方法是在scipy中使用Feature selection模塊。

希望,這回答你的問題!

相關問題