サイトアイコン EASY2DIGITAL

Scikit Learn、ランダムフォレストを使用して機能の重要性を生成します

ランダムフォレストアルゴリズムが多くの業界に適用されており、より良いビジネス上の決定を下すことができます。一部のユースケースには、クロスセルの目的での高い信用リスク分析と製品の推奨事項が含まれます。

この作品では、古典的な赤ワイン品質の検証装置データセットを使用して、機能の重要性を生成するいくつかの方法を簡単に説明します。この章の終わりまでに、プロジェクトに適用されたランダムフォレストを使用して、さまざまな方法で結果を比較するための基本的な概念を持つことができます。

目次:機械学習におけるscikit学習とランダムフォレストを使用して、オブジェクト機能の重要性を生成

赤ワインデータセットとデータトレーニングの分割

機械学習モデルの場合、適切なデータセットを取得するか、データが重要です。 Kaggleは、適切なデータセットを検索するための最も人気のあるプラットフォームの1つです。これが赤ワイン品質プロジェクトのリンクです。

https://www.kaggle.com/datasets/uciml/red-wine-cortez-et-al-2009

最初のことは、pandasとsklearn train_test_splitを使用してデータを処理することが最初のステップです。

url = "" winequality-red.csv ""

wine_data = pd ""font-weight:400;"">( url 、 sep = "" ; "" )

x = wine_data ""font-weight:400;"">( 'quality' 、</ span> axis = 1 )

y = wine_data [ 'quality' ]

x_train 、 x_test 、 y_train 、 y_test = train_test_split ( x 、 y 、 test_size = 0.5 、 random_state = 50 )</ span>

scikit-learnでの機能の重要性

scikit-learnは、ランダムフォレストモデルに組み込みの機能の重要性方法を提供します。 ドキュメントによると、この方法はノード不純物の減少に基づいています。

< /p>

ランダムフォレストでは、質問はモデルの機能に似ています。いくつかの質問は、他のものよりも多くの可能性を排除するのに役立ちます。仮定は、より多くの可能性を迅速に排除するのに役立つ機能が、正解に近づくのに役立つため、より重要であるということです。 Scikit-Learnでこれらの機能の重要性を取得するのは非常に簡単です:

rf = randomForestRegressor ( n_estimators = 100 、 random_state = 50 )

rf 。 fit ( x_train 、 y_train )

inbuilt_importances = pd ""font-weight:400;"">( rf 。 feature_importances _ 、 index = x_train 。列)

inbuilt_importances 。 sort_values ( ascending = true 、 inplace = true )

inbuilt_importances 。 plot 。 barh ( color = 'black' )

ランダムな機能を備えた組み込みscikit-learnメソッド

この方法を進める最も簡単な方法は、データセットにランダムな機能を追加し、結果がランダムなしで1つ以上のものよりも逸脱する可能性があるかどうかを確認することです。 /span>

実際の機能がランダム機能よりも重要である場合、その重要性が偶然によるものであることを示す可能性があります。

def randommethod ():

x_train_random = x_train 。コピー() </コード>

x_train_random [ "" random "" ] = np span> >( 42 )。 randn ( x_train 。shape [ 0 ])

rf_random = randomforestregressor ( n_estimators = 100 < span style = ""font-weight:400;"">、 random_state = < /span> 42 )

rf_random font-weight:400; ""> x_train_random 、 y_train < span style = ""font-weight:400;"">)

importances_random = pd 。 series ( rf_random < span style = ""font-weight:400;""> /span> index = x_train_random 。列)

importances_random font-weight:400; ""> ascending = true < span style = ""font-weight:400;"">、 inplace = << /span> true )

importances_random 。 plot 。 barh ( color < span style = ""font-weight:400;""> = 'blue' )

plt font-weight:400; "">"" compettion "" )

plt font-weight:400; "">"" feature "" )

plt font-weight:400; "">""機能の重要性-scikitはランダムで組み込みを学習します

plt 。

return

順列機能の重要性

順列機能の重要性は、機能の値がランダムにシャッフルされたときにモデルのパフォーマンスの変化を測定することにより、ランダムフォレストモデルの各機能の重要性を推定するもう1つの手法です。

この方法の利点の1つは、ランダムフォレストだけでなく、モデル間の結果をより匹敵するモデルで使用できることです。 >

snapでランダムな森林機能の重要性

shapは、ゲーム理論に基づいて機械学習モデルの出力を解釈する方法です。

順列の重要性と同様に、任意のモデルに適用できる機能の重要性の統一された尺度を提供します。

それの主な欠点は、特に大規模なデータセットまたは複雑なモデルの場合、計算的に高価になる可能性があることです。

ランダムフォレストパス機能の重要性

< /p>

各機能がランダムフォレストの予測にどのように貢献するかを理解する別の方法は、各インスタンスにかかる決定ツリーパスを見ることです。

葉のノードでの予測値と、それに先行するノードの予測値の差を計算して、各機能の推定寄与を取得します。 >

フルPython scri of feation of feation compationer

第76章に興味がある場合-Scikit Learnとランダムフォレストを使用してオブジェクト機能の重要性を生成します。 “”>メッセージを追加して、ニュースレターを購読してください ‘第75章 +概念API’ 。スクリプトをすぐにメールボックスに送信します。

第76章を読むことを楽しんでください – Scikit Learnとランダムフォレストを使用して、オブジェクト機能の重要性を生成します。もしそうなら、以下にリストされていることの1つを行うことで私たちをサポートしてください。”

よくある質問:

Q1: Scikit Learnとは何ですか?

A: Scikit Learnは、Pythonで書かれたオープンソースの機械学習ライブラリです。

Q2: Scikit Learnの主な機能は何ですか?

A: Scikit Learnは、教師あり学習、教師なし学習、次元削減、モデル選択、前処理などの機能を提供します。

Q3: Scikit Learnの最新バージョンは何ですか?

A: Scikit Learnの最新バージョンは0.24.2です。

Q4: Scikit Learnはどのようにインストールできますか?

A: Scikit Learnをインストールするには、pip install scikit-learnコマンドを使用します。

Q5: Scikit Learnのライセンスは何ですか?

A: Scikit Learnは、BSDライセンスの下で提供されています。

Q6: Scikit Learnで使用できるアルゴリズムの種類は何ですか?

A: Scikit Learnでは、回帰、クラス分類、クラスタリング、次元削減、モデル選択など、さまざまなアルゴリズムが利用できます。

Q7: Scikit Learnはどのようなデータ形式をサポートしていますか?

A: Scikit Learnは、NumPy配列やPandasのデータフレームなど、さまざまなデータ形式をサポートしています。

Q8: Scikit Learnのドキュメントはどこで入手できますか?

A: Scikit Learnの公式ドキュメントは、scikit-learn.orgで入手できます。

Q9: Scikit Learnはどのような目的で使用されますか?

A: Scikit Learnは、機械学習のタスクを簡単に実装するために使用されます。

Q10: Scikit Learnのコミュニティサポートはありますか?

A: Scikit Learnには、公式のメーリングリストやGitHubのイシュートラッカーを通じてコミュニティサポートが提供されています。

モバイルバージョンを終了