數據處理與特徵工程

機器如何學習?

  1. 數據預處理(數據清洗、數據集成、數據採樣)
  2. 特徵工程(特徵編碼、特徵選擇、特徵降維、規範化)
  3. 數據建模(迴歸問題、分類問題、聚類問題、其他問題)
  4. 結果評估(擬合度量、查準率、查全率、F1值、PR曲線、ROC曲線)

數據預處理

數據清洗:對各種髒數據進行對應方式的處理,得到標準、乾淨、連續的數據、提供給數據統計、數據挖掘等使用

  • 數據的完整性
  • 數據的合法性(例如獲取的數據與常識不符)
  • 數據的一致性
  • 數據的唯一性
  • 數據的權威性

數據採樣:

  • 數據不平衡——指數據集的類別分佈不均(例如:一個二分類問題,100個訓練樣本,比較理想的情況是正類、父類相差不多;而如果正類樣本有99個,父類樣本僅1個,則意味存在類不平衡),此時預測時就算全部爲正,準確率也爲99%,這並不能反映模型的好壞
    解決方法
    ——過採樣:通過隨機複製少類來增加其中的實例數量,從而可增加樣本中少數類的代表性。
    ——欠採樣:通過隨機的消除佔多數的類的樣本來平衡類分佈;直到多數類和少數類的實例實現平衡

數據集拆分
機器學習中將數據劃分爲三份

  • 訓練數據集:用來構建機器學習模型
  • 驗證數據集:輔助構建模型,用於在構建過程中評估模型,提供無偏估計,進而調整模型參數
  • 測試數據集:用來評估訓練好的最終模型的性能

常用拆分方法

  • 留出法:直接將數據集劃分爲互斥的集合,如通常選擇70%數據作爲訓練集,30%作爲測試集。需注意的是保持劃分後集合數據分佈的一致性,避免劃分過程中引入額外的偏差而對最終結果產生影響
  • K-折交叉驗證法:將數據集劃分爲k個大小相似的互斥子集,並且儘量保證每個子集數據分佈的一致性。這樣,就獲取了K組訓練-測試集,從而進行k次訓練和測試,k通常取值爲10.

特徵工程

特徵編碼:數據集中經常會出現字符串信息,例如男女、高中低等,這類信息不能直接用於算法計算,需要將這些數據轉化爲數據形式進行編碼,便於後期進行建模

  • one-hot編碼:採用N位狀態寄存器來對N個狀態進行編碼,每個狀態都由他獨立的寄存器位,並在任意時候只有一位有效(例如:統計商業大樓是否有無電梯,可以用01、10表示有無電梯
  • 語義編碼:one-hot編碼無法體現數據見的語義關係,對於一些有關聯的文本信息來說,無法真正體現出數據關聯(對於這類信息通常採用詞嵌入的方式是比較好的選擇,詞嵌入信息可以編碼語義信息,生成特徵語義表示)

特徵降維:特徵選擇完成後,可能由於特徵矩陣過大,導致計算量大、訓練時間長,因此降低特徵矩陣維度也是必不可少的

  • 主成分分析:將原始特徵空間映射到彼此正交的特徵向量空間,在非滿秩的情況下使用SVD分解來構建特徵向量
  • 線性判別分析:給出一個標註了類別的數據集投影到了一條直線之後,能夠使得點儘量的按類別區分開

結果評估

模型選擇
泛化誤差:在“未來”樣本上的誤差
經驗誤差:在訓練集上的誤差
性能評價指標-分類
準確率:是指在分類中,分類正確的記錄個數佔總記錄個數的比
召回率:查全率,是指在分類中樣本中的正例有多少被預測正確了
通常,準確率高時,召回率偏低;召回率高時,準確率偏低

機器學習方法分類

分類問題

  • 決策樹
  • 貝葉斯
  • 支持向量機
  • 邏輯迴歸
  • 集成學習

迴歸問題

  • 線性迴歸
  • 嶺迴歸
  • Lasso迴歸

聚類問題

  • K-means
  • 高斯混合聚類
  • 密度聚類
  • 層次聚類
  • 譜聚類

其他問題

  • 隱馬爾可夫模型
  • LDA主題模型
  • 條件隨機場
  • 神經網略
  • 深度學習
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章