數據挖掘比賽/項目全流程介紹


【說在前面】本人博客新手一枚,象牙塔的老白,職業場的小白。以下內容僅為個人見解,歡迎批評指正,不喜勿噴![握手][握手]

1. 數據預處理

1.1 選擇數據樣本(企業級應用)

  • 例如客觀選擇某一時間段內的所有樣本集合等(避免人為主觀選擇)
  • 例如在評價樣本中去除惡意/隨意評價樣本等(避免錯誤樣本的干擾)

1.2 可視化特征分布

  • dataframe.info/dataframe.describe等(查看數據樣本的整體分布情況)
  • dataframe.plot/matplotlib/seaborn等(包括柱狀圖/散點圖/折線圖等)

1.3 缺失值處理

  • 如果某樣本的缺失記錄占比較大:
    • 可統計為“缺失量”
    • 可直接刪除該樣本
  • 如果某特征的缺失記錄占比較大:
    • 可二值化為“有/無”
    • 可直接刪除該樣本
  • 如果某樣本/特征的缺失記錄占比較小:
    • 可根據領域知識補全
    • 數值型:可根據均值/眾數/模型預測等補全
    • 類別型:可以定義為新的類別等
  • 可不處理,有些模型對缺失值不敏感:例如樹模型/神經網絡等

1.4 異常值處理

  • 異常值判定:需根據數據分布/業務場景等
    • RobustScaler/robust_scale等
    • 之后會推出異常值檢測專題
  • 可直接刪除該樣本
  • 可采用缺失值的處理方式
    • 注意數據不一致問題
    • 注意數值型可用蓋帽/對數變換等壓縮
  • 可不處理,有些模型對異常值不敏感:例如KNN/隨機森林等

2. 特征工程

2.1 數值型

  • 連續型:離散化(例如年齡/身高/體重等)
    • 無監督:分箱等
    • 有監督:基於卡方檢驗/信息增益等
  • 標准化/歸一化:Normalizer/StandardScaler/MinMaxScaler

2.2 非數值型

  • 類別型
    • 存在排序問題的編碼:sklearn.preprocessing.LabelEncoder
    • 不存在排序問題的編碼:sklearn.preprocessing.OneHotEncoder/get_dummies/Binarizer二值化
  • 時間型
    • 與數值型/類別型進行特征交叉/組合(企業級應用很常見)
    • 采用時間滑動窗口統計特征count/min/max/mean/median/mode/variance等
  • 字符串型
    • 可采用詞袋模型/TF-IDF/主題模型/Word Embedding等

2.3 特征體系擴充

  • 特征交叉/特征組合等
  • 多項式轉換:PolynomialFeatures
  • 引入新特征:根據迭代評估決定是否添加(企業級應用)

2.4 特征選擇(降維)

  • 去掉取值變化小的特征:取值基本都相同的特征
  • 衡量單個特征和標簽的關聯度:scipy.stats.pearsonr/minepy.MINE/回歸權重等
  • 含正則化的線性模型/樹模型等:SelectKBest/SelectFromModel
  • 其他特征選擇思路:RandomizedLasso/sklearn.feature_selection.RFE
  • 降維:sklearn.decomposition.PCA/sklearn.lda.LDA

2.5 sklearn.pipeline

  • 能夠完成流水線式和並行式的工作

3. 模型選擇/融合

3.1 常見的機器學習算法

  • lr/svm/rf/GBDT/xgboost/lightgbm等

3.2 模型融合

  • 回歸預測的boosting思路:各模型的加權平均融合
  • 分類識別的bagging思路:各模型的投票融合
  • Stacking/Blending等模型融合方法

3.3 企業級模型應用思路

  • lr/xgboost/gbdt+lr/引入DNN等

4. 模型訓練/測試

4.1 數據集划分

  • 按比例划分:sklearn.model_selection.train_test_split
  • K折交叉驗證:KFold/GroupKFold/StratifiedKFold

4.2 調參

  • 網格搜索/貝葉斯優化等(sklearn.grid_search.GridSearchCV)

5. 其他問題

5.1 樣本不均衡問題

  • 數據角度:欠采樣/過采樣/SMOTE算法等
  • 模型角度:調整lr的閾值/采用樹模型等
  • 評估角度:采用F1值/ROC曲線等

5.2 無標簽樣本問題

  • 半監督學習方法/聚類思考等

5.3 欠擬合/過擬合問題

  • 欠擬合
    • 特征擴充/非線性模型等
  • 過擬合
    • 擴充數據集/正則化/early stoppping/交叉驗證
    • Dropout/batch normalization

6. 模型評估

6.1 回歸問題

  • 平均絕對誤差MAE/平均平方誤差MSE/均方根誤差RMSE/決定系數R2等

6.2 分類問題

  • 混淆矩陣/准確率/召回率/F1/ROC曲線/AUC/PR曲線/交叉熵損失等

6.3 上線問題

  • 線下預估/流量分配/ABtesting/業務評估指標等(企業級應用)

老規矩,最后直接上完整的思維導圖!

如果您對人工智能算法感興趣,歡迎瀏覽我的另一篇博客:人工智能新手入門學習路線和學習資源合集(含AI綜述/python/機器學習/深度學習/tensorflow)
如果你是計算機專業的應屆畢業生,歡迎瀏覽我的另外一篇博客:如果你是一個計算機領域的應屆生,你如何准備求職面試?
如果你是計算機專業的本科生,歡迎瀏覽我的另外一篇博客:如果你是一個計算機領域的本科生,你可以選擇學習什么?
如果你是計算機專業的研究生,歡迎瀏覽我的另外一篇博客:如果你是一個計算機領域的研究生,你可以選擇學習什么?
如果你對金融科技感興趣,歡迎瀏覽我的另一篇博客:如果你想了解金融科技,不妨先了解金融科技有哪些可能?
之后博主將持續分享各大算法的學習思路和學習筆記:hello world: 我的博客寫作思路


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM