當前位置:
首頁 > 最新 > kaggle數據挖掘和求解的基本步驟

kaggle數據挖掘和求解的基本步驟

01

數據探索(Exploratory Data Analysis)

對數據進行探索性的分析,通常會用 pandas 來載入數據,並做一些簡單的可視化來理解數據。

import pandas as pd

df = pd.DataFrame([[1, 1.5],[2.0,2.8]], columns=["int", "float"])

df

iterrows,按行迭代

02

可視化

matplotlib 和 seaborn 提供的繪圖功能可以方便的展示。

比較常用的圖表有:

seaborn熱點圖

多變數圖

散點圖

03

數據不均衡問題及部分措施

需要考慮數據不均衡問題

上圖是數據不均衡問題的一個典型例子,可以看到大部分微博的總互動數(被轉發、評論與點贊數量)在0-5之間,交互數多的微博(多於100)非常之少。如果我們去預測一條微博交互數所在檔位,預測器只需要把所有微博預測為第一檔(0-5)就能獲得非常高的準確率,而這樣的預測器沒有任何價值。那如何來解決機器學習中數據不平衡問題呢?通常處理數據的難度如下所示:

大數據+分布均衡 < 大數據+分布不均衡 < 小數據+數據均衡 < 小數據+數據不均衡

1)上採樣和生成新數據點時添加輕微的隨機擾動,經驗表明這種做法非常有效。

2)多次有放回的下採樣,得到多個不同的訓練集,進而訓練多個不同的分類器,通過組合多個分類器的結果得到最終的結果,這種方法稱為EasyEnsemble。第二種BalanceCascade,利用增量訓練的思想(Boosting):先通過一次下採樣產生訓練集,訓練一個分類器,對於那些分類正確的大眾樣本不放回,然後對這個更小的大眾樣本下採樣產生訓練集,訓練第二個分類器,以此類推,最終組合所有分類器的結果得到最終結果。

3)數據合成方法是利用已有樣本生成更多樣本,這類方法在小數據場景下有很多成功案例,比如醫學圖像分析等。

04

數據預處理(Data Preprocessing)

在構造 Feature 之前,需要對數據集進行一些處理。通常的步驟有:

說到outlier,不得不提下,bias 和 variance概念上區別,bias是偏差(與預測值之間的偏離程度),variance是誤差(代表點的離散程度,散不散的衡量),最直觀的如下圖所示,相對於第二行,第一行的bias都很小;相對於第二列,第一列的variance都很小。

然後,說下最後一條,即對這一變數創建一組新的偽變數,變數對應的取值為 1,其他都為 0。如下,將原本有 7 種可能取值的變數轉換成 7 個Dummy Variables。為什麼要這樣做,本來周日和周一日期是挨著的,但是轉化為1,和7後,如果畫在x軸上,它們就會離得很遠,這樣給演算法一個錯覺,這個日期的變化會對目標值一個錯誤的影響。

05

特徵選取(Feature Selection)

先做一遍 Feature Selection 能帶來一些好處:

特徵選取比較實用的方法是Random Forest訓練完以後得到的特徵的重要性,比如下圖所示:title特徵對泰坦尼克號船員幸運獲救起到最重要的作用。

這裡用一個例子來說明在一些情況下 Raw Feature 可能需要經過一些轉換才能起到比較好的效果。假設有一個 Categorical Variable 一共有幾萬個取值可能,那麼創建 Dummy Variables 的方法就不可行了。

這時一個比較好的方法是根據 Feature Importance 或是這些取值本身在數據中的出現頻率,為最重要(比如說前 95% 的 Importance)那些取值(有很大可能只有幾個或是十幾個)創建 Dummy Variables,而所有其他取值都歸到一個「其他」類裡面。這也是經常用到的一個技術。

06

模型選取(Model Selection)

準備好以上的特徵後,就可以開始選用一些常見的模型進行訓練了,一般從BaseLine開始,比如以下基本模型:

以上這些模型在sklearn中都可以直接調包使用。然後,講這些模型,作為集成模型的Base model,那麼常用的集成模型有哪些,最常用的模型基本都是基於決策樹的模型:

當然還有業界優秀的 Xgboost 。

07

參數調優(Tuning)

在訓練時,我們主要希望通過調整參數來得到一個性能不錯的模型,一個模型往往會有很多可調節的超參數,比如對 sklearn 的RandomForestClassifier來說,比較重要的就是隨機森林中樹的數量 (n_estimators)以及在訓練每棵樹時最多選擇的特徵數量(max_features)

通常我們會通過一個叫做Grid Search的過程來確定一組最佳的參數,這是一個暴力搜索的過程。

一般的調參步驟是:將訓練數據的一部分划出來作為驗證集,通常先將學習率設得比較高(比如 0.1),用 Grid Search 對其他參數進行搜索,逐步將 學習率降低,找到最佳值。以驗證集為監視表,找到的最佳參數組合。

08

總結

總結了數據探索,數據可視化,數據不平衡問題的部分解決措施,數據預處理,數據特徵選取,模型選擇,參數調優的基本過程。

演算法channel會有系統地,認真地推送:機器學習(包含深度學習,強化學習等)的理論,演算法,實踐,源碼實現。期待您的參與!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

TAG:全球大搜羅 |