重回帰分析は安易に使用して良いものではない【Excelは危険】

プログラミング

どうもリンです。AIベンチャーでエンジニアをしています。

今回の記事は機械学習が流行った弊害というか、

「機械学習至上主義」は危険だよという話をしようと思います。

 

AIエンジニアとして色々な企業で「機械学習をプロジェクトにどう活用するか」議論を重ねる機会が多いのですが、多くの企業が次のようなことを答えます。

ウチでは重回帰分析を使って偏回帰係数から問題の原因を調べております。

なるほどなるほど。

重回帰分析の強みは数式として出力でき、偏回帰係数を目的変数の寄与度として見れることでしたね。

 

・・・危険だなあww」と思うわけですよ。

詳しく話を聞くと、やはり安直に重回帰分析を使用していらっしゃる。

ダメなんです。重回帰分析といえど立派な機械学習です。

知識が無いと諸刃の剣どころか自分が傷つくだけですよ・・・

 

安直な重回帰分析が使用されている理由は次のような要因が絡んでいると思われます。

  • Excelに「とある重要な機能」が無い
  • 機械学習の常識が広まりだしたのが最近である
  • 日本語の情報サイトでは未だに注意喚起がされていない

このように重回帰分析の誤用が進んでいるのでしょうね。

 

ということで今回は

  • 日本の企業が陥りがちな重回帰分析の危険性
  • 過ちの具体例
  • 対処法

について解説していこうと思います!

スポンサーリンク

Excel重回帰分析でプロジェクトが台無しになる

泣く男性のイラスト

少し厳しいことを言います。

「重回帰分析のせいで大事な大事なプロジェクトが台無しになる」かもしれません。

というか多くの企業がプロジェクトを既に台無しにしているでしょう。

安直な重回帰分析のせいで日本の経済損失は年間100億円です。(個人の感想)

重大な判断ミスをする恐れ

安直な重回帰分析で何が引き起こされるか?

それは「重大な判断ミス」です。意思決定のミスリードですね。

 

重回帰分析は「目的事象の原因を偏回帰係数で説明する」ことが目的で使われます。

しかし安直な重回帰分析は偏回帰係数をデタラメに出力するんです。

するとどうでもいい箇所を「真の原因」と勘違いする判断ミスを犯すわけですね。

重回帰でやりがちなミス

うーん。正直何を言っているかよくわかんない。具体例とかないの?

ということで少し具体例を挙げます。

ここでは仮に工場の不良品発生原因の分析をしているとしましょう。

なぜ不良品が出る!?各工程のデータはあるから不良品発生原因を分析するぞ!

各工程での実測データがあることは非常に心強いですね。

では全データを使って重回帰分析モデルを作りましょう。

偏回帰係数から、不良品発生原因を特定できるはずです。

Excelの重回帰分析機能を使えばすぐできますよ。

と「なんちゃって重回帰できるマン」が提案するわけです。

分析結果が出ました。モデルの精度は95%です。どうやら「プレス工程の温度」の偏回帰係数が大きいですね。そこを直しましょうか。

このように意思決定が起きます。数式を見せてプレゼンをするから説得力もありますよね。

馬鹿な!温度安定化のために500万円を投資したのに不良発生率は変わらないぞ!?重回帰分析では確実にこの工程を指していたはず!なぜだ!!??

結果は惨敗です。

なぜこのような事が起きたのでしょうか?機械学習に詳しい方ならすぐに分かりますよね。

次の項で解説しましょう。

重回帰分析の罠

実は重回帰分析には罠が沢山あります。知らずに使うのは本当に危険です。

交差検証が必要【最重要】

重回帰分析と言えども機械学習ですから交差検証が必要になります。

交差検証って何なのさ?

という方が殆どだと思います。

軽く説明をしましょう。

交差検証とは?

交差検証とはデータを複数に分割して、1つのグループを評価データ・その他のデータを訓練データとしてモデルを構築・評価する手法です。

↓こちらの記事で詳細を述べています。

重要なことは「モデル訓練用データと評価用データに分ける」ことです。

重回帰分析を含めた機械学習モデルは、与えられたデータに過剰フィットする傾向があります。(過学習と言います。)

