機器學習 特徵工程 特徵篩選

2021-09-26 16:38:37 字數 2841 閱讀 3629

1、冗餘:部分特徵相關度太高,消耗計算效能,影響決策樹分支的選擇。

2、雜訊:部分特徵是對**結果有負影響

3、降維:減少特徵數量、降維,使模型泛化能力更強,減少過擬合

4、特徵選擇與降維的關係:特徵選擇只篩選掉原本特徵裡和結果**關係不大的,後者做特徵的計算組合構成新特徵。svd、pca降維也能解決一定的高緯度問題。

x = [[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]]

selector = variancethreshold(threshold=(.8 * (1 - .8))) #引數threshold為方差的閾值

selector.fit_transform(x)

>>>array([[2, 0],

[1, 4],

[1, 1]])

(2)對於回歸問題(y連續),可採用:

(3)特徵選擇方式

(4)例子

from sklearn.datasets import load_iris

from sklearn.feature_selection import selectkbest

from sklearn.feature_selection import chi2

iris = load_iris()

x, y = iris.data, iris.target

print(x.shape)

x_new = selectkbest(chi2, k=2).fit_transform(x, y)

print(x_new.shape)

>>>(150, 4)

>>>(150, 2)

pearson相關係數 (pearson correlation):皮爾森相關係數是一種最簡單的,能幫助理解特徵和響應變數之間關係的方法,該方法衡量的是變數之間的線性相關性,結果的取值區間為[-1,1],-1表示完全的負相關,+1表示完全的正相關,0表示沒有線性相關。

import numpy as np

from scipy.stats import pearsonr

np.random.seed(0)

size = 300

x = np.random.normal(0, 1, size)

# pearsonr(x, y)的輸入為特徵矩陣和目標向量,能夠同時計算 相關係數 和p-value.

print("lower noise", pearsonr(x, x + np.random.normal(0, 1, size)))

print("higher noise", pearsonr(x, x + np.random.normal(0, 10, size)))

>>>lower noise (0.7182483686213841, 7.32401731299835e-49)

>>>higher noise (0.057964292079338155, 0.3170099388532475)

from sklearn.feature_selection import rfe

from sklearn.ensemble import randomforestclassifier

from sklearn.datasets import load_iris

rf = randomforestclassifier()

iris=load_iris()

x,y=iris.data,iris.target

rfe = rfe(estimator=rf, n_features_to_select=3)

x_rfe = rfe.fit_transform(x,y)

x_rfe.shape

>>>(150, 3)

from sklearn.feature_selection import selectfrommodel

from sklearn.svm import linearsvc

from sklearn.datasets import load_iris

iris=load_iris()

x,y=iris.data,iris.target

lsvc = linearsvc(c=0.01, penalty="l1", dual=false).fit(x,y)

model = selectfrommodel(lsvc, prefit=true)

x_embed = model.transform(x)

x_embed.shape

(1)變數重要性

(2)共線性

方差膨脹係數 vif:在多元回歸中,我們可以通過計算方差膨脹係數vif來檢驗回歸模型是否存在嚴重的多重共線性問題

v if

=11−

r2

vif = \frac

vif=1−

r21​

其中,r

ir_i

ri​為自變數 對其餘自變數作回歸分析的負相關係數。方差膨脹係數是容忍度1−r

21-r^2

1−r2

的倒數。

方差膨脹係數vif越大,說明自變數之間存在共線性的可能性越大。一般來講,如果方差膨脹因子超過10,則回歸模型存在嚴重的多重共線性。又根據hair(1995)的共線性診斷標準,當自變數的容忍度大於0.1,方差膨脹係數小於10的範圍是可以接受的,表明白變數之間沒有共線性問題存在。

特徵工程 之 特徵篩選

從現有的m個特徵中選出n個特徵 n m 降低特徵維度減少計算量的同時,使模型效果達到最優。在實際業務中,用於模型中的特徵維度往往很高,幾萬維。如一些ctr預估問題中,特徵維度高達上億維,維度過高會增大模型計算複雜度。但實際情況是,並不是每個特徵對模型的 都是有效果的,所以需要去除一些不必要的特徵,從...

機器學習之特徵篩選

機器學習模型的訓練除了考慮模型的準確性之外,還要考慮計算效能。冗餘的特徵雖然不會影響到模型的效能,但卻會使得計算機做出無用功。特徵篩選與pca這類通過選擇主成分對特徵進行重建的方法有所區別 pca壓縮之後的特徵往往無法解釋 但是特徵篩選不存在對特徵值的修改,而更加側重於尋找那些對模型的效能提公升較大...

機器學習 特徵工程

老師有多年的網際網路從業經驗,所以講解的過程中結合了很多任務業界的應用,更加的深入淺出。資料採集 資料採集前需要明確採集哪些資料,一般的思路為 哪些資料對最後的結果 有幫助?資料我們能夠採集到嗎?線上實時計算的時候獲取是否快捷?舉例1 我現在要 使用者對商品的下單情況,或者我要給使用者做商品推薦,那...