目次
データの分割で機能が使用される回数を計算します。この機能はすべてのツリーで使用されます。分割数が多いほど重要性が高くなります
pair 主成分分析を実行します。特徴を確認し、各主成分の説明された分散比を表示します。最初のいくつかのコンポーネントの負荷が高い特性はより重要です。
f_classif() を使用して分散分析を取得します。各特徴の f 値。 f 値が大きいほど、フィーチャとターゲットの間の相関が強くなります。
chi2() 関数を使用して値を取得します各特徴のカイ二乗統計。スコアが高い特徴はターゲット変数から独立している可能性が高くなります
为什么不同的方法会检测到不同的特征?
1、他们用不同的方式衡量重要性:
2、不同模型有不同模型的方法:
3、交互作用:
3、不稳定:
4、Hyperparameters:
选择特征重要性分析方法的一些最佳实践
ホームページ テクノロジー周辺機器 AI 一般的に使用される 9 つの Python 特徴重要度分析方法

一般的に使用される 9 つの Python 特徴重要度分析方法

Sep 22, 2023 pm 12:09 PM
python 機械学習

特徴重要度分析は、予測を行う際の各特徴 (変数または入力) の有用性または値を理解するために使用されます。目標は、モデルの出力に最も大きな影響を与える最も重要な特徴を特定することであり、これは機械学習でよく使用される方法です。

一般的に使用される 9 つの Python 特徴重要度分析方法

#特徴重要度分析が重要なのはなぜですか?

数十または偶数の数値を含む特徴がある場合それぞれが機械学習モデルのパフォーマンスに寄与する可能性がある数百の特徴のデータセット。ただし、すべての機能が同じように作成されているわけではありません。一部は冗長または無関係である可能性があるため、モデリングの複雑さが増し、過剰適合につながる可能性があります。

機能重要度分析では、最も有益な機能を特定して焦点を当てることができ、その結果、いくつかの利点が得られます。 1. 洞察の提供: 特徴の重要性を分析することで、データ内のどの特徴が結果に最も大きな影響を与えるかについて洞察を得ることができ、データの性質をより深く理解するのに役立ちます。 2. モデルの最適化: 主要な機能を特定することで、モデルのパフォーマンスを最適化し、不必要なコンピューティングとストレージのオーバーヘッドを削減し、モデルのトレーニングと予測の効率を向上させることができます。 3. 特徴の選択: 特徴の重要度分析は、最も予測力の高い特徴を選択するのに役立ち、それによってモデルの精度と汎化能力が向上します。 4. モデルの説明: 特徴重要度分析は、モデルの予測結果を説明し、モデルの背後にあるパターンと因果関係を明らかにし、モデルの解釈可能性を高めるのにも役立ちます

  • モデルのパフォーマンスの向上
  • 過学習の削減
  • トレーニングと推論の高速化
  • 解釈性の強化

# Python での特徴重要度分析のいくつかの方法を詳しく見てみましょう。

特徴重要度分析メソッド

1. Permutation ImportancePermutationImportance

このメソッドの値各特徴量の特徴量をランダムに配置し、モデルの性能劣化の度合いを監視します。減少が大きい場合、その特徴がより重要であることを意味します

from sklearn.datasets import load_breast_cancer from sklearn.ensemble import RandomForestClassifier from sklearn.inspection import permutation_importance  from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt  cancer = load_breast_cancer()  X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, random_state=1)  rf = RandomForestClassifier(n_estimators=100, random_state=1) rf.fit(X_train, y_train)   baseline = rf.score(X_test, y_test) result = permutation_importance(rf, X_test, y_test, n_repeats=10, random_state=1, scoring='accuracy')  importances = result.importances_mean  # Visualize permutation importances plt.bar(range(len(importances)), importances) plt.xlabel('Feature Index') plt.ylabel('Permutation Importance') plt.show()
ログイン後にコピー

一般的に使用される 9 つの Python 特徴重要度分析方法

