2019年5月6日 星期一

資料探索與前處理觀念

資料探索與前處理觀念


資料探索與前處理是相當複雜的步驟, 初學者常會忽略這部分的重要性, 而直接學習機器學習演算法, 正確的data對訓練model具有決定性的影響, 所以整理這篇文章

拿到原始資料後, 會先進行EDA, 檢視資料
瀏覽資料後再進一步定義clean data的流程


實作部分請參考

[Pandas] 資料探索與前處理實作(1)

[Pandas] 資料探索與前處理實作(2)



資料前處理Data Preprocessing與探索性資料分析Exploratory Data Analysis(EDA)基本的步驟如下圖:

  • 資料前處理 : 將原始資料轉換成可以分析探索與符合機器學習library的格式, 原始資料來源可能相當多管道, 不一定只有公司內部的資料, 所以資料常常不完整,  遺漏值.特徵值轉換.重複值.補值處理.正規化(Normalization).標準化就相當重要
  • 探索性資料分析 : 大部分是以圖表方式找出資料集的結構與重要資訊, 發現異常值, 發現趨勢, 提出具體假設等等
  • 必須先對資料進行視覺化, 觀看資料分布與敘述統計值, 再選擇適當的演算法
  • 資料進行正規化(Normalization)後, 可以提升模型精準度與效率, 目的是去除單位的影響, feature相差太遠, ml演算法在找global min, 會導致gradient方向偏離中心點太遠, 需要花多的時間去走, 不利收斂, 正規化方式也依照數據不同可自行定義
當取得資料後可以按照下列步驟進行資料探索

  1. 資料結構型態為何? 結構化辦結構或非結構? 是否將資料轉成結構化供後續處理?
  2. 結構化資料可以進一步去理解每一列代表的意義
  3. 理解每一欄代表的意義, 例如欄位為哪種尺度資料, 是值或量的資料
  4. 是否有遺漏值? 那些欄位有遺漏值?遺漏多少筆?如何處理遺漏值?刪除.填入平均.中位數.隨機為比較簡單的方法, KNN是最常使用的方法之一(**補值範例請點此**)
  5. 是否執行欄位資料轉換?知道欄位的尺度後, 可以分類的欄位轉為數值資料供後續使用, 單位的問題則使用正規化與表準化
  6. 描述資料, 使用敘述統計(最大值, 最小值, 平均值, 標準差)與圖形(直方圖, 散佈圖, 箱形圖)來對資料做描述, 進一步找出異常值
  7. 資料之間是否存在關係?使用散佈圖, 共變異數, 相關係數, 熱圖 找出資料之間的關聯







資料轉換
因為很多統計分析或假設都需要常態分配,因此不同分配的資料,可以透過各種方式進行資料轉換。常用的方式有sqrt(x)*10(開根號再乘以10,考試分數太難看的好幫手)、Log轉換(把過於集中之資料放大,或是排除極端值之影響)、Box-Cox轉換(可轉成常態)與標準化(目的並非轉成常態分配,而是拉到同一個平台公平比較,並不會改變分配的型態)
  • 考量資料來源領域, 是否有慣用的轉換方式符合物理經濟生物...等等上面的常識
  • 根據採用的統計分析判斷是否轉換 EX資料轉換成近似常態分佈
  • 使用不同轉換方式, 看是否符合常態或變異一致性

補缺失值策略:
由於前端系統未強制要求使用者輸入,或是資料拋轉等問題,資料常常有缺漏值,分析前必須進行補遺。遺失的情形可分三種,一是整個變數遺失(如所有客戶皆未記錄性別),二是整個觀察值遺失(如缺少編號101的客戶所有資料),三是特定觀察值之特定變數遺失(如編號101客戶未記錄姓名)。
遺失還可以分成三大類原因,MCAR(Missing completely at random )、MAR(Missing at random)與NMAR(Not missing at random)。以問卷調查年收入為例,MCAR是指有些問卷可能不小心在回收過程中遺失,MAR則是指缺失跟某些變數有關,如經理比起其他層級更不喜歡透漏年薪(怕被綁架?),NMAR則是指缺失跟缺失值本身有關,如因為年收入低於100塊覺得很丟臉,所以低於100塊的人都不願意填
  • 若是整個row and column為空值,  直接drop掉
  • KNN是最常使用的方法, 回歸.mode(文字).median(較不受outlier影響).mean.或最常出現的類別都可以使用
  • 可由其他欄位推敲出來, 如用名字猜國家, 由搭船港口猜國家等等
  • 觀察補值原因選著相對應方法, 有些是維度很高, 有些是問卷設計(跳到第3題), MAR.MCAR可以直接drop掉, MNAR缺失(missing not as random不是隨機的), EX薪水高低的人不願意填問卷, 缺失資料不可以忽略
  • List-wise Deletion:資料有遺失就drop掉, Pairwise Deletion : 當資料互相比較, 如計算相關係數才drop掉
  • 如果缺失比率過高(>5%), 通常排除掉不要進入分析, 如果整體缺失率>25%, 必須在搜集到足夠的資料
  • 通用法則:切割出完整集與缺失值集, 完整隨機選取某些數字讓他na, na比例與原來資料na比例相近, 接著使用多種補值方式測試, 計算平均誤差, 找出誤差最小的補值方法, 回頭來補原始資料集




關於其他概念如平滑技巧.處理不平衡資料.重抽法則......
可以參考速記AI課程

Ref:

沒有留言:

張貼留言