近年、需要の高さと技術の進歩により、機械学習の人気は大幅に高まっています。 データから価値を生み出す機械学習の可能性は、さまざまな業界の企業にとって魅力的です。 ほとんどの機械学習製品は、市販の機械学習アルゴリズムに若干の調整と小さな変更を加えて設計および実装されています。
機械学習アルゴリズムには多くの種類があり、大きく 3 つのカテゴリに分けられます。
この記事では、最初の 2 つのカテゴリで最も一般的なアルゴリズムについて説明します。 注: ディープラーニングは機械学習のサブフィールドですが、この記事ではディープラーニングのアルゴリズムについては取り上げません。 ディープラーニングアルゴリズムは、その複雑さとダイナミクスのため、別途議論する必要があると考えます。 さらに、この投稿を長くしすぎて読者を退屈させてしまうのも気が進みません。 始めましょう。 1. 線形回帰 線形回帰は、データに線形方程式を当てはめることによって、連続的なターゲット変数と 1 つ以上の独立変数の関係をモデル化しようとする教師あり学習アルゴリズムです。 線形回帰が適切な選択となるためには、独立変数とターゲット変数の間に線形関係が存在する必要があります。 散布図や相関行列など、変数間の関係を調べるためのツールは数多くあります。 たとえば、以下の散布図は、独立変数 (x 軸) と従属変数 (y 軸) の間に正の相関関係があることを示しています。 一方が増加すると、もう一方も増加します。 線形回帰モデルは、関係性または相関関係を最もよく表すデータ ポイントに回帰線を当てはめようとします。 最も一般的に使用される手法は、最小二乗法 (OLE) です。 この方法を使用すると、データ ポイントと回帰直線間の距離の二乗の合計を最小化することで、最適な回帰直線を見つけることができます。 上記のデータ ポイントの場合、OLE を使用して取得された回帰線は次のようになります。 2. サポートベクターマシン サポート ベクター マシン (SVM) は、主に分類タスクに使用される教師あり学習アルゴリズムですが、回帰タスクにも適用できます。 SVM は決定境界を描画することでクラスを区別します。 決定境界をどのように描画または決定するかは、SVM アルゴリズムの最も重要な部分です。 決定境界を作成する前に、各観測値 (またはデータ ポイント) が n 次元空間にプロットされます。 「n」は使用される機能の数です。 たとえば、「長さ」と「幅」を使用して異なる「セル」を分類する場合、観測値は 2 次元空間にプロットされ、決定境界は線になります。 3 つの特徴を使用する場合、決定境界は 3 次元空間内の平面になります。 3 つ以上の特徴を使用すると、決定境界は視覚化が困難な超平面になります。 > 2次元空間における決定境界は線である 決定境界は、サポート ベクトルまでの距離が最大になるように描画されます。 決定境界がサポート ベクトルに近すぎると、ノイズに対して非常に敏感になり、一般化がうまくいきません。 独立変数の小さな変化でも誤分類につながる可能性があります。 上の図に示すように、データ ポイントは必ずしも線形に分離できるとは限りません。 このような場合、SVM はカーネル トリックを使用して、高次元空間内のデータ ポイントの類似性 (または近接性) を測定し、それらを線形に分離できるようにします。 カーネル関数は類似度を測定するものです。 入力は元の特徴であり、出力は新しい特徴空間における類似度の尺度です。 ここでの類似性とは近さを意味します。 実際にデータ ポイントを高次元の特徴空間に変換するのは、コストのかかる操作です。 このアルゴリズムは、実際にはデータ ポイントを新しい高次元の特徴空間に変換するわけではありません。 カーネル化 SVM は、実際に変換を実行せずに、高次元の特徴空間における類似度測定に基づいて決定境界を計算できます。 それがカーネルトリックとも呼ばれる理由だと思います。 SVM は、次元数がサンプル数よりも多い場合に特に効果的です。 決定境界を見つけるとき、SVM はすべてのポイントではなくトレーニング ポイントのサブセットを使用するため、メモリ効率が向上します。 一方、大規模なデータセットではトレーニング時間が長くなり、パフォーマンスに悪影響を与える可能性があります。 3. ナイーブベイズ ナイーブベイズは、分類タスクのための教師あり学習アルゴリズムです。 そのため、これは Naive Bayes 分類器とも呼ばれます。 ナイーブベイズでは、特徴は互いに独立しており、特徴間に相関関係はないものと想定します。 しかし、現実にはそうではありません。 特徴は相関していないというこの単純な仮定が、このアルゴリズムが「単純」と呼ばれる理由です。 ナイーブベイズアルゴリズムの背後にある直感はベイズの定理です。 p(A | B): イベントBが発生したときにイベントAが発生する確率 p(B | A): イベントAが与えられた場合、イベントBが発生する確率 p(A): 事象Aの確率 p(B): イベントBの確率 ナイーブベイズ分類器は、特徴値のセット、つまりp(yi | x1, x2, …, xn)が与えられたクラスの確率を計算します。 これをベイズの定理に当てはめると次のようになります。 p(x1,x2,…,xn|yi)は、クラスラベルが与えられた場合の特定の特徴の組み合わせ(データセット内の観測値/行)の確率を表します。 特徴値のさまざまな組み合わせの確率分布を推定するには、非常に大規模なデータセットが必要です。 この問題を克服するために、Naive Bayes アルゴリズムでは、すべての特徴が互いに独立していると想定します。 さらに、分母 (p(x1,x2,…,xn)) は、観測値 (p(yi|x1,x2,…,xn)) が与えられた場合の 1 つのクラスの条件付き確率の値のみを正規化するため、削除できます。 クラスの確率(p(yi))は簡単に計算できます。 特徴が独立であるという仮定の下で、p(x1, x2, …, xn | yi) は次のように表すことができます。 クラスラベルが与えられた単一の特徴の条件付き確率(つまり、p(x1|yi))は、データから簡単に推定できます。 このアルゴリズムでは、各クラスごとに特徴の確率分布を個別に保存する必要があります。 たとえば、クラスが 5 つ、特徴が 10 個ある場合、50 種類の異なる確率分布を保存する必要があります。 これらすべてを組み合わせると、Naive Bayes アルゴリズムで、特徴値 (p(yi | x1, x2, …, xn)) が与えられた場合にクラスを観測する確率を計算することが容易になります。 すべての特徴が独立しているという仮定により、Naive Bayes アルゴリズムは、より複雑なアルゴリズムに比べて非常に高速になります。 場合によっては、正確さよりも速度の方が重要です。 一方、同じ仮定により、ナイーブ ベイズ アルゴリズムの精度は、より複雑なアルゴリズムよりも低くなります。 スピードには代償が伴う! 4. ロジスティック回帰 ロジスティック回帰は、主にバイナリ分類問題に使用される教師あり学習アルゴリズムです。 「回帰」という言葉は「分類」と矛盾しますが、ここでは、このアルゴリズムで分類タスクを実行するロジスティック関数を指す「ロジスティック」という言葉に焦点を当てています。 ロジスティック回帰はシンプルですが非常に効果的な分類アルゴリズムであるため、多くのバイナリ分類タスクでよく使用されます。 顧客離れ、スパム、Web サイトまたは広告のクリック予測は、ロジスティック回帰が強力なソリューションを提供する例です。 ロジスティック回帰の基礎は、シグモイド関数とも呼ばれるロジスティック関数であり、任意の実数値を取り、それを 0 から 1 の間の値にマッピングできます。 次の線形方程式を解く必要があるとします。 ロジスティック回帰モデルは、線形方程式を入力として受け取り、ロジスティック関数と対数オッズを使用してバイナリ分類タスクを実行します。 すると、有名なロジスティック回帰の形状プロットが得られます。 計算された確率はそのまま使用できます。 たとえば、出力は「このメールがスパムである確率は 95% です」または「顧客がこの広告をクリックする確率は 70% です」となります。 ただし、ほとんどの場合、データ ポイントを分類するために確率が使用されます。 例えば、確率が50%より大きい場合、予測は陽性クラス(1)になります。 それ以外の場合、予測は負のクラス (0) になります。 確率値が 50% を超える場合、必ずしも正のクラスを選択することが望ましいとは限りません。 スパムの場合、メールをスパムとして分類することがほぼ確実です。 スパムとして検出されたメールはスパム フォルダーに直接送信されるため、ユーザーが重要なメールを見逃すことがないようにする必要があります。 電子メールは、ほぼ確実にスパムであると判断されない限り、スパムとして分類されません。 一方、健康関連の問題におけるトリアージには、より敏感であることが求められます。 たとえ細胞が悪性であるという疑いがあったとしても、それを見逃したくはありません。 したがって、正クラスと負クラス間のしきい値として使用される値は、問題によって異なります。 良い点は、ロジスティック回帰によってこのしきい値を調整できることです。 5. K近傍法(kNN) K 近傍法 (kNN) は、分類および回帰タスクを解決するために使用できる教師あり学習アルゴリズムです。 kNN の背後にある基本的な考え方は、データ ポイントの値またはクラスは、それを囲むデータ ポイントによって決定されるというものです。 kNN 分類器は、多数決によってデータ ポイントのカテゴリを決定します。 たとえば、k を 5 に設定すると、最も近い 5 つのポイントのクラスがチェックされます。 多数派クラスに基づいて予測を行います。 同様に、kNN 回帰では最も近い 5 つのポイントの平均が取得されます。 例を見てみましょう。 4 つの異なるクラスに属する次のデータ ポイントを検討してください。 k の値に応じて予測クラスがどのように変化するかを見てみましょう。 k の最適値を決定することは非常に重要です。 k が低すぎると、モデルが特殊になりすぎて、一般化がうまくいきません。 また、ノイズに対しても敏感になる傾向があります。 このモデルはトレーニングでは高い精度を達成しますが、新しい、これまで見たことのないデータ ポイントに対する予測能力は低くなります。 したがって、過剰適合したモデルになってしまう可能性が高くなります。 一方、k が大きすぎると、モデルが一般化しすぎて、トレーニング セットとテスト セットの両方で適切な予測子にはなりません。 この状況はアンダーフィッティングと呼ばれます。 kNNはシンプルで理解しやすいです。 仮定を行わないため、非線形タスクにも実装できます。 データ ポイントの数が増えると、モデルがすべてのデータ ポイントを保存する必要があるため、kNN は非常に遅くなります。 したがって、これも有効なメモリではありません。 kNN のもう 1 つの欠点は、外れ値に敏感であることです。 6. 決定木 決定木は、データを分割するために繰り返し質問することで構築されます。 決定木の視覚的表現を使用して、分割されたデータをより簡単に概念化します。 これは顧客離脱を予測するための意思決定ツリーを表します。 最初の区分は月額料金の額に基づきます。 その後、アルゴリズムはクラス ラベルを分離するために質問を続けます。 ツリーを深く進むにつれて、質問はより具体的になります。 決定木アルゴリズムの目的は、モデルがデータセットに関する情報を継続的に取得できるように、各パーティションの予測可能性を可能な限り向上させることです。 多くの場合、特徴をランダムに分割しても、データセットに関する洞察は得られません。 ノードの純度を高める分割は、参照としてより価値があります。 ノードの純度は、そのノード内のさまざまなクラスの分布に反比例します。 質問は、純度を高めたり、不純物を減らしたりする方法で選択されます。 いくつの質問をすればよいのでしょうか? いつやめればよいのでしょうか? 分類問題に対してツリーが十分な性能を発揮するのはいつでしょうか? これらすべての質問に対する答えは、機械学習における最も重要な概念の 1 つである「過剰適合」につながります。 モデルは、すべてのノードが純粋になるまで質問を続けることができます。 しかし、これは過度に具体的なモデルであり、一般化がうまくいきません。 トレーニング セットでは高い精度を達成しますが、新しい、これまでに見たことのないデータ ポイントではパフォーマンスが低下し、過剰適合を示します。 scikit-learn の決定木アルゴリズムのツリーの深さは、max_depth パラメータによって制御されます。 決定木アルゴリズムでは、通常、特徴の正規化やスケーリングは必要ありません。 また、混合フィーチャ データ タイプ (連続、カテゴリ、バイナリ) でも機能します。 欠点は、簡単に過剰適合する可能性があるため、適切に一般化するには集約が必要であることです。 6. ランダムフォレスト ランダム フォレストは、多数の決定木の集合体です。 ランダム フォレストは、バギングと呼ばれる方法を使用して構築されます。この方法では、決定木が並列推定器として使用されます。 分類問題に使用する場合、結果は各決定木から受け取った結果の多数決に基づきます。 回帰の場合、リーフノードの予測は、そのリーフ内のターゲット値の平均になります。 ランダム フォレスト回帰は、決定木の結果の平均を取得します。 ランダム フォレストは過剰適合のリスクを軽減し、単一の決定木よりもはるかに高い精度を実現します。 さらに、ランダムフォレスト内の決定木は並行して実行されるため、時間がボトルネックになることはありません。 ランダム フォレストの成功は、相関のない決定木の使用に大きく依存します。 同じまたは非常に類似したツリーを使用すると、全体的な結果は単一の決定木の結果と区別がつかなくなります。 ランダム フォレストは、ブートストラップと特徴のランダム性を通じて相関のない決定木を実現します。 ブートストラップでは、トレーニング データからランダムにサンプルを選択して置き換えます。 これらはブートストラップ サンプルと呼ばれます。 > ブートストラップサンプル(図の出典) 特徴のランダム性は、ランダム フォレスト内の各決定木の特徴をランダムに選択することによって実現されます。 ランダム フォレスト内の各ツリーで使用される機能の数は、max_features パラメータを使用して制御できます。 > 機能のランダム性 ランダム フォレストは、さまざまな問題に対応する非常に正確なモデルであり、正規化やスケーリングを必要としません。 ただし、高速線形モデル (Naive Bayes など) と比較すると、高次元データセット (テキスト分類など) には適していません。 7. 勾配ブースティング決定木 (GBDT) GBDT は、ブースティング法を使用して個々の決定木を組み合わせるアンサンブル アルゴリズムです。 ブースティングとは、一連の学習アルゴリズムを連続的に連鎖させて、連続的に接続された多数の弱い学習者から強い学習者を取得することを意味します。 GBDT の場合、弱学習者は決定木です。 各ツリーは、前のツリーのエラーを最小化しようとします。 Boosting のツリーは学習能力が弱いツリーですが、多数のツリーが連続して追加され、各ツリーが前のツリーのエラーに焦点を当てているため、効率的で正確なモデルを構築できます。 バギングとは異なり、ブースティングではブートストラップ サンプリングは行われません。 新しいツリーが追加されるたびに、そのツリーは初期データセットの修正バージョンに適合されます。 ツリーは順番に追加されるため、ブースティング アルゴリズムはゆっくりと学習します。 統計学習では、ゆっくり学習するモデルの方がパフォーマンスが優れています。 損失関数は残差を検出するために使用されます。 たとえば、平均二乗誤差 (MSE) は回帰タスクに使用でき、対数損失 (log loss) は分類タスクに使用できます。 新しいツリーを追加しても、モデル内の既存のツリーは変更されないことに注意することが重要です。 追加された決定木は、現在のモデルの残差に適合します。 学習率と n_estimator は、勾配ブースティング決定木の 2 つの重要なハイパーパラメータです。 学習率は α として表され、モデルが学習する速度を単純に示します。 新しいツリーごとにモデル全体が変更されます。 変更のサイズは学習率によって制御されます。 n_estimator はモデルで使用されるツリーの数です。 学習率が低い場合は、モデルをトレーニングするためにさらに多くのツリーが必要になります。 ただし、木の数を選択する際には細心の注意を払う必要があります。 ツリーを多用しすぎると、過剰適合のリスクが高くなります。 GBDT は分類タスクと回帰タスクの両方に非常に効果的であり、ランダム フォレストに比べてより正確な予測を提供します。 混合タイプの機能を処理でき、前処理は必要ありません。 GBDT では、モデルの過剰適合を防ぐためにハイパーパラメータを慎重に調整する必要があります。 GBDT アルゴリズムは非常に強力であるため、XGBOOST、LightGBM、CatBoost など、多くのアップグレード バージョンが実装されています。 過剰適合に関する注意 ランダム フォレストと勾配ブースティング決定木の主な違いは、モデルで使用されるツリーの数です。 ランダムフォレスト内のツリーの数を増やしても、過剰適合は発生しません。 ある時点を超えると、ツリーを追加してもモデルの精度は向上しませんが、ツリーを追加しすぎても悪影響はありません。 計算上の理由から、不必要なツリーを追加したくはありませんが、ランダム フォレスト内のツリーの数に関連する過剰適合のリスクはありません。 ただし、勾配ブースティング決定木のツリーの数は、過剰適合の観点から非常に重要です。 ツリーを追加しすぎると過剰適合につながる可能性があるため、ツリーの追加を停止することが重要です。 8. K平均法クラスタリング クラスタリングは、一連のデータ ポイントをグループ化する方法、つまり類似したデータ ポイントをグループ化する方法です。 したがって、クラスタリング アルゴリズムは、データ ポイント間の類似点または相違点を探します。 クラスタリングは教師なし学習方法であるため、データ ポイントに関連付けられたラベルはありません。 クラスタリング アルゴリズムは、データの基礎となる構造を見つけようとします。 クラスタリングは分類ではありません。 分類タスクの観察 (またはデータ ポイント) にはラベルが付けられます。 各観察はいくつかの測定値に従って分類されます。 分類アルゴリズムは、観測値の測定値 (特徴) とそれに割り当てられたカテゴリとの関係をモデル化しようとします。 次に、モデルは新しい観測値のクラスを予測します。 K 平均法クラスタリングは、同じクラスター内のデータ ポイントは類似し、異なるクラスター内のデータ ポイントは離れるように、データを k 個のクラスターに分割することを目的としています。 したがって、これはパーティションベースのクラスタリング手法です。 2 つの点の類似性は、それらの間の距離によって決まります。 K 平均法クラスタリングは、クラスター内の距離を最小化し、異なるクラスター間の距離を最大化しようとします。 K-means アルゴリズムではクラスターの数を決定できません。 KMeans オブジェクトを作成するときは、それを定義する必要がありますが、これは困難な作業になる可能性があります。 データセットの次の 2D 視覚化を検討してください。 次の 4 つの異なるクラスターに分けられます。 実際のデータセットははるかに複雑で、クラスターは明確に分離されていません。 ただし、アルゴリズムは同じように動作します。 K-means は反復的なプロセスです。 これは期待最大化アルゴリズムに基づいています。 クラスターの数を決定した後、次の手順を実行して動作します。
K-Means クラスタリングは比較的高速で、解釈も簡単です。 また、初期の重心の位置をインテリジェントな方法で選択し、収束を早めます。 k-means の課題の 1 つは、クラスターの数を事前に決定する必要があることです。 K-means アルゴリズムでは、データ内に存在するクラスターの数を推測できません。 データ内のグループを分離する非線形構造がある場合、k-means は適切な選択ではありません。 9. 階層的クラスタリング 階層的クラスタリングとは、データ ポイントを繰り返しグループ化または分離してクラスター ツリーを作成することを意味します。 階層的クラスタリングには 2 つのタイプがあります。
階層的クラスタリングの利点の 1 つは、クラスターの数を指定する必要がないことです (指定することもできます)。 凝集型クラスタリングはボトムアップのアプローチです。 まず、各データ ポイントが個別のクラスターであると想定します。 次に、類似のクラスターが反復的に結合されます。 上記の図は、ツリーベースのアプローチを表すデンドログラムと呼ばれます。 階層的クラスタリングでは、クラスター間の関係を視覚化するためにデンドログラムが使用されます。 階層的クラスタリングの利点の 1 つは、事前にクラスターの数を指定する必要がないことです。 ただし、すべてのデータ ポイントを 1 つのクラスターに結合するのは賢明ではありません。 ある時点でクラスターのマージを停止する必要があります。 Scikit-learn では、次の 2 つのオプションが提供されています。
分割クラスタリングは実生活ではあまり使われないので、簡単に説明します。 単純かつ明確な説明は、分割型クラスタリングは凝集型クラスタリングの反対であるということです。 まず、すべてのデータ ポイントを含む 1 つの巨大なクラスターから始めます。 次に、データ ポイントは異なるクラスターに分割されます。 これはボトムアップのアプローチです。 階層的クラスタリングでは常に同じクラスターが生成されます。 K 平均法クラスタリングでは、重心 (クラスター センター) の開始方法に応じて、異なるクラスターが生成されます。 ただし、k-means と比較すると遅いアルゴリズムです。 階層的クラスタリングは、特に大規模なデータセットの場合、実行に長い時間がかかります。 10. DBSCAN クラスター パーティションベースの階層的クラスタリング手法は、標準的な形状のクラスターに非常に効率的です。 ただし、任意の形状のクラスターや外れ値の検出に関しては、密度ベースの手法の方が効果的です。 > 任意の形状のクラスター > 任意の形状のクラスター DBSCAN は、ノイズを含むアプリケーションの密度ベースの空間クラスタリングの略です。 任意の形状のクラスターやノイズ (外れ値) を含むクラスターを見つけることができます。 DBSCAN の主な考え方は、あるポイントがクラスター内の多くのポイントに近い場合、そのポイントはクラスターに属するというものです。 DBSCAN には 2 つの重要なパラメータがあります。
これら 2 つのパラメータに基づいて、ポイントはコア ポイント、境界ポイント、または外れ値として分類されます。
DBSCAN では、クラスターの数を事前に指定する必要はありません。 外れ値に対して堅牢であり、外れ値を検出することができます。 場合によっては、適切な近傍 (eps) 距離を決定するのは簡単ではなく、ドメイン知識が必要になります。 11. 主成分分析(PCA) PCA は次元削減アルゴリズムであり、基本的には可能な限り多くの情報を保持しながら既存の特徴から新しい特徴を導き出します。 PCA は教師なし学習アルゴリズムですが、教師あり学習アルゴリズムの前処理手順としても広く使用されています。 PCA は、データセット内の特徴間の関係を見つけることで新しい特徴を推測します。 注: PCA は線形次元削減アルゴリズムです。 非線形手法も利用できます。 PCA の目的は、より少ない特徴 (または列) を使用して、元のデータセットの分散を可能な限り説明することです。 新しく導き出された特徴は主成分と呼ばれます。 主成分の順序は、それらが説明する元のデータセットの分散の割合に基づいて決定されます。 主成分は、元のデータセットの特徴の線形結合です。 PCA の利点は、元のデータセットよりもはるかに少ない機能を使用して、元のデータセットの大部分を保持できることです。 主成分は、説明する変動の量に応じて順序付けられます。 |
<<: 最高の顔認識アルゴリズムでもマスクによって妨害される可能性がある:研究
>>: タッチから音声へ: 音声テクノロジーが IoT 環境をどう変えるか
1. 新しく職場に入る1. 職場に入るときに直面する問題初めて職場に入るとき、新卒から社会人へと移...
人工知能と自動化はもはやSFの世界の話ではなく、ビジネスの世界と消費者の世界の両方で非常に現実的かつ...
序文インタビュアー: 「仮想 DOM と Diff アルゴリズムをご存知ですか? 説明してください。...
テスラは、元エンジニアのアレクサンダー・ヤツコフ氏を提訴した。同氏は、同社内部のスーパーコンピュータ...
言語は思考にどのように影響しますか?人間は言語からどのように意味を引き出すのでしょうか?これら 2 ...
デジタル時代では、データが新たな通貨になりました。世界中の組織が、その大きな可能性を引き出すために機...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[341456]]顔スキャンでロック解除、顔スキャンで支払い、顔スキャンでキャンパスに入る......
マルチエージェント経路探索 (MAPF) は、人工知能、ロボット工学、理論計算機科学、実践的オペレー...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[352219]]人工知能は、コンピュータサイエンス業界のトップテクノロジーの一つとして、1956...