數據挖掘篇——特征工程之特征降維

来源:https://www.cnblogs.com/webary/archive/2020/03/15/12498886.html
-Advertisement-
Play Games

在業界廣泛流傳著一句話:數據和特征決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。 由此可見,數據和特征是多麼的重要,而在數據大多數場景下,數據已經就緒,不同人對於同樣的數據處理得到的特征卻千差萬別,最終得到的建模效果也是高低立現。從數據到特征這就要從特征工程說起了... ...


 在業界廣泛流傳著一句話:數據和特征決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。

 由此可見,數據和特征是多麼的重要,而在數據大多數場景下,數據已經就緒,不同人對於同樣的數據處理得到的特征卻千差萬別,最終得到的建模效果也是高低立現。從數據到特征這就要從特征工程說起了...

0. 特征工程

    首先介紹下,特征工程是什麼:利用數據領域的相關知識來創建能夠使機器學習演算法達到最佳性能的特征的過程[1.wiki]。特征工程是一個較大領域,它通常包括特征構建、特征提取和特征選擇這三個子模塊,重要性排序:特征構建>特征提取>特征選擇。
    先來介紹幾個術語:
  • 特征構建:從原始數據中構建出特征,有時也稱作特征預處理,包括缺失值處理、異常值處理、無量綱化(標準化/歸一化)、啞編碼等。
  • 特征提取:將原特征轉換為一組具有明顯物理意義或統計意義或核的新特征。
  • 特征選擇:從特征集合中挑選一組最具統計意義的特征子集。
    其中本文主要總結下可統一用於特征降維的特征提取和特征選擇技術方法,特征構建涉及技術點較少,下回再分解。

1. 特征降維

WHAT:將高維空間的特征通過刪減或變換轉為低維空間特征 WHY:降低時間/空間複雜度、降低提取特征開銷、降噪、提升魯棒性、增強可解釋性、便於可視化; HOW:主要有兩種方式,即特征選擇和特征提取。

1.1 特征選擇(子集篩選):

特征選擇方法主要分為三種:

  • Filter:過濾式;按權重排序,不涉及到學習器,排序規則一般有方差法、相關係數法、互信息法、卡方檢驗法、缺失值比例法(註意受範圍影響的方法需先歸一化)[2.zhihu]
    • 方差法:計算各個特征的方差,然後根據閾值,選擇方差大於閾值的特征。可使用sklearn.feature_selection庫的VarianceThreshold類來實現。
    • 缺失值比例法:計算各個特征的缺失值比例,將缺失值比例較大的特征過濾掉。
    • 相關係數法:計算特征與輸出值的相關係數以及相關係數的 P值(常見的有:皮爾森相關係數用於數值特征的線性檢驗,秩相關係數用於類別特征的單調性檢驗)。
    • 互信息法:計算定性特征與輸出值的相關性(運用了信息熵理論),決策樹學習中的信息增益等價於訓練數據集中類與特征的互信息。
      •    
    • 卡方檢驗法:對於每個特征與輸出值,先假設獨立,再觀察實際值與理論值的偏差來確定假設的正確性,即是否相關。
  • Embedded:嵌入式;確定模型過程中自動完成重要特征挑選,基於懲罰項如嶺回歸(L2正則)、LASSO(L1正則),基於樹模型如GBDT、決策樹[3.cnblog]
  • Wrapper:封裝式;用學習器的性能評判不同特征子集的效果,特征子集生成方式:完全搜索(前向&後向)、啟髮式搜索、隨機搜索[3.cnblog]

