天天看點

零散知識點總結1 調參方法2 樣本不平衡問題的處理方式3 SQL的相關問題4 Python5 機器學習

最近遇到知識點總結

  • 1 調參方法
  • 2 樣本不平衡問題的處理方式
    • 2.1 場景
    • 2.2 對訓練集還是測試集用?還是全量用?
    • 2.3 處理方法有哪些?
  • 3 SQL的相關問題
    • 3.1 缺失值的處理
    • 3.2 遇到的坑
  • 4 Python
    • 4.1 一個賊牛逼的三方庫
    • 4.2 小技巧
  • 5 機器學習
    • 5.1 模型融合方法
    • 5.2 評價名額
最近實習做項目的時候遇到了一些很多細碎的知識點,總結一下。

1 調參方法

之前面試也被問過:你知道的調參方法有哪些啊?

  • 記得當時自己的回答就隻有網格調參。但其實之前參加一個風控沙龍,聽說過貝葉斯調參,附上文章連結:貝葉斯調參1- https://mp.weixin.qq.com/s/wHtiZlzHENCcLXosOA3Xbw ; 貝葉斯調參2 - https://mp.weixin.qq.com/s/H6vprWzsZdGmoZQgrQUt6Q
  • 但最近項目中自己就用到了另外的調參方式。

總的來說,調參方式有下面三種:

  • 網格搜尋。對應sklearn中的GridSearchCV
  • 随機搜尋。對應sklearn中的RandomizedSearchCV
  • 貝葉斯調參。見上面兩個連結。

參考資料:

  • https://blog.csdn.net/juezhanangle/article/details/80051256
  • https://blog.csdn.net/qq_36810398/article/details/86699842
  • https://blog.csdn.net/gzj533/article/details/77734310
  • https://blog.csdn.net/luanpeng825485697/article/details/79831703

2 樣本不平衡問題的處理方式

2.1 場景

最近剛好做的項目是一個二分類問題,全量資料中正負樣本比超過了5:1,一般認為超過4:1則是樣本不平衡,是以需要進行處理。

2.2 對訓練集還是測試集用?還是全量用?

僅針對訓練集進行樣本不平衡問題的處理,測試集不用動,使用平衡後的訓練集來訓練模型,然後喂給測試集即可。

2.3 處理方法有哪些?

根據周志華老師的西瓜書上描述,大概有兩種方法:

  • 過采樣。增加少類樣本。典型算法是SMOTE算法
  • 欠采樣。減小多類樣本。典型算法是EasyEnsemble算法。

詳細的介紹參考以下博文:

  • https://blog.csdn.net/qq_27802435/article/details/81201357#commentBox
  • https://blog.csdn.net/heyongluoyao8/article/details/49408131

3 SQL的相關問題

3.1 缺失值的處理

今天做特征工程用SQL提數的時候,需要計算一個名額,最大值/平均值,這時候遇到了一個問題,如果平均值為0的時候,傳回結果就是NaN,當然,後續我們在Python本地去做完全沒有問題,自己之前有個部落格就總結過缺失值的處理方式:Python處理缺失資料

但如果用SQL怎麼處理呢?有如下幾個函數可以處理:即如果為缺失值 可以賦一個值。

  • ISNULL()
  • NVL()
  • COALESCE()
  • IFNULL()

具體用法見下面SQL:

COALESCE(max(session_count)/avg(session_count),0) h_m_w2_session_count
           
零散知識點總結1 調參方法2 樣本不平衡問題的處理方式3 SQL的相關問題4 Python5 機器學習

參考資料見:

  • https://www.w3cschool.cn/sql/27uvbfpg.html
  • https://www.w3schools.com/sql/sql_isnull.asp

3.2 遇到的坑

  • 後面的表如果字段要用到,記得在最前面的時候寫上,全部用就是 .*
  • 多層left join的時候,要選擇合适的主表
  • 确認資料的對應性

4 Python

4.1 一個賊牛逼的三方庫

今天剛用的,很好用,pandas_profiling!生成動态互動的資料探索報告

參考:其實也就是一兩行代碼

https://mp.weixin.qq.com/s/gJC3DDXOnwCAZHcLp2oYFQ

4.2 小技巧

資料預處理清洗完畢後,使用一個函數封裝一下,能節省不少時間。

5 機器學習

5.1 模型融合方法

多模型做完之後,希望能融合多模型結果。大概有三種方法:

  • 分類問題:Voting
  • 回歸問題:Averaging
  • Stacking方法。

前兩種都比較好了解,就是最後一種Stacking 沒怎麼看懂!

參考資料:

  • https://blog.csdn.net/willduan1/article/details/73618677
  • https://zhuanlan.zhihu.com/p/25836678
  • https://blog.csdn.net/qq_18916311/article/details/78557722

5.2 評價名額

分類問題的模型做完之後,需要進行評價,而且不同的業務問題對應的評價方式應該是不一樣的,因為側重點不同,是以需要從多種評價名額中選擇你所需要的。

參考資料:

  • https://blog.csdn.net/login_sonata/article/details/54288653
  • https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html

暫時這麼多,後面繼續補充擴充!加油!