建模交流學習

以下是今天(20160811)跟阿里的同學交流的關於建模方面的心得。

1.規則-經驗-機器學習
有的時候規則其實更簡單,只不過這是人爲的經驗成分
機器學習其實是想通過大數據學習這種人爲經驗

2.模型是注重性能還是可解釋性?
(1)如果可解釋性要強的話就要犧牲性能(預測的結果好壞),如果只追求性能的話可以用一些非線性(gbdt,dnn等)
(2)如果要求可解釋性最好用一些線性的模型(最簡單的最常用的也就是LR邏輯迴歸)

3.特徵篩選
不管什麼模型,特徵的篩選和數據預處理都很重要!
woe簡單的反應了一個特徵跟label之間的強弱關係
但是有的時候特徵是相關的,比如判斷一個人的經濟能力(特徵1:他有房,特徵二: 他有存款) ,這2個特徵某種程度上是相關的,一起放進來會有影響的。我們正常理解的是有房個數越多越有錢,存款越多越有錢,但是實際可能出來 有房是正的,存款是負的,這種不合常理的情況==》結果顯示存款越多越沒有錢,這種就是相關導致的,如果2個特徵的相關係統超過0.8了,就可以去掉一個了,結果影響倒不會太大,但是你的模型肯定性不好。

4.數據的預處理,簡單的說歸一化離散化
一般來說離散化比歸一化性能要好
因爲離散化數據更碎,一定程度上可以模擬出非線性的關係

5.iv
iv 是 看特徵跟label的關係,一般iv比較強的,優先加入特徵隊列,能看出特徵的重要程度。

6.關於pai的使用
數據可以拿訓練出來的模型直接預測
預測有2個輸入:一個是模型,一個是預測數據
評估的輸入是預測的輸出

7.關於計算auc
auc要看訓練集(得出模型的數據集)、驗證集(驗證模型是否正確的數據集)、測試集上的值
訓練集和驗證集不要過擬合忒嚴重

8.模型調優實例
根據baseline驗證當前模型性能
把數據根據用戶和時間維度劃分一下
用你第一次的結果當做baseline,然後後面逐步優化
比如要預測違章,label是近三個月是否有違章記錄(有1,無0),那麼劃分維度爲就是時間,label定義三個月,那時間就是3個月的間隔,好比用1-3月的數據作爲訓練數據,那麼一般我們把4-6月的數據作爲預測數據,而1-3月份裏的用戶可以在用戶維度拆分爲訓練集和驗證集。
以上都是數據預處理的部分。

9.建模理解
其實建模真正耗費的時間是分析數據上,第一要清洗數據,第二選擇特徵,pai無非就是根據你選擇的特徵 跑出一個模型,訓練集與特徵的好壞是pai不能選擇的,好比,你都選擇的是無關痛癢的特徵,模型肯定不會好。
還有髒數據也要記得處理,對模型結果有影響。

10.訓練集和驗證集
訓練集、驗證集比例一般分爲7:3。
數據的處理很重要,直接決定模型的結果,至於用什麼,其實差別不大,訓練集得出的模型,在驗證集上看看,如果驗證集的性能比訓練集的好太多,那就說明模型過擬合了(99%成功),一般情況下,驗證集跟訓練集結果差不多就可以了。
預測一般是預測相對於訓練而言未來的事件
驗證集可以看出模型的穩定性
訓練集和驗證集最好隨機拆分

11.關於特徵
建模其實是個蠻精細的活,特徵多我們需要根據特徵重要程度剔除特徵,有得時候特徵少,我們需要創建特徵。
常見的就是特徵相乘,這個就是指數級別的增長,比如你有100個特徵,兩兩相乘就是10000個特徵,比如是否有車是一個特徵,然後是否有穩定的工作也是一個特徵,這2個特徵交叉相乘就是 有車並且是否有穩定工作,特徵意義就不一樣了,類似的方法很多。

14.關於指標加重權值
好比你有30w的數據,但是裏面label=1的只有100個,佔比忒少,模型基本訓練不出來好的結果,可以適當的讓label=1的樣本多點,最簡單的辦法就是複製樣本(但是要防止過擬合,舉個最極端的例子,label=1的只有一條數據,這個人是個男的,把這個人的樣本複製100w份,導致過擬合,模型結果就會顯示性別=男的更容易出事故,但是事實並不是這樣),但是複製需要適量。
比如一個正樣本有效特徵忒少,好比你有100個特徵,但是這條正樣本只有性別爲男這一個特徵,其他的特徵都是空,你複製了100分,就會增加性別這個特徵的權重,你複製正樣本會導致無效特徵權重增加。
比如酒駕對應與發生事故,模型計算出來,我們發現酒駕權重很小或vi值很小,但是我們認爲醉酒這個特徵權重應該是比較大的,這就是實際結果與預期的差異。但是我們需要加重酒駕的權重,這個時候就可以固定這個特徵的權重,比如邏輯迴歸就是簡單的加權求和,我這個特徵我就給1.5。
就是每個特徵 會有個自己的計算公式,100個特徵每個都有一個,固定住了酒駕,相當於你先設定好,你原來要求解100個特徵的權重值,現在我固定住一個了 他就是x=1.5,有多少個特徵,不就是求解多少個變量的權重值麼,只不過是矩陣計算的,利用梯度求解最優解,只是你現在固定一個值,偷懶的做法就是:酒駕的特徵不放進去,先訓練99的特徵 ,然後把你固定的酒駕特徵權重加到模型輸出裏,但是這樣結果不一定好,如果你的樣本質量很高的話,這樣沒啥問題。

真正建模得出一個好模型需要的時間很久的,不斷的嘗試不斷的提升。

發佈了42 篇原創文章 · 獲贊 78 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章