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