1. 概要

機械学習が私たちの生活の多くの側面を支配しているため、その基盤を形成するアルゴリズムと手法についてもっと学びたいと思うのは当然のことです。

このチュートリアルでは、最もよく知られている2つの分類器、 NaiveBayesDecisionTreesを見ていきます。

それらの理論的背景と内部の仕組みを簡単に確認した後、一般的な分類設定におけるそれらの長所と短所について説明します。 最後に、アプリケーションでの適合性について説明します。

2. 予選

これから説明する手法は、間違いなく、機械学習で最も人気のある2つの手法です。 彼らの成功は、十分に確立された理論的背景、効率、スケーラビリティ、説明可能性などの要因の組み合わせから生じています。

ただし、それらは決して完璧ではありません(これまでのテクニックはありません)。 この記事では、各手法の詳細を掘り下げて、それらを比較評価します。

両者の共通点を確立するために、まず、これらの方法を適用できる一般的な分類設定について説明しましょう。 エントリのデータセットが提供されます。各エントリは属性で記述され、より一般的には機能と呼ばれます。 各データエントリは特定のクラスに関連付けられており、このデータは分類器のパラメーターを決定するために使用されます(トレーニング)

機械学習アルゴリズムの最終的な目標は、トレーニング中に表示されないデータに一般化することであるため、トレーニング中に使用されなかった別のデータセットでモデルの精度を常に評価します。

3. ナイーブベイズ

単純ベイズ分類器の詳細なレビューはこの記事の範囲を超えているため、詳細については、この記事を参照してください。 ただし、最初に、完全を期すために、背景の一部を言い換えてみましょう。

3.1. バックグラウンド

単純ベイズ分類器は、ベイズの定理に基づく確率モデルであり、事前の知識があれば、イベントが発生する確率を計算するために使用されます。 定理は次の簡単な式で表すことができます。

   

一般的な分類設定に合うようにこの式を構成しましょう。 データエントリは、クラスの1つに対応しています。 特徴が与えられたクラスに属するエントリの確率を推定しようとしています。

トーレムによれば、この確率は次のように計算できます。

   

この分類器の素朴さは、計算を大幅に容易にするコアの仮定に由来します。 すべての機能は相互に独立しています。これは、各機能の値が他の機能の値に影響を与えないと想定していることを意味します。

この仮定を式に含めて、方程式の最終的な形式を取得できます。

   

正確な確率を計算するのではなく、正しいクラスを予測しようとしていることを忘れないでください。 したがって、分母の用語はクラスに依存しないため、無視できます。

以下に、観測値のデータセットが与えられたときに方程式の個々の成分を計算する方法の例を示します。

データセットに加えて、新しい観察結果も与えられ、外に出て遊ぶべきかどうかを予測する必要があります。

離散変数の場合、各確率を評価することは、基準に適合するデータセット内のサンプルの数を数えることになります。

3.2. コメントコメント

独立性の仮定の利点は重要です。 これにより、機能を相互に分離し、それらを1d分布として扱うことができます。これにより、計算の数が大幅に削減され、必要なデータセットのサイズも削減されます。

それにもかかわらず、仮定は非常に大胆であり、通常は実際には決して成り立たない。 これにより、クラス確率の計算が不正確になります。 これは通常、正しく分類する能力を妨げますが、実際のところ、通常はそうではありません。

最大事後(MAP)推定値を入力します。 事後確率が最も高いクラスが分類器の出力として選択されます。 正しいクラスの事後確率が他のクラスよりも高い限り、確率計算の不正確さは結果に影響を与えません。

したがって、上記の例では、条件付き確率が。より大きいため、外に出て遊ぶことはないと推測できます。 読者が、個々の確率の積を取り、分母の項を無視することによって、この不等式が実際に成り立つことを確認することを歓迎します。

3.3. 強みと弱み

単純ベイズ分類器の主な利点は、無関係な機能を「無視」するという事実のおかげで、過剰適合しにくいことです。 ただし、これらは中毒になりやすい現象です。これは、クラスを予測しようとしているときに発生する現象ですが、まれにしか表示されないため、誤分類が発生します。

単純ベイズ分類器は、データエントリの数に関して線形の計算の複雑さで、簡単に実装でき、高度にスケーラブルです。

最後に、適切な分類を行うために多くのデータ入力を必要としませんが、データが多いほど計算がより正確になります。 いくつかの改善は、データの前処理と統計的手法をさらに採用することにより、このアルゴリズムで実行できます。

ナイーブベイズは、テキストベースの分類と強く関連しています。 アプリケーションの例には、スパムフィルタリングとテキスト分類が含まれますが、これらに限定されません。 これは、特定の単語の存在がそれぞれのカテゴリに強く関連しているため、相互の独立性の仮定がより強くなるためです。

残念ながら、いくつかのデータセットでは、分類子が意図したとおりに機能する前に、一部の機能を手動で選択する必要があります。

