1. 程式人生 > >機器學習深入與強化--特徵工程

機器學習深入與強化--特徵工程

機器學習演算法是一個架子,特徵需要我們自己去處理,做出更好的特徵,讓演算法去學習,從而達到更好的效果。

意義中靈活性指的是,如果使用的是簡單的LR,處理起來更靈活,更好控制。


做的都是一些基礎的事情,比如:

1、跑資料,但網際網路的資料都是大資料,不會存在一臺伺服器上,一般存在HDFS或者Hive表裡,自己去寫mapreduce的任務,去寫HQL去聚合處理這些資料,也就是在資料倉庫裡打雜。

2、資料清洗。比如電商裡很多資料是刷單刷出來的,這部分資料會嚴重影響模型的判斷力。

3、分析業務。針對特定業務想特徵,會思考採集什麼樣的特徵對之後的結果有用處。

4、最後用在特定的演算法上。

5、找出誤判的case,分析誤分的原因,在特徵的層面再次調整模型。





知道了哪些資料需要採集,接下來就要確定這些資料的儲存邏輯、儲存方式和儲存格式


儲存之後就是資料清洗,去掉髒資料



接下來進行資料取樣,因為大部分情況下,正負樣本的分佈是不均衡的
正>>負,且量都挺大==>下采樣
正>>負,量不大==>
1、採集更多的資料,如採集時間拉長
2、修改損失函式,給較少的樣本一個大的權重,迫使其學習時照顧到少量樣本


資料特徵工程的資料分為幾種型別


歸一化:每個維度不一樣,梯度下降時出現困難,因為下降方向是由每個維度的方向向量合成的,導致凸函式中下降時出現震盪,一句話就是收斂慢,準確度低。


類別型有三個處理方法:




時間型的數值:即可以看做連續值,也可以看做離散值
停留持續時間可以反映喜好程度,間隔時間可以反映再次購買的需求。







特徵與業務相關性很強,要學會開腦洞,有以下三種方法: