[Feature] Feature engineering

複習舊知識:

[Pandas] 03 - DataFrame【讀入並處理表格】html

初步瞧:列屬性的大概樣子算法

屬性間:apply新添加一列網頁爬蟲

屬性內:窗口數據架構

[Scikit-learn] 4.3 Preprocessing data【基礎夯實】app

單個特徵:去量綱(若干方法)、規範化機器學習

特殊狀況:數據量不大、異常值較多、缺失值,特徵升維函數

去相關性:白化(下降數據的冗餘性)post

[Feature] Preprocessing tutorial【偉哥筆記】學習

網頁爬蟲:import urllib.requestui

網頁解析:from bs4 import BeautifulSoup

數據處理:缺失值、加標籤、去量綱

數據訓練:線性迴歸之相關性分析

 

學習新知識:

Ref: Feature Preprocessing on Kaggle

好文章:特徵工程 

(1)使用sklearn作單機特徵工程【特徵預處理】

(2)使用sklearn優雅地進行數據挖掘【特徵選擇,pipeline工程】

(3)誰動了個人特徵?——sklearn特徵轉換行爲全記錄【繼續改進】

 

本文主要是給出一個輪廓,具體仍是要實踐一套代碼。

下一步,可能就是學習復現一些kaggle萬能的模型,如此一來就差很少了。

 

 

 

 

故事背景


1、特徵的重要性

數據特徵決定了機器學習的上限,而模型算法只是逼近這個上限而已。

找到最重要的特徵,找的全,找的準。

 

2、特徵工程

數據清洗,是針對數據:

  (1) 特別不對勁的數據應該直接幹掉。

  (2) 市場調查採樣不均衡也是個問題。

以後就是「正式篇章」:預處理,主要就是對特徵的操做,提升「機器學習的上限」。

 

 

 

 

IRIS (鳶尾花) 數據集


韭言韭語談套路

1、讀取數據集

韭言韭語

(1) 數據可能很是大,故先查看下類型,以及頭幾行數據;

(2) 進一步地,瞭解整體走勢。

」先頭部隊「 四步走,針對數據。

 

2、數據預處理

韭言韭語

(*) 這部分屬於」特徵處理「 部分,針對列屬性 (特徵)。

  • 存在缺失值:缺失值須要補充。
  • 信息冗餘:(二值化,加標籤) 對於某些定量特徵,其包含的有效信息爲區間劃分,例如學習成績,倘若只關心「及格」或不「及格」,那麼須要將定量的考分,轉換成「1」和「0」表示及格和未及格。二值化能夠解決這一問題;「白化」也能夠考慮。
  • 定性特徵不能直接使用:(啞編碼) 某些機器學習算法和模型只能接受定量特徵的輸入,那麼須要將定性特徵轉換爲定量特徵。
    • 最簡單的方式是爲每一種定性值指定一個定量值,可是這種方式過於靈活,增長了調參的工做。
    • 一般使用啞編碼的方式將定性特徵轉換爲定量特徵:假設有N種定性值,則將這一個特徵擴展爲N種特徵,當原始特徵值爲第i種定性值時,第i個擴展特徵賦值爲1,其餘擴展特徵賦值爲0。啞編碼的方式相比直接指定的方式,不用增長調參的工做,對於線性模型來講,使用啞編碼後的特徵可達到非線性的效果。
  • 信息利用率低:(數據升維,多項式變換) 不一樣的機器學習算法和模型對數據中信息的利用是不一樣的,以前提到在線性模型中,使用對定性特徵啞編碼能夠達到非線性的效果。相似地,對定量變量多項式化,或者進行其餘的轉換,都能達到非線性的效果。

以上內容,集中整理在:[Feature] Preprocessing tutorial【偉哥筆記,注重實踐]】

 

  • 不屬於同一量綱:即特徵的規格不同,不可以放在一塊兒比較。無量綱化能夠解決這一問題。

集中整理在: [Feature] Compare the effect of different scalers【案例模板學習】

 

3、特徵選擇

Ref: 1.13. Feature selection

Goto: [Feature] Feature selection【詳解】

3.1 Filter

3.1.1 方差選擇法

3.1.2 相關係數法

3.1.3 卡方檢驗

3.1.4 互信息法

3.2 Wrapper

3.2.1 遞歸特徵消除法

3.3 Embedded

3.3.1 基於懲罰項的特徵選擇法

3.3.2 基於樹模型的特徵選擇法

所屬方式 說明
VarianceThreshold Filter 方差選擇法
SelectKBest Filter 可選關聯繫數、卡方校驗、最大信息係數做爲得分計算的方法
RFE Wrapper 遞歸地訓練基模型,將權值係數較小的特徵從特徵集合中消除
SelectFromModel Embedded 訓練基模型,選擇權值係數較高的特徵

 

4、降維

4.1 主成分分析法(PCA)

4.2 線性判別分析法(LDA) 

說明
decomposition PCA 主成分分析法
lda LDA 線性判別分析法

 

 

基本的數據挖掘場景 

1、數據挖掘流程

韭言韭語

「先頭部隊」 四大基本操做,涉及到的庫有 urllib, bs4, numpy, pandas

(1) 數據採集 data collection

網頁爬蟲:import urllib.request

 

網頁解析:from bs4 import BeautifulSoup

(2) 數據分析 data previewing

數據初瞧。

(3) 數據清洗 data cleansing

  去掉極端樣本。

(4 )數據採樣 data sampling

解決「採樣不均衡」問題。

 

數據挖掘一般包括數據採集,數據分析,特徵工程,訓練模型,模型評估等步驟。

接下來即是「特徵處理"的過程。

 

2、transform方法

「transform方法」 主要用來對特徵進行轉換。從可利用信息的角度來講,轉換分爲無信息轉換有信息轉換

    • 無信息轉換是指不利用任何其餘信息進行轉換,好比指數、對數函數轉換等。
    • 有信息轉換從是否利用目標值向量又可分爲無監督轉換有監督轉換
      • 無監督轉換指只利用特徵的統計信息的轉換,統計信息包括均值、標準差、邊界等等,好比標準化、PCA法降維等。
      • 有監督轉換指既利用了特徵信息又利用了目標值信息的轉換,好比經過模型選擇特徵、LDA法降維等。

經過總結經常使用的轉換類,咱們獲得下表:

 

  

 

 

優雅地進行數據挖掘


並行處理,流水線處理,自動化調參,持久化是使用sklearn優雅地進行數據挖掘的核心。

Ref: 使用sklearn優雅地進行數據挖掘【特徵選擇,pipeline工程】

Ref: 誰動了個人特徵?——sklearn特徵轉換行爲全記錄

 

兩篇閒散筆記,主要是能吃透這套代碼,必將受益不淺.

[Feature] Build pipeline【展現大概思路過程】

[Feature] Final exam: code analysis【代碼分析,架構思路不錯】

 

End.

相關文章
相關標籤/搜索