どうもニコイチです。前回、モデルチューニングの概要について説明しました。以下の記事では、初心者向けにグリッドサーチを実行し、CSVデータを用いたデモンストレーションを行います。初心者がつまづきやすいポイントを詳しく説明しながら進めます。
目次
Pythonでデータ分析を始めよう!~グリッドサーチの活用法~
はじめに
データ分析を学び始めたばかりの方でも、効率よくモデルの最適なパラメータを見つける方法「グリッドサーチ」を学ぶことで、一歩前進できます。この記事では、定期貯金契約に関するデモデータを使いながら、初心者でも理解しやすい手順で解説します。
グリッドサーチとは?
グリッドサーチは、指定した範囲のパラメータをすべて試し、その中で一番良い結果を出す組み合わせを探す方法です。イメージとしては、「カレーのレシピをいろいろ試して、一番おいしい組み合わせを見つける」ようなものです。
使用するライブラリのインストールとインポート
まず、以下のライブラリが必要です。環境にインストールされていない場合は、以下のコマンドを実行してください。
pip install pandas scikit-learn
次に、必要なライブラリをインポートします。
import pandas as pd
from sklearn.model_selection import GridSearchCV
from sklearn.tree import DecisionTreeClassifier as DT
ステップ1:データの読み込みと前処理
データを読み込み、前処理を行います。ここでは「定期貯金契約に関するデモデータ」を使用します。
# データの読み込み
data = pd.read_csv('/mnt/data/data.csv')
# データの確認
print(data.head())
# 説明変数と目的変数に分割
X = data.drop('target', axis=1) # target列を目的変数と仮定
y = data['target']
ポイント:
- 初心者がつまずきやすい点として、「説明変数」と「目的変数」の区別があります。
- 説明変数: 分析に使うデータ(例: 年齢、収入など)
- 目的変数: 分析の結果予測したいもの(例: 契約するかどうか)
ステップ2:グリッドサーチの準備
次に、グリッドサーチの設定を行います。ここでは決定木を使用します。
# 決定木モデルの準備
model = DT(random_state=0)
# 探索するパラメータの設定
parameters = {'max_depth': [2, 3, 4, 5, 6, 7, 8, 9, 10]}
# グリッドサーチの設定
gcv = GridSearchCV(model, parameters, cv=5, scoring='roc_auc', return_train_score=True)
クロスバリデーション(cv): データを複数のグループに分け、モデルの汎化性能を評価する仕組み。
グリッドサーチを実行し、最適なパラメータを探索します
# グリッドサーチの実行
gcv.fit(X, y)
# 最適なパラメータを確認
print("Best Parameters:", gcv.best_params_)
ステップ4:結果の確認
結果を確認し、最適なパラメータでのスコアを見ます。
# 訓練データとテストデータのスコア
train_score = gcv.cv_results_['mean_train_score']
test_score = gcv.cv_results_['mean_test_score']
print("Train Scores:", train_score)
print("Test Scores:", test_score)
注意点:
- 訓練データとテストデータのスコアの差が大きい場合、モデルが「過学習」している可能性があります。
おわりに
ここまでで、グリッドサーチを使ってモデルの最適なパラメータを見つける方法を学びました。この手法を活用することで、効率よくモデルを改善できます。次回は、結果の可視化や別のモデルへの応用について解説します。
コメント