我試圖用一個神經網絡的迴歸 - 我的設置有2個隱含層。NN訓練 - 用一個熱碼VS具有人工功能
我輸入的數據具有以下結構 - 特徵A,B,C,D是數值的(可以取-500k到500k之間的值),特徵E是分類的,F是我試圖解釋的因變量預測。 A,B,C,D會因國而異(因此爲什麼我將國家作爲一項單獨功能)。
我曾嘗試兩種不同的方法來表達特徵Ê當訓練:
- 一個炎熱編碼
- 利用現有A,B,C,d設有
我已附加一個截圖顯示了培訓數據的外觀(構成值)以及我的兩種方法。
[data][1]
[Option1][2]
[Option2][3]
選擇(2)工作得非常好(以R^2和準確性個別預測而言),而(1)工程相當嚴重。
我還試圖歸一化A,B,C,d(-mean/STD)使用一個熱編碼-但它並沒有太大的幫助時。值得注意的是 - 選項(2)工作得很好,即使是沒有正常化。
我的問題是 - 我怎麼能理解爲什麼是這樣?我認爲一個熱門的編碼應該可以正常工作,但看起來好像沒有。爲什麼NN從方法(2)更好地理解分類?
感謝
[1]: https://i.stack.imgur.com/sixHw.png
[2]: https://i.stack.imgur.com/VMw8O.png
[3]: https://i.stack.imgur.com/5eQxk.png
嗯,我確實使用了sklearn中的StandardScaler - 它將每個特徵的stdev減去平均值和除數(所以,列式) - 您認爲這是不夠的嗎? – user80564