回答
考慮您使用的是分類/迴歸機制是線性(或對數線性)的特徵空間。如果您的實例x具有功能X_I,然後是線性意味着分數是一樣的東西:
Y_I = \ sum_i X_I * w_i
現在考慮您認爲有功能之間的一些重要的互動---也許你認爲x_i只有在x_j具有相似的值時才重要,或者它們的總和比個別值更重要,或者其他任何值。將這一信息的一種方式是具有算法明確模型橫產物,例如:
Y_I = [\ sum_i X_I * w_i] + [\ sum_i,J X_I * x_j * w_ij]
然而,線性算法是無處不在且易於使用的,因此,將類似交互的術語放入標準線性分類器/迴歸機制中的一種方法是增加特徵空間,因此對於每對x_i,x_j您可以創建形式爲[x_i * x_j]或[x_i/x_j]或其他。現在,您可以建模不同功能之間的交互,而無需使用非線性算法。
執行該類型的算術可以讓您在未明確考慮變量非線性組合的模型中使用該信息。一些分類器試圖找到最能解釋/預測訓練數據的特徵,並且通常最佳特徵可能是非線性的。
使用你的數據,假設你想預測一羣人平均會增加體重。假設「正確的」答案是,如果該組中的人每天平均消耗3,000卡路里,那麼該組將會增加體重。如果你的輸入是group_size
和group_calories
,你將需要使用這兩個變量來做出準確的預測。但是,如果您還提供group_avg_calories
(這只是group_calories
/group_size
),您可以使用該單一功能進行預測。即使前兩個特徵添加了一些附加信息,如果要將這3個特徵提供給決策樹分類器,它幾乎肯定會選擇group_avg_calories
作爲根節點,並且最終會得到更簡單的樹結構。在你的模型中添加大量的任意非線性特徵組合也是一個缺點,那就是它可以顯着增加分類器的訓練時間。
關於calories/10
,目前尚不清楚爲什麼你會這樣做,但是規範化輸入特徵可以提高一些分類器(例如人工神經網絡)的收斂速度,並且還可以爲聚類算法提供更好的性能,因爲輸入特徵將會全部在相同的範圍內(即,沿着不同特徵軸的距離是可比的)。
- 1. 追加Tensorflow訓練集
- 2. 1)從整個訓練集中訓練CNN和2)訓練集中的訓練集,然後是整個訓練集之間的區別是什麼?
- 3. 將XML屬性添加到數據集
- 4. 訓練數據集
- 5. 我可以將樣本權重添加到訓練數據集嗎?
- 6. 將訓練數據添加到現有模型(bin文件)
- 7. 如何將語音訓練數據添加到張量流中
- 8. 將訓練數據添加到現有的LinearSVC
- 9. 練習:將DateOfBirth屬性添加到您的課程
- 10. PyBrain:MemoryError:加載訓練數據集
- 11. 將屬性添加到屬性
- 12. Magento將Sub屬性添加到屬性?
- 13. AdaBoost算法的訓練集
- 14. 更新ANN的訓練集
- 15. R訓練和測試集
- 16. Twitter主觀訓練集
- 17. Neuroph不能訓練集
- 18. 訓練集平衡策略
- 19. 表示訓練集與
- 20. FANN訓練數據集
- 21. Tensorflow:添加例子來訓練矢量
- 22. 添加數據,重新訓練盜網
- 23. 將屬性添加到TTPhoto
- 24. 將屬性添加到Q_PROPERTYs
- 25. 將屬性添加到IXmlNode
- 26. 將屬性添加到TreeNode
- 27. 將屬性添加到UITableViewCell
- 28. 將屬性添加到DataColumn
- 29. 將屬性添加到BehaviorExtensionElement
- 30. 將屬性添加到wp_get_attachment_image
我對這個問題感到困惑。你使用什麼算法?/你在做什麼? –
這只是一個普遍的問題。與Kaggle比賽一樣,頂級得分隊伍對他們的數據進行預處理並做類似的事情。 – user1698555