2. 組み込みの特徴の重要度 (coef_ または feature_importances_)

線形回帰やランダム フォレストなどの一部のモデルは、特徴量重要度スコアを直接出力できます。これらは、最終予測に対する各特徴の寄与を示します。

from sklearn.datasets import load_breast_cancer from sklearn.ensemble import RandomForestClassifier  X, y = load_breast_cancer(return_X_y=True)  rf = RandomForestClassifier(n_estimators=100, random_state=1) rf.fit(X, y)  importances = rf.feature_importances_  # Plot importances plt.bar(range(X.shape[1]), importances) plt.xlabel('Feature Index')  plt.ylabel('Feature Importance') plt.show()
ログイン後にコピー

一般的に使用される 9 つの Python 特徴重要度分析方法

3. Leave-one-out

一度に 1 つのフィーチャを繰り返し削除して評価します正確さ。

from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt import numpy as np  # Load sample data X, y = load_breast_cancer(return_X_y=True)  # Split data into train and test sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)   # Train a random forest model rf = RandomForestClassifier(n_estimators=100, random_state=1) rf.fit(X_train, y_train)  # Get baseline accuracy on test data base_acc = accuracy_score(y_test, rf.predict(X_test))  # Initialize empty list to store importances importances = []  # Iterate over all columns and remove one at a time for i in range(X_train.shape[1]):X_temp = np.delete(X_train, i, axis=1)rf.fit(X_temp, y_train)acc = accuracy_score(y_test, rf.predict(np.delete(X_test, i, axis=1)))importances.append(base_acc - acc)  # Plot importance scores plt.bar(range(len(importances)), importances) plt.show()
ログイン後にコピー

一般的に使用される 9 つの Python 特徴重要度分析方法

4. 相関分析

書き換える必要がある内容は、計算機能と目標 変数間の相関、相関が高いほど、特徴の重要性が高くなります#

import pandas as pd from sklearn.datasets import load_breast_cancer  X, y = load_breast_cancer(return_X_y=True) df = pd.DataFrame(X, columns=range(30)) df['y'] = y  correlations = df.corrwith(df.y).abs() correlations.sort_values(ascending=False, inplace=True)  correlations.plot.bar()
ログイン後にコピー

一般的に使用される 9 つの Python 特徴重要度分析方法##5. 再帰的特徴の削除

フィーチャを再帰的に削除し、それがモデルのパフォーマンスにどのような影響を与えるかを確認します。削除したときにドロップが大きくなる機能の方が重要です。

from sklearn.ensemble import RandomForestClassifier from sklearn.feature_selection import RFE import pandas as pd from sklearn.datasets import load_breast_cancer import matplotlib.pyplot as plt  X, y = load_breast_cancer(return_X_y=True) df = pd.DataFrame(X, columns=range(30)) df['y'] = y  rf = RandomForestClassifier()  rfe = RFE(rf, n_features_to_select=10)  rfe.fit(X, y)  print(rfe.ranking_)
ログイン後にコピー
出力は [6 4 11 12 7 11 18 21 8 16 10 3 15 14 19 17 20 13 11 11 12 9 11 5 11]

#6. XGBoost 機能の重要性

データの分割で機能が使用される回数を計算します。この機能はすべてのツリーで使用されます。分割数が多いほど重要性が高くなります

import xgboost as xgb import pandas as pd from sklearn.datasets import load_breast_cancer import matplotlib.pyplot as plt  X, y = load_breast_cancer(return_X_y=True) df = pd.DataFrame(X, columns=range(30)) df['y'] = y  model = xgb.XGBClassifier() model.fit(X, y)  importances = model.feature_importances_ importances = pd.Series(importances, index=range(X.shape[1]))  importances.plot.bar()
ログイン後にコピー

7. 主成分分析 PCA一般的に使用される 9 つの Python 特徴重要度分析方法

