http://blog.csdn.net/ae5555/article/details/49534263python
設置一個方差閾值,沒有達到這個方差閾值的特徵都會被丟棄。
VarianceThreshold,算法輸入只要求特徵(X),不須要輸入結果(Y)。算法
from sklearn.feature_selection import VarianceThreshold
X=[[feature1,feature2,…],…]
sel=VarianceThreshold(threshold=xx)
print(sel.fit_transform(X))數組
單變量特徵提取的原理是分別計算每一個特徵的某個統計指標,根據該指標來選取特徵。
SelectKBest、SelectPercentile,前者選擇排名前k個的特徵,後者選擇排名在前k%的特徵。選擇的統計指標須要指定,對於regression問題,使用f_regression指標;對於classification問題,可使用chi2或者f_classif指標。markdown
from sklearn.feature_selection import SelectKBest,chi2
X_new=SelectKBest(chi2,k=2).fit_transform(test_X,test_Y)dom
不單獨地檢驗某個特徵的價值,而是檢驗特徵集的價值。對於一個數量爲n的特徵集合,子集的個數爲2的n次方減一。經過指定一個學習算法,經過算法計算全部子集的error,選擇error最小的子集做爲選取的特徵。機器學習
from sklearn.svm import SVC
from sklearn.feature_selection import RFE
//X爲樣本集合,每一個樣本爲一個數組,數組元素爲各個特徵值,Y樣本的評分
svc=SVC(kernel=」linear」,C=1)
rfe=RFE(estimator=svc,n_features_to_select=5,step=1)
X_new=rfe.fit_transform(X,Y)
在RFE訓練時,增長交叉驗證。ide
在線性迴歸模型中,每個特徵表明一個w,若獲得的w係數等於或接近0,則說明這些特徵不重要。
LinearSVC
參數C控制特徵係數稀疏度,C的值越小,選擇的特徵數越少。工具
from sklearn.svm import LinearSVC
X_new=LinearSVC(C=0.01,penalty=」l1」,dual=False).fit_transform(x,y)post
經過決策樹能夠計算特徵的重要性,拋棄不過重要的特性。性能
from sklearn.ensemble import ExtraTreesClassifier
clf=ExtraTreesClassifier()
X_new=clf.fit(x,y).transform(x)
//各個特徵重要性
print(clf.feature_importances)
sklearn.datasets.make_classification用來隨機產生一個多分類問題。
n_features=n_informative+n_redundant+n_repeated。
n_clusters_per_class 每一個分類的集羣數
import sklearn.datasets
(x,y)=make_classification(n_samples=,
n_features=,
n_informative=,
n_redundant=,
n_repeated=,
n_classes=,
random_state=,
shuffle=False
)
https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149( 歡迎關注博主主頁,學習python視頻資源,還有大量免費python經典文章)