Pythonで実装された特徴抽出操作の例

この記事では、[Python](https://www.zalou.cn/tag/python)によって実装される特徴抽出操作について説明します。次のように、参照用にあなたと共有してください:

# - *- coding: utf-8-*-"""
Created on Mon Aug 2110:57:292017
@ author:フローティングハート
"""
# フィルタリングされた機能の選択
# 差異に基づいて選択します。差異が小さいほど、属性を認識する能力が低下し、排除できます。
from sklearn.feature_selection import VarianceThreshold
x=[[100,1,2,3],[100,4,5,6],[100,7,8,9],[101,11,12,13]]
selector=VarianceThreshold(1) #分散しきい値、
selector.fit(x)
selector.variances_ #属性の分散を表示する
selector.transform(x)#機能の選択
selector.get_support(True) #結果を選択した後、機能の前のインデックス
selector.inverse_transform(selector.transform(x)) #機能選択の結果を元のデータに復元します
# 削除されたデータ、0として表示
# 単変量機能の選択
from sklearn.feature_selection import SelectKBest,f_classif
x=[[1,2,3,4,5],[5,4,3,2,1],[3,3,3,3,3],[1,1,1,1,1]]
y=[0,1,0,1]
selector=SelectKBest(score_func=f_classif,k=3)#3つの機能を選択すると、インジケーターは分散分析F値を使用します
selector.fit(x,y)
selector.scores_ #各機能のスコア
selector.pvalues_
selector.get_support(True) #trueの場合、選択した機能インデックスを返し、Falseを選択した場合は、
# 返されるのはブール値の配列であり、配列は選択された機能のみです
selector.transform(x)
# ラッピング時の機能選択
from sklearn.feature_selection import RFE
from sklearn.svm import LinearSVC #評価アルゴリズムとしてsvmを選択します
from sklearn.datasets import load_iris #データセットをロードする
iris=load_iris()
x=iris.data
y=iris.target
estimator=LinearSVC()
selector=RFE(estimator=estimator,n_features_to_select=2) #2つの機能を選択してください
selector.fit(x,y)
selector.n_features_  #選択した機能の数を指定します
selector.support_   #選択した機能のマスクを提供します
selector.ranking_   #機能のランク付け、選択した機能は1にランク付けされます
# 注:特徴の抽出は、必ずしも予測パフォーマンスの向上に関連しているとは限りません。
from sklearn.feature_selection import RFE
from sklearn.svm import LinearSVC
from sklearn import cross_validation
from sklearn.datasets import load_iris
# データのダウンロード
iris=load_iris()
X=iris.data
y=iris.target
# 特徴抽出
estimator=LinearSVC()
selector=RFE(estimator=estimator,n_features_to_select=2)
X_t=selector.fit_transform(X,y)
# テストセットと検証セットを分割
x_train,x_test,y_train,y_test=cross_validation.train_test_split(X,y,
test_size=0.25,random_state=0,stratify=y)
x_train_t,x_test_t,y_train_t,y_test_t=cross_validation.train_test_split(X_t,y,
test_size=0.25,random_state=0,stratify=y)
clf=LinearSVC()
clf_t=LinearSVC()
clf.fit(x_train,y_train)
clf_t.fit(x_train_t,y_train_t)print('origin dataset test score:',clf.score(x_test,y_test))
# origin dataset test score:0.973684210526print('selected Dataset:test score:',clf_t.score(x_test_t,y_test_t))
# selected Dataset:test score:0.947368421053import numpy as np
from sklearn.feature_selection import RFECV
from sklearn.svm import LinearSVC
from sklearn.datasets import load_iris
iris=load_iris()
x=iris.data
y=iris.target
estimator=LinearSVC()
selector=RFECV(estimator=estimator,cv=3)
selector.fit(x,y)
selector.n_features_
selector.support_
selector.ranking_
selector.grid_scores_
# 埋め込み機能の選択
import numpy as np
from sklearn.feature_selection import SelectFromModel
from sklearn.svm import LinearSVC
from sklearn.datasets import load_digits
digits=load_digits()
x=digits.data
y=digits.target
estimator=LinearSVC(penalty='l1',dual=False)
selector=SelectFromModel(estimator=estimator,threshold='mean')
selector.fit(x,y)
selector.transform(x)
selector.threshold_
selector.get_support(indices=True)
# scikitlearnは、パイプラインを形成する複数の学習者について話すためのパイプラインを提供します。通常はパイプラインの形式です。データの標準化、
#- - 》特徴抽出学習者—————— "最後の学習者の後を除いて、予測を実行する学習者、
# これまでのすべての学習者は、データ変換(正規化、正規化、正規化など)に使用される変換メソッドを提供する必要があります。
# そして特徴抽出
# 学習者パイプライン(パイプライン)
from sklearn.svm import LinearSVC
from sklearn.datasets import load_digits
from sklearn import cross_validation
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
def test_Pipeline(data):
x_train,x_test,y_train,y_test=data
steps=[('linear_svm',LinearSVC(C=1,penalty='l1',dual=False)),('logisticregression',LogisticRegression(C=1))]
pipeline=Pipeline(steps)
pipeline.fit(x_train,y_train)print('named steps',pipeline.named_steps)print('pipeline score',pipeline.score(x_test,y_test))if __name__=='__main__':
data=load_digits()
x=data.data
y=data.target
test_Pipeline(cross_validation.train_test_split(x,y,test_size=0.25,
random_state=0,stratify=y))

[Python](https://www.zalou.cn/tag/python)関連のコンテンツに興味のある読者は、このサイトのトピックを確認できます: "[Python](https://www.zalou.cn/tag/python)データ構造と[アルゴリズム](https://www.zalou.cn/tag/suanfa)[チュートリアル](https://www.zalou.cn/tag/jiaocheng)"、 "[Python]( https://www.zalou.cn/tag/python)コーディング操作スキルの概要」、「[Python](https://www.zalou.cn/tag/python)[関数](https://www.zalou.cn/tag/hanshu)使用スキルの概要」、「[Python](https://www.zalou.cn/tag/python)[文字列](https://www.zalou.cn/tag/zifuchuan)操作スキルの概要」および「[Python]( https://www.zalou.cn/tag/python)入門および高度なクラシック[チュートリアル](https://www.zalou.cn/tag/jiaocheng)」

この記事が[Python](https://www.zalou.cn/tag/python)[プログラム](https://www.zalou.cn/tag/chengxu)の設計に役立つことを願っています。

あなたが興味を持っているかもしれない記事:####

Recommended Posts

Pythonで実装された特徴抽出操作の例
pythonで写真を自動的にダウンロードする方法の例
Pythonのタプルの添え字
Pythonの負の弾性率の操作例
Pythonの9つの機能エンジニアリング手法
Pythonのハードコア操作を1分で学ぶ
pythonでのwheelの使用法
Pythonの対数法の要約
Python開発でのパンダの使用
word2vec操作のPython予備実装
詳細な並べ替えアルゴリズム(Pythonで実装)
情報エントロピーの例のPython計算
Pythonリスト理解操作例の概要
Python開発でのnumpyの使用
Pythonでの辞書の詳細な使用法
pythonでのosパッケージの使用
python操作redisのいくつかの例
python accesshdfsの操作
pythonでのタプルの使用法
pythonmysqlのパラメータ化の説明
pythonでのrbの意味を理解する
pythonでのJWTユーザー認証の実装
python標準ライブラリのglobの分析
pythonにdjangoモジュールをインストールする方法
派生物を計算してプロットするpythonの例
pythonでのシェル実行の知識ポイント
pythonでのadbの機能は何ですか
PythonはDoudizhuでカードのシャッフルを実装します
pythonでのリストの意味と使用法
Python操作の一般的なメソッドの分析Jiraライブラリ
ubuntuでpythonをアンインストールした結果、非常に
手描き効果の例の共有のPython実装
pythonの関数
Python3.9の7つの機能
Pythonファイル操作
Pythonオブジェクト指向の例
python操作kafka
UbuntuでのPythonでのGDALのインストールと使用
Pythonでのパッケージの導入を理解する方法
pythonで番号のリストを理解する方法