前回の記事(機械学習入門⑤)では、「いくら?」という連続値を予測する回帰の話を書いた。
今回から2回にわたって扱うのは、MBA講座で取り組んだ「製薬会社の離職問題」ケースだ。このケースの位置づけが、講座の中でも特別だった。
それまでは手順を示してもらいながら機械学習を体験していたが、今回のケースは初めて「ノーヒントで自力で最初から」ビジネス問題に機械学習を使う課題だった。「わかった気になっている」と「本当にできる」は別の話だと、この課題で実感した。
ケースの舞台:製薬会社の離職問題
ケースの主人公は、ある製薬会社の日本支社に着任したばかりの経営室長。5年前に本社に買収された旧国内販売会社が日本支社になった経緯があり、社員数は約1,000人。
アジア・欧州拠点が集まる年次会議で、日本支社の離職率の高さが問題として指摘されたところから話が始まる。
その経営室長がツテをたどって離職者2名・人事責任者・データ管理者にインタビューし、データを受け取る。そこから「データを使って離職問題に対処する」ことが求められる、というのがシナリオだ。
インタビューから見えてきた離職理由は「他社からの好条件オファー」「育児との両立困難」「長時間労働」「販社時代の古い体質」などで、リアルな職場の話としても読み応えがあった。
まずデータを探索する:探索的データ分析
最初のステップは「基本データの探索」。持っているデータは離職・年齢・部署・役職・職位・性別・業績評価・勤続年数の8変数だ。
まず単純集計で全体を見てみると、いくつかの傾向がはっきり出た。
- 若手ほど離職率が高い:入社〜5年・20代が率も絶対数も多い
- 役職別では営業担当・主任、研究技術者、人事担当に多い
- 職位1(一番下)と職位3(中間管理職)で離職率が高い
- 男女差・業績評価(3か4しかついていない)では大差なし
ここから変数を組み合わせてクロス集計で深堀りしていくと、さらに鮮明になる。営業部・職位1の離職率は42%と突出しており、全離職者237名のうち実に6割が職位1だった。
数字を見るだけでなく、インタビューメモと照らし合わせると解釈が深まった。若手営業の高離職率は、個人プレーが強い文化・キャリアアップの詰まり感・外部からのオファーへの脆弱性がセットで起きているように見えた。
データが汚かった:フィーチャーエンジニアリングの本番
次のステップでは「詳細データ」を追加して機械学習モデルを作る。ここでリアルなデータ分析の洗礼を受けた。
詳細データには「残業時間」と「有給長期休暇」のデータがあるのだが、残業時間は「OverTimePay: 32」のようにテキスト文字列が混入しており、日付データも型が崩れていた。
インタビューでデータ管理者が「詳細データの中には汚いままのデータも入ってます」と話していたが、本当にそのとおりだった。きれいなデータが届くことの方が少ない、というのはITの現場でも同じで、妙に親近感があった。
前処理を施して「真の勤務時間」を計算してみると、月200時間を超えるとはっきり離職率が上がる傾向が見えてきた。「残業している人が辞めやすい」という当たり前のことが、データでも確認できた形だ。
この「真の勤務時間」という変数を機械学習に加えると、特徴量の重要度でトップに躍り出た。フィーチャーエンジニアリング(特徴量の加工・作成)が予測精度に直結することを実感した。
AUCの改善:精度はどこまで上がったか
モデルの精度(AUC)の推移はこうだった。
- 詳細データをそのまま使用:AUC 0.77
- フィーチャーエンジニアリング後:AUC 0.79
- 多重共線性対応後(ロジスティック回帰):AUC 0.86
面白かったのは、XGBoostよりもロジスティック回帰の方が精度が高かった点だ。「複雑なモデルが常に優れている」わけではない。モデルの複雑さとデータの特性のマッチングが大事で、シンプルなモデルが勝つことも十分ある。
また多重共線性(互いに強く相関する特徴量が混在すること)の影響も実感した。相関している変数を除去するだけで「どの特徴量が効いているか」の見え方が変わり、解釈がしやすくなる。
支社長への説明——「言わないこと」を決める
予測モデルができたとして、次に考えるのが「非専門家にどう伝えるか」だ。ここが意外と難しかった。
授業での解説では、「経営幹部への説明」としてあえて含めない情報が列挙されていた。
- アルゴリズム名(XGBoost、ロジスティック回帰など)
- ホールドアウト法の詳細
- AUCなどの抽象的な指標
- 「説明変数の重要度」(ブラックボックスへの盲信リスクがある)
代わりに伝えるべきは、具体的な数字だ。「離職者237名のうち186名(78%)が事前に危険度ランクA・Bと判定できた」「現在の在職者1,233名のうち離職予備軍は76名」——これなら支社長に意思決定を促すことができる。
「If you can’t explain it simply, you don’t understand it well enough.」(アインシュタイン)という言葉がスライドに引用されていた。モデルを作る技術力と、それをわかりやすく伝える力は別のスキルだと改めて感じた。
学んだこと:データが汚いことを前提に動く
今回いちばん実感したのは、「データを加工する作業が予測精度を決める」ということだ。
どれだけ良いアルゴリズムを使っても、データが汚ければ精度は出ない。GIGO(Garbage In, Garbage Out)という言葉があるが、「真の勤務時間」の算出ひとつで特徴量のトップが入れ替わる体験をすると、この言葉の重みが違って聞こえた。
現実のビジネスデータはきれいではない。それを前提に、前処理とフィーチャーエンジニアリングに時間と工夫をかけることが、機械学習の実務で最も重要なステップのひとつだと理解した。
→ 【機械学習入門⑦の記事はこちら】※公開後リンク追加予定