1.2 特征提取(投影or轉換):

  • 線性方法[4.csdn]
    • PCA:主成分分析;理論:通過正交變換將原始的 n 維數據集變換到一個新的被稱做主成分的數據集中,變換後的結果中第一個主成分具有最大的方差值;
      • 特點:無監督,儘量少維度保留儘量多原始信息(均方誤差最小),期望投影維度上方差最大,不考慮類別,去相關性,零均值化,喪失可解釋性
    • ICA:獨立成分分析;將原特征轉化為相互獨立的分量的線性組合;PCA一般作為ICA的預處理步驟[5.zhihu]
    • LDA:線性判別分析,有監督,儘可能容易被區分(高內聚、低耦合)[6.cnblog]
    • SVD:奇異值分解,可用於PCA、推薦、潛在語義索引LSI,可並行,可解釋性不強
  • 非線性方法:
    • LLE:局部線性嵌入,非線性降維(基於圖),保持原有流行結構
    • LE:拉普拉斯特征映射,非線性(基於圖),相互有聯繫的點儘可能靠近
    • t-SNE:t分佈隨機臨近嵌入,將歐幾裡得距離轉為條件概率表達點與點之間的相似度[7.datakit]
    • AE:自動編碼器
    • 聚類

 

特征降維方法對比先介紹到這裡,更多內容後續繼續分解~

轉載請註明出處:數據挖掘篇——特征工程之特征降維https://www.cnblogs.com/webary/p/12498886.html

 

參考鏈接:

1.wiki:https://en.wikipedia.org/wiki/Feature_engineering

2.zhihu:https://www.zhihu.com/question/28641663

3.cnblog:https://www.cnblogs.com/pinard/p/9032759.html

4.csdn:https://blog.csdn.net/yujianmin1990/article/details/48223001

5.zhihu:https://www.zhihu.com/search?type=content&q=PCA%20ICA

6.cnblog:https://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html

7.datakit:http://www.datakit.cn/blog/2017/02/05/t_sne_full.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Ansible的指定用戶與密碼登錄、免密登錄、指定ssh埠以及主機清單Inventory配置 ...
  • [linux內核分析———SLAB原理及實現 ](https://blog.csdn.net/chenxiancool/article/details/7638804) Slab原理及實現 1. 整體關係圖 ! 註:SLAB,SLOB,SLUB都是內核提供的分配器,其前端介面都是一致的,其中SLAB ...
  • 最近使用brew update時,發現homebrew更新緩慢;於是進行更換為國內源; 晚上這種教程很多,我選擇的是中科大的源;當然清華的源也是可以的,這取決於你當前所處的地理位置,這樣有更通暢的網路鏈接; https://mirrors.ustc.edu.cn/help/brew.git.html ...
  • turtle庫的學習筆記(python) turtle(海龜)是Python重要的標準庫之一,它能夠進行基本的圖形繪製。turtle圖形繪製的概念誕生於1969年,成功應用於LOGO編程語言。turtle庫繪製圖形有一個基本框架:一個小海龜在坐標系中爬行,其爬行軌跡形成了繪製圖形。剛開始繪製時,小海 ...
  • 原文鏈接: "https://xiaoheidiannao.com/articles/Vim For Chrome.html" "Chrome瀏覽器" 有很多強大的擴展程式,其中我最喜歡的就是Vimium,其他的擴展程式都可以不安裝,但就是這個一定要安裝,用過以後你就會發現你已經離不開它了! Vim ...
  • 背景 最近公司系統還原用戶時偶爾會出現部分用戶信息未還原成功的問題,最為開發人員,最頭疼的不是代碼存在bug,而是測試發現了bug,但一旦我去重現,它就不見了。Are you kidding me? 經過漫長的溝通與嘗試,終於發現了端倪,這個問題只有在多人同時操作修改同一用戶信息時才會出現。 哦,那 ...
  • 介紹MySQL Integer類型的幾種分類,以及INT(11)中11數字表達的意思 ...
  • MySQL可以運行在不同的模式下,而且可以在不同的場景下運行不同的模式,這主要取決於系統變數 sql_mode 的值。本文主要介紹一下這個值的查看與設置,主要在Mac系統下。 對於每個模式的意義和作用,網上很容易找到,本文不做介紹。 按作用區域和時間可分為3個級別,分別是會話級別,全局級別,配置(永 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...