K 分割交差検証とグリッドサーチ

K 分割交差検証とグリッドサーチ

みなさんこんにちは、私はZhibinです〜

今日は、GridSearch グリッド検索と K 分割相互認証を使用して、決定木モデルのパラメータを調整する方法を紹介します。

前回の記事では、決定木モデルの構築と実践を紹介しました。その時は、max_depth という 1 つのパラメータのみが使用されていました。しかし、実際には、モデルには、criterion (特徴選択基準)、class_weight (クラスの重み) などの他の影響パラメータがあります。より正確な結果を得たい場合は、モデルパラメータを調整し、モデルを構築するための最適なパラメータを見つける必要があります。

1. K分割交差検証

K 分割交差検証では、実際にデータ セットを K 個の部分に分割し、そのたびに K-1 個の部分をトレーニング セットとして選択し、残りの部分をテスト セットとして使用し、K 個のモデルの平均テスト結果を最終的なモデル効果として取得します。次の図に示すように:

K 値の選択はデータ セットのサイズに関係します。データ セットが小さい場合は K 値を増やし、データ セットが大きい場合は K 値を減らしてください。実装コードは次のとおりです。

 sklearn.model_selection から cross_val_score をインポートします
acc = cross_val_score(モデル、X、Y、cv=5)

2. グリッドサーチ

GridSearch は、すべての候補パラメータを走査し、各モデルの有効性と精度を評価し、最終結果として最適なパラメータを選択する、徹底的な検索パラメータ調整方法です。

パラメータ チューニングは、単一パラメータ チューニングと複数パラメータ チューニングに分かれています。Zhibin はそれぞれ例を挙げて紹介します。

(1)単一パラメータチューニング

単一パラメータのチューニングを説明するために、単一パラメータ max_depth を例に挙げます。コードは次のとおりです。

 sklearn.model_selection から GridSearchCV をインポートします
パラメータ = {'max_depth':[1,3,5,7,9]}
grid_search = GridSearchCV(モデル、パラメータ、スコアリング='roc_auc'、cv=5)grid_search.fit(X_train、Y_train)

出力パラメータの最適な結果:

グリッド検索.ベストパラメータ

max_depth パラメータの最適な結果は次のとおりです。

上記で得られた最適なパラメータ値でモデルを再構築し、AUC値が改善されたかどうかを確認します。コードは次のとおりです。

モデル = DecisionTreeClassifier(最大深度=7)
モデルをフィット(X_train,Y_train)
y_pred_proba = model.predict_proba(X_test)
sklearn.metricsからroc_auc_scoreをインポートします
スコア = roc_auc_score(Y_test.values,y_pred_proba[:,1])

得られた AUC 値は次のとおりです。

これは以前の値 0.958 よりも高く、モデルの精度が向上したことを示しています。

(2)マルチパラメータチューニング

決定木モデルには次のパラメータがあります。

これらのパラメータは、構築した決定木モデルの精度に影響します。ここでは、max_depth (最大深度)、criterion (特徴選択基準)、min_samples_split (子ノードを下方に分割するために必要なサンプルの最小数) を例として、マルチパラメータ チューニングを実行します。コードは次のとおりです。

 sklearn.model_selection から GridSearchCV をインポートします
パラメータ = {'max_depth':[5,7,9,11,13],'criterion':['gini','entropy'],'min_samples_split':[5,7,9,11,13,15]}
モデル = DecisionTreeClassifier()
grid_search = GridSearchCV(モデル、パラメータ、スコアリング='roc_auc'、cv=5)
グリッド検索.fit(X_train,Y_train)

出力パラメータの最適値:

グリッド検索.ベストパラメータ

上記で得られた最適なパラメータ値でモデルを再構築し、AUC値が改善されたかどうかを確認します。コードは次のとおりです。

モデル = DecisionTreeClassifier(基準 = 'エントロピー'、最大深度 = 13、最小サンプル分割 = 15)
モデルをフィット(X_train,Y_train)
y_pred_proba = model.predict_proba(X_test)
sklearn.metricsからroc_auc_scoreをインポートします
スコア = roc_auc_score(Y_test.values,y_pred_proba[:,1])

得られた AUC 値は次のとおりです。

これは以前の値 0.985 よりも高く、モデルがさらに最適化されたことを示しています。

<<:  NLP技術の準備——自然言語処理技術はあなたの妻ではありません

>>:  世界の自動運転「M&A」を4大勢力が攻勢

ブログ    

推薦する

「AI+医療」の強力な発展の勢いが医療革命を引き起こしている

「AI+ヘルスケア」は現在最も注目されている人工知能の応用シナリオの1つであり、人工知能技術は医療・...

人工知能の責任ある使用のための10の原則

AI の責任ある使用に関する包括的な原則は、信頼、公平性、説明責任を促進することです。人工知能 (A...

...

顔認識禁止が迫る:テクノロジー企業はどこへ向かうべきか?

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

インスピレーションプログラミング: 最大公約数アルゴリズムの分析

2 つの正の整数が与えられたら、その最大公約数を求めます。これは、コードを書く学生なら誰でも遭遇した...

自分だけのデジタルヒューマンを開発しよう、FACEGOODが音声駆動表現技術をオープンソース化

現在、メタバースのトレンドの下、AIデジタルヒューマンもエンターテインメント、サービス、教育、マーケ...

...

最大65万ドル! 2021年の米国大手企業のプログラマーの収入をみる

アメリカのテクノロジー大手は、この流行に対して全力で対応し、その力は衰えるどこ​​ろか増した。これら...

画像内のテキストを心配する必要はありません。TextDiffuserは高品質のテキストレンダリングを提供します。

近年、テキストから画像への変換の分野は、特に AIGC (人工知能生成コンテンツ) の時代において大...

ChatGPT Enterprise Editionがリリースされ、OpenAIはこれをこれまでで最も強力なバージョンと呼んでいる

執筆者:Qianshan過去 1 か月間、OpenAI に関する物議を醸す報道が多くありました。一方...

物流業界におけるインテリジェント化のトレンドは、倉庫ロボットの将来性を浮き彫りにしています。

近年、電子商取引業界の急速な発展により、物流業界、特に物流倉庫に対する要求は徐々に高まっています。人...

AIの千里の道のりは一歩から始まる

人類の文明の歴史は、私たち自身を超えるための道具を絶えず生み出してきた歴史です。このトラックでは、ほ...

韓国のガールズグループBLACKPINKが2次元に入ったとき、清華フォーク研究所のAIアーティファクトはこのようにプレイできることが判明

携帯電話に写真編集ソフトウェアがインストールされている場合は、その中の「AI ペイント」機能を使用し...

バーチャルアイドル+人工知能+ブロックチェーン、スターを追いかける新しい方法が誕生!

最近、暗号通貨の世界では多くのニュースがありました。BTC は再びフォークを経験し、ビットコインは急...

2020 年に役に立つ機械学習ツール

TL;DR — 優れた機械学習アプリケーションを構築することは、ミシュランの星を獲得した料理を作るよ...