Machine-Learning
為什麼特徵工程有效?
最近我了解到,為 ML 問題找到更好解決方案的方法之一是創建特徵。例如,可以通過對兩個特徵求和來做到這一點。
例如,我們擁有某種英雄的“攻擊”和“防禦”兩個特徵。然後我們創建稱為“總”的附加特徵,它是“攻擊”和“防禦”的總和。現在在我看來奇怪的是,即使是強硬的“攻擊”和“防禦”幾乎與“總”相關,我們仍然可以獲得有用的信息。
這背後的數學原理是什麼?還是我推理錯了?
此外,對於像 kNN 這樣的分類器,“總”總是大於“攻擊”或“防禦”,這不是問題嗎?因此,即使在標準化之後,我們也會有包含不同範圍值的特徵?
您質疑標題,內容對我來說似乎不匹配。如果你使用線性模型,除了攻擊和防御之外添加一個總特徵會使事情變得更糟。
首先,我要回答為什麼特徵工程通常會起作用。
一張圖片勝過千言萬語。這個圖可能會告訴你一些關於特徵工程的見解以及它為什麼起作用(圖片來源):
- 笛卡爾坐標中的數據比較複雜,寫一個規則/建立一個模型來分類兩種類型是比較困難的。
- 極坐標中的數據很簡單:我們可以寫一個簡單的規則分為兩類。
這告訴我們數據的表示很重要。在某些空間中,做某些任務比其他空間容易得多。
在這裡我回答你的例子中提到的問題(攻擊和防禦的總和)
事實上,這個攻防總和的例子中提到的特徵工程對於線性模型等許多模型都**不能很好地工作,並且會導致一些問題。**請參閱多重共線性。另一方面,這種特徵工程可能適用於其他模型,例如決策樹/隨機森林。有關詳細信息,請參閱@Imran 的答案。
因此,答案是根據您使用的模型,某些特徵工程將對某些模型有所幫助,但對其他模型則無濟於事。