pair 主成分分析を実行します。特徴を確認し、各主成分の説明された分散比を表示します。最初のいくつかのコンポーネントの負荷が高い特性はより重要です。

from sklearn.decomposition import PCA import pandas as pd from sklearn.datasets import load_breast_cancer import matplotlib.pyplot as plt  X, y = load_breast_cancer(return_X_y=True) df = pd.DataFrame(X, columns=range(30)) df['y'] = y  pca = PCA() pca.fit(X)  plt.bar(range(pca.n_components_), pca.explained_variance_ratio_)  plt.xlabel('PCA components') plt.ylabel('Explained Variance')
ログイン後にコピー

8. 分散分析 ANOVA一般的に使用される 9 つの Python 特徴重要度分析方法

f_classif() を使用して分散分析を取得します。各特徴の f 値。 f 値が大きいほど、フィーチャとターゲットの間の相関が強くなります。

from sklearn.feature_selection import f_classif import pandas as pd from sklearn.datasets import load_breast_cancer import matplotlib.pyplot as plt  X, y = load_breast_cancer(return_X_y=True) df = pd.DataFrame(X, columns=range(30)) df['y'] = y  fval = f_classif(X, y) fval = pd.Series(fval[0], index=range(X.shape[1])) fval.plot.bar()
ログイン後にコピー

9. カイ二乗検定一般的に使用される 9 つの Python 特徴重要度分析方法

chi2() 関数を使用して値を取得します各特徴のカイ二乗統計。スコアが高い特徴はターゲット変数から独立している可能性が高くなります

from sklearn.feature_selection import chi2 import pandas as pd from sklearn.datasets import load_breast_cancer import matplotlib.pyplot as plt  X, y = load_breast_cancer(return_X_y=True) df = pd.DataFrame(X, columns=range(30)) df['y'] = y  chi_scores = chi2(X, y) chi_scores = pd.Series(chi_scores[0], index=range(X.shape[1])) chi_scores.plot.bar()
ログイン後にコピー

一般的に使用される 9 つの Python 特徴重要度分析方法

为什么不同的方法会检测到不同的特征?

由于不同的特征重要性方法,有时可以确定哪些特征是最重要的

1、他们用不同的方式衡量重要性:

有的使用不同特特征进行预测,监控精度下降

像XGBOOST或者回归模型使用内置重要性来进行特征的重要性排序

而PCA着眼于方差解释

2、不同模型有不同模型的方法:

线性模型偏向于处理线性关系,而树模型则更倾向于捕捉接近根节点的特征

3、交互作用:

有些方法可以获取特征之间的相互关系,而有些方法则不行,这会导致结果的不同

3、不稳定:

使用不同的数据子集,重要性值可能在同一方法的不同运行中有所不同,这是因为数据差异决定的

4、Hyperparameters:

通过调整超参数,例如主成分分析(PCA)组件或决策树的深度,也会对结果产生影响

所以不同的假设、偏差、数据处理和方法的可变性意味着它们并不总是在最重要的特征上保持一致。

选择特征重要性分析方法的一些最佳实践

  • 尝试多种方法以获得更健壮的视图
  • 聚合结果的集成方法
  • 更多地关注相对顺序,而不是绝对值
  • 差异并不一定意味着有问题,检查差异的原因会对数据和模型有更深入的了解

以上が一般的に使用される 9 つの Python 特徴重要度分析方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Visual StudioコードはPythonで使用できますか Visual StudioコードはPythonで使用できますか Apr 15, 2025 pm 08:18 PM

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

VSCODE拡張機能は悪意がありますか? VSCODE拡張機能は悪意がありますか? Apr 15, 2025 pm 07:57 PM

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

Windows 8でコードを実行できます Windows 8でコードを実行できます Apr 15, 2025 pm 07:24 PM

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

ターミナルVSCODEでプログラムを実行する方法 ターミナルVSCODEでプログラムを実行する方法 Apr 15, 2025 pm 06:42 PM

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

See all articles