[特征工程系列三]显性特征的衍生
前一文講的是一些特征的基礎處理方式,包括怎么降維、怎么處理臟數據等等。其實特征工程真正的難點是如何結合業務需求衍生出新的特征。結合業務需求講的是利用專家經驗來提取出數據里對結果影響更大的特征,往往是原有數據字段通過加減乘除等操作生成新的字段,這些字段在結合一些線性算法做訓練的時候往往能起到提升模型效果的作用,接下來就簡單介紹下特征衍生。
因為衍生特征這個方法是需要結合業務特點的,范圍太廣,所以本文就用一個例子來介紹。今天就用一份NBA比賽數據做例子吧,因為讀者大部分是男同學,對于籃球應該比較熟悉,如果是妹子讀者的話可以咨詢下你的男朋友~
?
球員 | 投籃數 | 命中數 | 比賽場次 | 全明星 |
科比 | 800 | 400 | 500 | 否 |
喬丹 | 500 | 300 | 200 | 是 |
上面這份數據我就隨便寫兩個球員哈(非黑),然后隨便寫了三個特征數據分別是投籃數、命中數、比賽場次,目標列就是是否是明星球員。現在要思考這樣的問題,如果只用原始的這三個輸入特征去做訓練,信息量可能略顯單薄。先拿“命中率”來講,我們都知道在投籃比賽中命中投籃越多表示這個球員越厲害,原始數據中科比的命中數多于喬丹,而只有喬丹是明星,如果這樣的數據帶入很有可能學出來的效果是“命中球數越多,越不可能成為全明星”,這個理論與我們熟悉的客觀事實不符。?
?
真正熟悉籃球的同學肯定會了解,影響一個球員能否成為明星的關鍵,不是他浪投進了多少,而是更關鍵的是這個球員的命中率。如果我們衍生一個字段叫命中率,它的計算方式是“命中數/投籃數”,那這個特征對于數據的刻畫可能更深刻。于是數據變成了:
球員 | 投籃數 | 命中數 | 命中率 | 比賽場次 | 全明星 |
科比 | 800 | 400 | 0.5 | 500 | 否 |
喬丹 | 500 | 300 | 0.6 | 200 | 是 |
?
在真實業務場景中,特征衍生往往要覆蓋業務的各個方面,可能要衍生出成百上千的新特征才能更好的描述訓練數據集的意義。
總結
以上是生活随笔為你收集整理的[特征工程系列三]显性特征的衍生的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [特征工程系列二]显性特征的基本处理方法
- 下一篇: 聊聊互联网实习相关的事儿