未知のデータに対して予測性能が出るかどうかを確認する必要があるわけです。

訓練データと評価データのイメージ

 

↑の画像ではよくあるミスと正しい評価方法を表しています。

機械学習モデル(重回帰分析)は与えられたデータでパターンを掴みます。

よくあるミスとして、モデルの精度評価の為に再び訓練データ(モデル構築に使用したデータ)を再度予測させることですね。

機械学習は訓練データを基にしてパターンを掴んだのですから、「さすがに間違えんわ!」と言って精度95%のような出力を出します。

正しい評価方法は事前にモデル訓練用データと評価用データに分割しておき、モデルの精度評価の時は「未知のデータ」として評価データを与えます。

すると機械学習モデルは「見たことないデータだけど、さっき掴んだパターン的に予測値は〇〇かな」となります。この方法であれば「機械学習が掴んだパターンは正しいかどうか」の評価ができますよね。

 

交差検証はこのような「訓練データと評価データ」に分割する操作を複数回行う方法です。

詳細は↓の記事でご確認ください。

Excelで重回帰の交差検証は出来るのか?

では交差検証はExcelで行うことは出来るのでしょうか?

答えは「出来るっちゃ出来るが、現実的に無理」です。

そもそもExcelの機能に交差検証はありません。

なので手動で行うことになるのですが、それでは現実的な時間で行うことは不可能な計算量になります。

重回帰分析の罠①:Excelに交差検証機能が無い

説明変数の絞り込みが必要

重回帰分析は実は「説明変数の絞り込み」が必要なんです。

どういう事かというと、例えば先ほどの工場の例ですと

工場のデータは「プレス工程」だけでなく「鍛造・プレス・塗装・組付け・検査」などなど大量の説明変数があるはずです。

重回帰分析は、説明変数が多すぎると機能しなくなることが知られています。(一部の博識な方の間で)

よって、説明変数を削減する必要が往々にして生じるわけです。

じゃあどれを削ればいいの?不良の原因は分からないんだから消すなんて不安だよ…

となります。

でも消さなければ機能しない。この矛盾が重回帰分析の罠です。

妥協案として「知見を利用して説明変数を絞る」ですが、そもそも知見があるうえで不良品が生じているわけですから訳わかんないですよね。

重回帰分析の罠②:説明変数を絞る必要がある

重回帰分析のミスを防ぐ対処法は?

なんだか難しい話になってきた…。簡単な対処法を教えてよ。

そうなんです。難しいんですよ。

だって機械学習ですから。素人が手を出していいモノではないと私は考えています。

しかし仕事で使うからどうしても対処法を知りたい方に方法をお伝えしておきます。

  • 交差検証や説明変数を絞り込み自動化ツールを見つける(確実に有料)
  • PythonやRを使って自力で交差検証や絞り込みを行う
  • 別の機械学習手法を使う(ランダムフォレスト・ブースティング系)
  • IT人材を採用するor社内から見つけ出す

このどれかが現実的ですね。

いやいや、今からプログラミング言語なんて無理だよ!

甘えないでください。これが現実なんです。

でも、Pythonであれば当ブログも含め優良な教材も出回っていますし学習は簡単です。

これを機に一度勉強するのがいいのではないでしょうか?

 

「IT人材を採用するor社内から見つけ出す」にしろ、IT人材は市場から引っ張りダコなので少し高くつきます。

社内から見つけ出すにしろそのような希少スキルを持つ人材は簡単に良待遇の企業に流れていくので「楽しい仕事」を与え続けないと保持するのが難しいです。

みんな勉強しましょうよ。

 

 追記:簡単に機械学習を習得する最強のツールが生まれましたので、プログラミング未経験の方向けに説明書を作りました。

↓↓↓

世界に革命を起こすこと間違いなしの機械学習全自動化ライブラリ「PyCaret」の使用方法や、今後の社会を予想した

機械学習全自動化!?世界に革命を起こす「PyCaret」完全理解講座

も同時発売中です。

「PyCaret」を使いこなせば、22種類もの機械学習手法と一気に比較したり、ブラックボックスであるモデル内部の解析までわずか10数行のコードで行うことができます!

