No Free Lunch theorem を覚えていますか? いいえ、食べ物に関するものではありません(まだ)。 しかし、もしあなたが空腹なら、この記事を読む前にスナックを食べてください – キーボードにヨダレを垂らさないように。 機械学習アルゴリズムは、特に教師あり機械学習では、問題セットに基づいて調整する繊細な道具です。

今日は、人気のある分類アルゴリズムがどのように機能し、たとえば、素晴らしくジューシーなトマトを選んで分類するのに役立つかを見ていきましょう。 例えば、スーパーマーケットでトマトを選ぶとき、「緑」「完熟」「腐った」のように、分類によって判断することができます。 機械学習の用語では、私たちは手にするすべてのトマトにクラスの 1 つのラベルを割り当てます。

トマト狩りコンテスト (これを分類モデルと呼ぶ人もいます) の効率性は、その結果の精度に依存します。 (両親や大切な人に行かせるのではなく) 自分でスーパーマーケットに行く回数が増えれば増えるほど、新鮮でおいしいトマトを選ぶのが上手になります。

コンピュータも同じです! 分類モデルが結果を正確に予測できるようになるには、多くの学習例が必要です。

4 types of classification

4 types of classification tasks in machine learning

Binary

二項分類とは、互いに真と偽と関係する二つのクラスを使って作業することを指します。 目の前に黄色と赤のトマトが入った大きな荷箱があるとします。 しかし、イタリアの高級パスタのレシピでは、赤いものだけが必要だと書かれています。

あなたはどうしますか。 もちろん、ラベルエンコーディングを使用して、この場合、1を「赤い」、0を「赤くない」に割り当てます。

2値分類

マルチクラス

この写真には何が見えますか?

tomatoes

赤のビーフステーキトマトです。 プチトマト。 カクテルトマト。 平飼いトマト。

ここには、二項分類のような「正常」と「異常」の白黒はありません。 私たちはあらゆる種類の素晴らしい野菜(またはベリー)を食卓に迎えます。

トマト料理が苦手な方はおそらくご存知ないでしょうが、すべてのトマトが同じ料理に同じように適しているわけではないということです。 赤いビフテキ・トマトはサルサに最適ですが、ピクルスにはしませんよね。 プチトマトはサラダには合いますが、パスタには合いません。

マルチクラス分類は、クラスがいくつあっても、箱からすべてのトマトを分類するのに役立ちます。

Multiclass classification

Multi-label

マルチラベル分類は、2カ国の市民である人など1つの入力で2以上のクラスに属せる場合に適用されます。

このタイプの分類を扱うには、複数の出力を予測できるモデルを構築する必要があります。

写真のオブジェクト認識のために、マルチラベル分類が必要です。 例えば、トマトだけでなく、リンゴ、ズッキーニ、タマネギなど、同じ画像内の異なる種類のオブジェクトを識別する必要がある場合です。

すべてのトマト愛好家のための重要な注意。 バイナリまたはマルチクラス分類アルゴリズムをそのままマルチラベル分類に適用することはできません。

Multi-label classification

また、各クラスに対して別々のアルゴリズムを使って、各カテゴリのラベルを予測することもできます。

Imbalanced

各クラス内の例が不均等に分布している場合は、不均衡分類で作業します。 スーパーマーケットのトマトの大きな山の中に偶然こぼれた、生物学的に栽培された希少なトマトを見つけることは、素晴らしい編集者である Gints が提供する不均衡な分類の例です(他に例がある場合は、ツイートで教えてください)。

Imbalanced classification

Machine Learning Mastery の素晴らしいブログで、さまざまな種類の分類について読み、さらに多くの機械学習資料を勉強することをお勧めします。

分類モデルを構築する手順

