參考
當(dāng)數(shù)據(jù)預(yù)處理完成后,我們需要選擇有意義的特征輸入機(jī)器學(xué)習(xí)的算法和模型進(jìn)行訓(xùn)練。通常來說,從兩個方面來考慮特征:
- 特征是否發(fā)散:如果特征不發(fā)散,方差接近于0,也就說每個樣本上特征值都差不多,這個特征對于樣本區(qū)分基本無意義。
- 特征與目標(biāo)的相關(guān)性:
Filter
方差選擇法
使用方差選擇法,要先計算各個特征的方差,然后根據(jù)閾值,選擇方差大于閾值的特征(選擇波動大的特征)。使用feature_selection庫的VarianceThreshold類來選擇特征的代碼:
from sklearn.feature_selection import VarianceThreshold
import numpy as np
#方差選擇法,返回值為特征選擇后的數(shù)據(jù)
print(iris.data[:,0].var())
print(iris.data[:,1].var())
print(iris.data[:,2].var())
print(iris.data[:,3].var())
VarianceThreshold(threshold=3).fit_transform(iris.data)
#只有第三列的方差大于3,因此選擇出第三列
這個要和定量特征二值化區(qū)分開,定量特征二值化的核心在于設(shè)定一個閾值,樣本自身的值大于閾值的賦值為1,小于等于閾值的閾值為0.
from sklearn.preprocessing import Binarizer
#二值化,閾值設(shè)置為3,返回值為二值化后的數(shù)據(jù)
Binarizer(threshold=3).fit_transform(iris.data)
相關(guān)系數(shù)法
使用相關(guān)系數(shù)法,先要計算各個特征對目標(biāo)值得相關(guān)系數(shù)以及相關(guān)系數(shù)的P值。用feature_selection庫的SlectKBest類結(jié)合相關(guān)系數(shù)來選擇特征:
[待續(xù)]