中身はこんな感じ↓

  • Pythonのインストール
  • Anaconda「JupyterNotebook」の起動
  • 仮想環境構築
  • データセット
    • 中身の確認
  • PyCaretを実装する
    • ライブラリのインポート
    • データ型を推測させる
    • モデルの構築
    • モデルの選択
    • ハイパーパラメータチューニング
    • 学習結果の可視化
    • Hyperparameters
    • Residuals Plot
    • Prediction Error Plot
    • Cooks Distance Plot
    • Recursive Feature Elimination
    • Learnig Curve
    • Validation Curve
    • Manifold Learning
    • Feature importance
    • Stackingさせる
  • 機械学習の未来について所感
    • 機械学習は社会人必須ツールへと昇華(陳腐化)する
    • 機械学習自動化で社会はこう変わる
    • チームメンバーに求められるスキルも変化する
    • データサイエンスとして突出した人材になるには?
    • この記事を見たあなたは「先行者利益」を得る

Python初心者でもインストール~全自動ライブラリ実装・解析まで出来るようになります。

980円:11080文字の教科書になっています。

全自動でもいいからパッと機械学習を実装したい!

「PyCaret」のような最新技術を使いこなしたいな。

という方には非常にオススメです。是非一読あれ!

↓リンク

機械学習全自動化!?世界に革命を起こす「PyCaret」完全理解講座

重回帰分析も機械学習の一つ

重回帰分析も機械学習です。

機械学習の常識を知らない者が使っていい手法ではありません。

機械学習の常識を知っていますか?

次の質問に答えることはできますか?

  • 過学習とは?
  • Hold-out法を説明できますか?
  • Leave-one-out法を知っていますか?
  • Leakageを防ぐ方法は?

機械学習にある程度詳しい方ならば常識でしょう。

少なくともこのレベルの知識を知ってからでないと重回帰分析を使用してはいけないと考えております。

機械学習の常識を学ぶ方法は?

ではこのような機械学習の常識を学ぶにはどうすればいいのでしょうか?

回答は色々とありますが、一番手っ取り早い方法を作りました。

 

機械学習はこれ一本!pythonインストール~機械学習実装まで完全理解講座

↑こちらの教材を勉強することです。プログラミング未経験者が最速で機械学習を実装する知識を詰め込みました!

  • インストール方法から画像付きで解説します。
  • ガチで最小の文法紹介しかしません。
  • 機械学習原理を懇切丁寧に、イメージ画像付きで解説します。
  • 最先端技術まで解説&実装します(大変すぎて死にそうだった)

普通の教本の1/4くらいの値段ですし、誰かに紹介すれば半額の紹介料が入るのですぐ元は取れます

★★★★★この価格でこのクオリティは凄すぎる

大学生ですが、これをつかって実験のレポートのデータ解析などにもつかえそうだと思いました! また、値段が安すぎて恐縮してます汗 凄すぎる…

レビュー欄より

★★★★★ 数ある教材の中でもトップクラスの分かりやすさ

これを機会に一度挫折したpythonを学び直そうと一念発起いたしました。いろいろなお勧めサイトの教材を拝見し購入しては失敗していましたが、ようやく超優良教材見つけました。知りたかった情報がすべて網羅されていて、この価格はなかなか無いと思います。今後の追加情報も期待したいです。

レビュー欄より

↑こんなコメントも頂きました!ありがとうございます(泣)

↓リンク

機械学習はこれ一本!pythonインストール~機械学習実装まで完全理解講座

 

この教科書で一通り勉強した後、当ブログや他情報サイトで機械学習の詳しい考え方を勉強するのが最速でしょう。

↓教科書の詳細

まとめ

重回帰分析の難所は理解できましたか?

思ったよりも重回帰分析は扱いづらいものだと感じたでしょう。

この事実に気づかずに「とりあえず重回帰」なんて使い方をされているわけです。

おそらくExcelに重要な機能が付いていないから誰も気づかないんでしょうね…

きちんと勉強すれば有用ですので、真面目に頑張りましょう!

では!

コメント