扱っている分類タスクの種類がわかったら、いよいよモデルを構築します。 データに適用するMLアルゴリズムの1つを選択する必要があります。

  • それを訓練する。 ラベル付きの学習データセットを用意する必要があります(例数が多いほど良い)。
  • 出力を予測する。 モデルを使用して結果を得る。
  • 分類器モデルを評価する。 学習で使っていないデータの検証セットを用意して、結果を確認すると良いでしょう。
  • それでは、最も広く使われている分類アルゴリズムを見ていきましょう。

    The most popular classification algorithms

    Common classification algorithms

    Scikit-LearnはPython用のトップMLライブラリの1つです。 ですから、モデルを構築したいのであれば、チェックしてみてください。 5751>

    Logistic Regression

    ロジスティック回帰はバイナリ分類に使用されます。

    このアルゴリズムは、結果が起こる確率をモデル化するためにロジスティック関数を採用します。 いくつかの独立変数が単一の結果変数にどのように影響するかを理解したい場合に最も有用です。

    例題。 降水量レベルと土壌組成は、トマトの繁栄または早すぎる死につながるでしょうか。

    ロジスティック回帰には限界があります。すべての予測変数は独立でなければならず、欠損値はあってはなりません。

    Naive Bayes

    ナイーブベイズアルゴリズムはベイズの定理に基づいている。 このアルゴリズムをバイナリおよびマルチクラス分類に適用し、過去の結果に基づいてデータを分類することができます。

    タスク例:腐ったトマトをその外観に基づいて新鮮なトマトから分離する必要があります。

    ナイーブ ベイズの利点は、これらのアルゴリズムの構築が速いことです。豊富な学習セットを必要とせず、他の方法と比べても速いことが特徴です。 しかし、ベイズ アルゴリズムの性能はその強い仮定の精度に依存するため、結果は非常に悪いものになる可能性があります。

    ベイズの定理を使用すると、あるイベントの発生が別のイベントの確率にどのように影響するかを伝えることが可能です。

    k-Nearest Neighbors

    kNN は “k-nearest neighbor” の略で、最も単純な分類アルゴリズムの 1 つです。

    このアルゴリズムは、多次元特徴空間におけるその最も近い隣人が属しているクラスにオブジェクトを割り当てるものです。 kは分類されたオブジェクトと比較される特徴空間内の近傍オブジェクトの数である。

    例. トマトに似たトマトの種から、そのトマトの種を予測したい。

    k-最近傍を使って入力を分類するには、一連の操作を行う必要があります:

    • 学習サンプルの各オブジェクトとの距離を計算する;
    • 距離が最小となる、学習サンプルのk個のオブジェクトを選択する;
    • 分類するオブジェクトのクラスはk-最近傍間で最も頻繁に発生するクラスとする;です。

    決定木

    決定木はおそらく意思決定プロセスを視覚化する最も直感的な方法である。 入力のクラスラベルを予測するために、我々は木のルートから開始します。 各ノードに対して持っている決定規則に基づいて、可能性空間をより小さなサブセットに分割する必要があります。

    decision tree example

    木の下に到達するまで、可能性空間を分割し続けるのです。 すべての決定ノードには2つ以上の枝があります。 上のモデルの葉には、人が適合するかしないかについての決定が含まれています。

    例.

    決定木の種類

    木には2種類ある。 それらはターゲット変数の性質に基づいています。

    • Categorical Variable Decision Tree.
    • Continuous Variable Decision Tree.

    したがって、決定木は数値とカテゴリデータの両方で非常にうまく機能します。 決定木を使用するもう一つの利点は、データの準備をほとんど必要としないことです。

    しかし、決定木は複雑になりすぎ、オーバーフィッティングにつながる可能性があります。 これらのアルゴリズムの重要な欠点は、学習データの小さな変動が不安定にし、まったく新しい木につながることです。

    Random Forest

    ランダムフォレスト分類法は、データセットのさまざまなサブサンプルにいくつかの異なる決定木を使用します。 その結果、ランダムフォレストは、結果の精度を損なうことなく、複雑な機械学習問題を解決するために使用することができます。 それにもかかわらず、予測を形成するためにより多くの時間を必要とし、実装はより困難です。

    Towards Data Science ブログで、ランダム フォレストの仕組みについてさらにお読みください。 ここでのNは特徴の数です。 基本的にはどのような数でも構いませんが、大きくなるとモデルを構築するのが難しくなります。

    超平面は(2次元空間の)線として想像することができます。 3次元空間を過ぎると、モデルを可視化するのが難しくなる。

    超平面の異なる側に位置するデータポイントは、異なるクラスに帰属する。

    例.

    例:トマトをその形状、重量、および色に基づいて選別する自動システム

    我々が選択する超平面は、結果の精度に直接影響します。 そこで、両クラスのデータ点間の距離が最大となる平面を探す。

    SVMは、多くの特徴がある場合に、最小限の計算能力で正確な結果を示す。

    まとめ

    このように、機械学習は、店で野菜を選ぶように簡単にできるようになります。 しかし、それを失敗させないためには、多くの細かい点に注意しなければなりません。 私たちのブログ、Twitter、Mediumで、機械学習についてのクールな読み物をお楽しみください

    コメントを残す

    メールアドレスが公開されることはありません。