- AIでデータ分析-ハイパーパラメータチューニング:決定木で従業員の離職を予測する
- 用いるデータの紹介
- まずはPythonで実装する
- AIの活用:ChatGPTで実行する
- まとめ
AIでデータ分析-ハイパーパラメータチューニング:決定木で従業員の離職を予測する
このノートは、分析においてAIを使って何ができて何ができないかを検証するために、実際に試した結果をまとめたノートです。
今回は決定木で従業員の離職を予測することに加えて、ハイパーパラメータをチューニングしていきたいと思います。
その際、AIとどっちが高い精度を得られるのか、試してみたいと思います。AIを用いることでいかに効率化できるのか、体験していただければと思います。
所要時間は20分ほどとなっています。
それでは、さっそく始めていきましょう!
データの紹介
今回検証に用いるデータのサンプルデータは従業員データです。サンプルデータはこちらからダウンロードできます。
1行が従業員1人のデータになっています。列情報としては年齢、性別、婚姻ステータス、部署、職種、給料などがあります。
まずはPythonで実装する
アルゴリズムに決定木を用いてPipelineを構築→グリッドサーチCVを実行し、最適パラメータとスコアを確認→テストデータでaccuracyを計算→混同行列の作成をPythonで実装します。
結果を確認します。
最適パラメータはmax_depth:5, min_samples_leaf:2, min_samples_split:10
テストデータでのaccuracy(正解率)が約0.973、混同行列は図の通りになりました。
AIの活用:ChatGPTで実行する
次にAIを使って同じことをするため、chatGPTに従業員データをアップロードし、
「添付のデータを使って下記を実行して。 1、離職の列を目的変数、他の列を説明変数としてデータフレームを切り分ける 2、訓練データ7割、テストデータ3割に分割する 3、データの前処理としてデータタイプが数値型の列はそのままで、object型の列にはOneHotEncodingする 4、モデルは決定木を使い、GridsearchCVでハイパーパラメータチューニングを実行する 5、最適なパラメータとスコアを表示する 6、テストデータでaccuracyを計算し表示する 7、混同行列を作成し表示する(目的変数である離職列のYesが0、Noが1に対応するように混同行列のラベルを調整する)」と入力し、実行します。
結果を確認します。
使用されたcriterionは entropy
最適パラメータはmax_depth : 5, min_samples_leaf : 1, min_samples_split : 2
テストデータでのaccuracy(正解率)が約0.970、混同行列は図の通りになりました。
再現コードとして出力されたPythonコードは下記となります。
結果を確認します。
確かに出力されたコードでも同じ結果が得られることが確認できました。
AIは決定木のcriterionの引数(決定木がデータを分割する際の基準)でデフォルト設定されていジニ不純度だけでなく交差エントロピーも使用しており、クロスバリデーションは3分割となっていました。
テストデータに対するaccuracyは、自身でハイパーパラメータを調整した時が約0.973、AIに任せたaccuracyが0.970となっており、今回はAIの方がaccuracyの数値が低くなっていることが確認できました。
AIによる分析の所要時間は7分でした。
まとめ
今回は決定木で従業員の離職を予測するにあたり、2つの方法で最適なハイパーパラメータの探索を行いました。
1つ目の方法はPythonを用いた方法と、もう1つはAI(chatGPT)を用いた方法です。
結果は自身でハイパーパラメータの探索範囲を設定した方が、accuracyは高い数値を得ることができ
AIに任せたからといって必ず最高の精度のモデルを作れるわけではないことを
確認することができました。また別の機会に他の指標でもどうなるか試していきたいと思います。
AIでできることとできないことを把握し、うまく活用することで、データ分析もかなり効率化できそうですね!
AIでデータ分析-ハイパーパラメータのチューニング:決定木で従業員の離職を予測する は以上となります!








