クラシフィケーション（分類）と確率的思考の違い

![Photo by Drew Beamer on Unsplash](https://qiita-image-store.s3.amazonaws.com/0/124978/e50cef05-6f9b-d063-029e-d122679b80e0.jpeg)


以前にも、機械学習と統計の違いについては何度か話してきました。

- [結局、機械学習と統計学は何が違うのか？](https://exploratory.io/note/kanaugust/aNL1RkQ0gB)
- [統計モデルと機械学習モデルの正しい選び方](https://exploratory.io/note/kanaugust/Gxe3giQ0zp)

今回はさらに一歩進んで、クラシフィケーション（分類）と確率的思考という違いから機械学習と統計の手法と考え方の違いを説明している記事があったので紹介したいと思います。

ちなみに、機械学習の世界では答えがわかっている場合（例えばそれぞれの顧客がキャンセルしたかどうかなど）にその答えがカテゴリー（ロジカル・論理値も含む）であるときはクラシフィケーション（分類）とよびます。そこで作られた予測モデルは基本的には答えのラベル（例えばTRUEかFALSE）を返します。

一方、統計のアルゴリズムではこうした時にある前提の元に考えられる確率として予測します。他の条件を満たしている限りはTRUEである確率が80％だというようにです。

本文の中に、Signal-to-Noise Ratio (ノイズに対するシグナルの割合）という指標が出てきますが、これが高いとアルゴリズムに意思決定をさせるための機械学習の手法がより適している、逆に低いと人間が意思決定を行うための統計学の手法がより適しているという視点は、この違いを理解するときに役立つのではないでしょうか。

以下、要訳。

---

Classification vs. Prediction - [Link](http://www.fharrell.com/post/classification/)


機械学習の世界はある意味、統計学の世界とは独立して発展してきました。その結果として機械学習の専門家は確率的思考について語ることがあまりありません。ところが確率的思考、さらに不確定要素と分散への理解といったものは統計学には欠かすことのできないものです。

確率的に考えないことで、機械学習の支持者たちはリスクを予測するモデルを使う代わりにクラシファイアー（分類器）をよく使います。

多くの機械学習の専門家はロジスティック回帰をクラシフィケーション（分類）のメソッドだと呼びます。（そうでないにもかかわらず。）そこで、クラシフィケーションとはいったい何かをしっかりと考えることが重要になってきます。

クラシフィケーションとは実際は意思決定を意味します。

クラシフィケーションは強制された選択です。しかし、マーケティングで、広告の予算が決まっている場合、分析者は見込み客を無視するべきかもっと多くのお金を費やすべきなのかと、単純に分類しようとは思わないでしょう。

かわりに彼らは確率のモデルを作り、見込み客をあるプロダクトを買う確率の高い方から並び替えたリフト曲線を作ります。同じお金に対して最も多くの効果を得るために、最も高い確率の顧客から選んでプロモートしていくのです。これは理にかなっていて、ここではクラシフィケーションをする必要はないのです。

例えば、データを使うユーザーである医者の方たちがよく主張するのは、彼らは最終的にバイナリー（TRUEかFALSE)の決断を行う必要があるので、バイナリー・クラシフィケーションが必要だというものです。しかし、これはあきらかに間違っています。

まず、最も優れた決定は、病気であるという確率がどっちつかずというときはもっとデータを集める、つまり決定をしないということです。

多くの場合は、決定は後でくつがえすことができます。例えば医者がある患者に対してある薬を少ない摂取量で処方しはじめ、あとになってその量を変えたり、または薬の種類を変えたりすることができます。

手術をするということに関しては後で決定を変えることはできません。それでもいつ手術を行うかは医者と患者次第で、病気と症状がどれだけ深刻かによるのです。もしバイナリーのクラシフィケーションが必要であるとすると、全てのことがわかったという状況で行うことになりますが、データ分析の世界ではそういうことはまずありえません。

それでは、いつ「強制された選択」というものが適しているのでしょうか。このときに問題が機械的なものなのか、それとも確率的なものなのかといった違いをよく考える必要があります。

ところが機械学習の支持者はよく、前者のような問題を解決するために作られた手法を、生理的変動（biologic variation）、サンプリングの分散（sampling variability）、計測の誤差があるような問題を解決するために使おうとします。

Signal-to-Noise Ratio (ノイズに対するシグナルの割合) が高い場合にクラシフィケーションの手法を使うことが適しています。それはすでにわかっている間違いのない標準があり、何度実験を行っても毎回ほぼ同じ結果が得られるような場合です。

いい例は、画像、音響、化学組成といったパターン認識です。文字の画像認識のアルゴリズムを作るのであれば、文字が「A」、「B」と書いてあるたくさんの同じような画像のデータをアルゴリズムに与えて学習させます。

そうしたクラシファイアー（分類器）を使うユーザーには、それぞれの分類結果がほぼあってるかそうでないかなどといったことに考えをめぐらすようなことはありません。こういった場合のノイズに対するシグナルの割合は極めて高く、それぞれの文字に対して、一つの正解というものがすでに決まっているのです。

こういう状況というのは基本的に機械的で、確率的ではありません。これは、知っている範囲では全く同じような属性を持っている二人の患者が異なった結果を出すことがある時に、死亡や病気を予測しなければならない場合とは全く違います。

どちらなのか分からないということがありうるケース、または結果が本質的にランダム性を含む場合、確率的に推測していく必要があります。

確率のすばらしいところはそれ自体がエラーの計測だということです。もし病気になる確率が0.1であったら、現在の決定は患者には何もしないということです。確率が0.4であれば、もう一回テストを行うか、生検（生体の臓器あるいは組織の一部を取り出して，病理組織学的に診断を確定すること）を行うことになるでしょう。

ノイズに対するシグナルの割合が低い場合、クラシフィケーションという手法は大抵の場合ふさわしくありません。そういった場合はむしろ確率を使って傾向をモデルしていく必要があるからです。

The U.S. Weather Service (USの天気予報サービス）はいつも雨の予測を確率として伝えてきました。「今日雨が降る」といったようなクラシフィケーションの結果が欲しいとは思いません。傘を持ち歩くことに対する不便さとのトレードオフは、私が自分自身で判断したいと思います。


信用リスクのスコアづけ、天気の予測、天候の予測、マーケティング、患者の病気の診断または病気の経過に関する予測などに関わる場合は、私はクラシフィケーションの手法を使いたいとは思いません。むしろ信頼区間をともなったリスクの推測をしたいと思います。

私の個人的な意見としてですが、機械学習のクラシファイアーは機械的でSignal-to-Noise Ratio（ノイズに対するシグナルの割合）が高いときに使われるのが一番いい使い方だと思います。そして、確率のモデル（統計学）はそれ以外のケースに使うのがいいと思います。

---

以上、要訳終わり。

人間によって行われる世界のビジネスにしても、人間である顧客にしても不確実で曖昧であるというのが現実です。

そのような中でも、ビジネスの問題を解決するために、過去のデータから何か手がかりになるトレンドやパターンを発見し、予測していくわけですが、この大前提である、不確実性というのを忘れるべきではないと思います。

データやアルゴリズムを使って長期的な成功をおさめているような企業、例えばNetflix、Bridgewaterといった以前にも取り上げたことのある企業は、このことを熟知しているようです。

- 世界で一番大きなヘッジファンドはすでにAIを意思決定に使っている - Deep Understanding(深い理解)のために - [Link](https://exploratory.io/note/kanaugust/AI-Deep-Understanding-xvS0oag6Ht)
- Netflix - データ重視のシリコンバレー文化と人間関係重視のハリウッド文化の衝突 - [Link](https://exploratory.io/note/kanaugust/Netflix-JnK8QNf1AN)

つまり、[データ・ドリブンではなく、データ・インフォームド](https://exploratory.io/note/kanaugust/jSb4nFO0MI)ということです。

そして、この前提を忘れない限りは、機械学習のアルゴリズムも統計学習のアルゴリズムも、それらが持つ強み、弱みを理解した上でふだんのデータ分析にどんどんと使って行けばいいのではないかと思います。

---

# データサイエンス・ブートキャンプ、3月開催！

来年3月の中旬に、Exploratory社がシリコンバレーで行っているトレーニングプログラムを日本向けにした、[データサイエンス・ブートキャンプ](https://exploratory.io/training-jp?utm_campaign=classification_probability&utm_medium=blog&utm_source=qiita)を東京で開催します。

データサイエンスの手法を基礎から体系的に、プログラミングなしで学んでみたい方、そういった手法を日々のビジネスに活かしてみたい方はぜひこの機会に参加を検討してみてください。詳しい情報は[こちらのホームページ](https://exploratory.io/training-jp?utm_campaign=classification_probability&utm_medium=blog&utm_source= qiita)にあります！