特徵選擇 常見方法總結

2021-08-15 01:49:11 字數 1362 閱讀 6987

特徵選擇方法

目的:減少特徵數量、降維,使模型泛化能力更強,減少過擬合增強對特徵和特徵值之間的理解

方法:

一、方差選擇法。

(from sklearn.feature_selection import variancethreshold

)a. 特徵值需為離散型變數,若是連續型,需要連續變數離散化。

b. 最簡單。實用性差。可作為特徵選擇預處理。

問:為什麼方差可以用來選擇特徵?

理論上是認為在樣本集上如果當前特徵基本上都差異不大,因此可以認為這個特徵對我們區分樣本貢獻不大,因此可以在構造特徵過程中可以將其去掉。(聯絡pca降維)

二、單變數特徵選擇。

(1)pearson相關係數(from scipy.stats import pearsonr)

a. 最簡單的,衡量變數之間的線性相關性,結果取值[-1,1]

b. 只適用於線性關係。

(2)spearman相關係數

(from scipy.stats import spearmanr)

a. 描述相關性強弱以及方向,與分布無關。

b. 適用於線性,和簡單非線性關係。

c.  pearson使用資料再做,spearman使用資料的秩次再做。

(3)kendall相關係數

(from scipy.stats import kendalltau

)a. 是表示多列等級變數相關程度的一種方法。

b. 一般採用等級評定的方法,即讓k個評價者對n件事物進行等級評定,每個評價者都能對n件事物排出乙個等級順序。k個評價者便可得到k列從1至n的等級變數資料。這類k列等級變數資料綜合起來求相關,可用肯德爾係數。

(4)卡方檢驗(from sklearn.feature_selection import chi2)

(5)最大資訊係數(mic)(from minepy import mine )

a. mic具有普適性,不限定於特定的函式型別(如線性函式、指數函式或週期函式。

b.互資訊直接用於特徵選擇不太方便:1、它不屬於度量方式,也沒有辦法歸一化,在不同資料及上的結果無法做比較;2、對於連續變數的計算不是很方便,通常變數需要先離散化,而互資訊的結果對離散化的方式很敏感。

c. mic首先尋找一種最優的離散化方式,然後把互資訊取值轉換成一種度量方式,取值區間在[0,1]。

ps: selectkbest: 選擇排名前 k 名的所有特徵。 (

from sklearn.feature_selection import selectkbest)

LeetCode常見方法總結

數字陣列 字串1.字串反轉string str hello stringbuffer sbuffer newstringbuffer hello string reversestr sbuffer.reverse tostring olleh2.包含子串string str1 abcdefg str...

陣列常見方法總結

var arr 1 2,3 4 var arr1 newarray 1 2,3 4 1,2,3,4 var arr2 newarray 10 empty 10 var arr3 array 1 2,3 4 1,2,3,4 var arr5 array.of 1,2,3,4 1,2,3,4 var a...

常見特徵選擇方法

特徵選擇就是從原始特徵中選取一些最有效的特徵來降低維度,提高模型泛化能力減低過擬合的過程,主要目的是剔除掉無關特徵和冗餘特徵,選出最優特徵子集。計算各個特徵的方差,剔除小於設定的閾值的特徵,剔除特徵值 波動較小的特徵,例如乙個特徵的所有值都為1,那這個特徵對於 目標變數就沒什麼作用 方法很簡單,但實...