4. デシジョンツリー

4.1. バックグラウンド

単純ベイズ分類器と同様に、決定木は属性の状態を必要とし、決定を出力します。 いくつかの混乱を明確にするために、「決定」と「クラス」は単に異なる分野で使用される専門用語ですが、本質的に同じです。

決定木は、各機能の値チェックのコレクションによって形成されます。 推論中に、個々の機能をチェックし、その値に対応するブランチをたどります。 このトラバーサルは、決定を含むターミナルノードに到達するまで続きます。

しかし、ツリーがどのようにブランチに分割され、各レベルでどの機能が使用されるかをどのように決定するのでしょうか。 簡単なアプローチは、すべての機能を取得し、可能な値ごとにブランチを形成することです。 このように、同じデータエントリが検出された場合、それは正しい決定につながります。

ただし、そのようなモデルはまったく一般化できません。 さらに悪いことに、この方法を大規模なデータセットに適用すると、巨大なツリーが生成され、モデルの計算要件が追加されます。

重要度の高い順に機能を使用し、精度を上げない「役に立たない」機能を破棄することをお勧めします。 機能の重要性を定義するために一般的に使用されるメトリックは、情報コンテンツです。 シャノンとウィーバーによって数学的に定義されているように、関連する確率を持つ可能な特徴値のセットについて、値が明らかにされたときに取得する情報は次のとおりです。

   

数学を深く掘り下げることは、この記事の範囲を超えています。 要するに、機能の値がデータエントリをほぼ等しいグループに分割する場合、情報コンテンツはより高くなり、その機能はツリーの早い段階で使用する必要があります。 このアプローチには、比較的バランスの取れた決定木を作成するという利点もあります。 その結果、ルートからターミナルノードへのパスが短くなるため、推論が高速になります。

前の例のデータを使用して作成された決定木を以下に示します。

新しい観測値が与えられると、決定木をトラバースして、出力がであることがわかります。これは、単純ベイズ分類器からの決定と一致する結果です。

4.2. 強みと弱み

おそらく、ディシジョンツリーが提供する最も重要な利点は説明可能性です。 それらの単純な推論とその階層構造により、これは機械学習に関係のない人々でも使用するのに理想的な候補になります。 ほとんどの機械学習方法に欠けている利点は、決定木を簡単に視覚化できることです。

これらは高速で効率的であり、数値とカテゴリ、離散または連続の両方のあらゆる種類のデータを処理します。 これらは簡単にセットアップでき、データの前処理はほとんどまたはまったく必要ありません。 さらに、重要な機能を決定するために使用される情報ベースのヒューリスティックは、一見見えない可能性のあるデータセット内の関係を明らかにすることがよくあります。

ただし、適切に枝刈りされない限り、決定木は、最終的に重要でないまたは意味のない機能を含めることにより、トレーニングデータに過剰適合する傾向があります。 各カテゴリに沿ってサンプル数が不均一なデータセットも、不均衡なツリーにつながるか、実際に重要な機能の剪定につながります。

もう1つの欠点は、アルゴリズムがサンプルを線形に分離することです。 連続変数を想像してみてください。可能な分割はです。 それらの性質によっては、データが線形分離可能でない場合があるため、決定木はこれらのアプリケーションには適していません。

それらの欠陥にもかかわらず、ランダムフォレストなどの決定木の改良版が非常に使用されています。 デシジョンツリーとそのバリアントの主な用途は、多因子の意思決定とリスク評価のためのビジネスの世界にあります。

5. 比較

説明した両方の方法は、さまざまなアプリケーションで非常にうまく機能します。 しかし、どちらを選ぶべきですか? データの性質に関して考慮すべきことがいくつかあります。

機能は互いに独立していますか? すべての機能が同じように重要であるように思われますか、それともそれらを厳選する必要がありますか? 前者の場合、おそらくナイーブベイズがより良い選択ですが、決定木は後者の方がおそらくそれを上回ります。

データセットにほとんど表示されないクラスを予測しようとしていますか? その場合、決定木を使用して枝刈りされる可能性が高く、望ましい結果が得られません。

幸い、どちらの方法も非常に高速であり、ほとんどの場合、決定する前に両方をテストすることができます。 そこにあるほとんどの問題について、メソッドはそのままでは使用できませんが、おそらく修正と改善が必要になることに注意することが重要です。

6. 結論

単純ベイズ分類器と決定木分類器の詳細について詳しく説明しました。

要約すると、ナイーブベイズの独立性の仮定は、分類器の成功にとって重要な要素です。 データを適切に利用する前に、データに(ある程度)適用されることを確認する必要があります。

同様に、ディシジョンツリーは適切な剪定手法に依存しているため、分類の目的を追跡しながら過剰適合を回避できます。

全体として、これらは非常に便利な方法であり、ツールキットへの優れた追加機能でもあります。