回答:
誰かが教師なし手法としてラベルを付けることは珍しくありません。固有ベクトルを分析すると、データの動作を説明するのに役立ちます。当然、変換にまだ多くの機能がある場合、このプロセスはかなり難しくなる可能性があります。それにもかかわらず、それは可能であるため、私はそれを機械学習と考えています。
編集:
私の回答が選択されたので(理由がわからない)、詳細をさらに追加すると考えました。
PCAは同等の2つのことを行います。まず、一般的に言及されていることは、分散を最大化することです。第二に、ペアワイズ距離を調べることにより、再構成エラーを最小限に抑えます。
固有ベクトルと固有値を確認することで、どの変数と特徴が分散に寄与しているか、また異なる変数が他の変数と連動してどのように動くかを推測するのはかなり簡単になります。
結局、それは本当にあなたが「学習」をどのように定義するかに依存します。PCAは、元のスペースの特性を取り込む新しいフィーチャースペースを学習します。それは意味のあることだと思いがちです。
複雑ですか?いいえ、実際にはそうではありませんが、それはアルゴリズムとしてそれを減少させますか?いいえ、そうは思いません。
PCAは実際にはローテーションです。真剣に、それがすべてです。それは、データを新しい基礎の上に回転させる賢い方法です。この基礎には、いくつかの手順の前処理ステップとして役立つ特性があります。
基本は正規直交です。これは、機能が多重共線性を示す場合(2つ以上の機能が線形依存する場合)に非常に役立ちます。PCAを適用すると、これが問題ではなくなったことが保証されます。この手順は主成分回帰として知られています
基底ベクトルは、データの広がりに関して意味があります。これらは、共分散行列の固有ベクトルです。この2番目の特性は、次元削減手法としてのPCAの有名なユーティリティを生み出します。データを回転させた後、全分散のかなりの部分に関連付けられた基底ベクトルのサブセットにデータを投影すると、(多くの場合)保持される低次元表現が生成されます(ほとんどの)データの(興味深い)構造特性。
だから:それは学習アルゴリズムですか?これは一種の哲学的問題です。何かを学習アルゴリズムにするものは何ですか?確かに、PCAはターゲット変数の有無にかかわらず実行できるため、「教師あり」学習アルゴリズムではありません。一般に、「教師なし」手法をクラスタリングに関連付けます。
はい、PCAは前処理手順です。しかし、何かを「学習」していないと完全に書き留める前に、次のことを検討してください。PCAは、共分散行列の固有ベクトルを文字どおり取得することによって計算できますが、実際には、これは一般的に行われている方法ではありません。数値的に同等で計算効率の高い手順は、データのSVDを取得することです。したがって、PCAはSVDの特定のアプリケーションにすぎないため、PCAが学習アルゴリズムであるかどうかを確認することは、SVDが学習アルゴリズムであるかどうかを確認することです。
さて、PCAを学習アルゴリズムとして書くのは快適だと感じるかもしれませんが、これがSVDで同じことを行うことにあまり慣れていない理由です。これは、トピックモデリングと協調フィルタリングのための驚くほど強力な方法です。これらのアプリケーションに役立つSVDのプロパティは、次元削減(PCAなど)に役立つプロパティとまったく同じです。
SVDは固有分解の一般化であり、SVDの制約バージョンとしても非常に強力です。隣接行列の固有ベクトルを調べてグラフでコミュニティ検出を実行するか、遷移行列の固有ベクトルを調べてマルコフモデルの定常状態の確率を判断できます。これは、偶然にも、基本的にPageRankの計算方法でもあります。
内部では、PCAは単純な線形代数演算を実行しています。しかし、これは多くのアプリケーションの基礎となる操作とまったく同じであり、ほとんどの人は「機械学習」というラベルの適用に疑問を呈しません。このクラスのアルゴリズムはMatrix Factorizationと呼ばれ、word2vecのような洗練された手法にまで拡張されます。実際、実際には、文字列の共起行列にPCAを適用するだけで実際にword2vecのような結果を得ることができます。もう一度一般化して、PCAの結果のもう1つの言葉は、埋め込みです。Word2vecはおそらく埋め込みの最も有名な例ですが、埋め込みを(中間体として)構築することも、RNNで使用されるエンコーダー/デコーダーアーキテクチャの重要なコンポーネントですとGANは、現在ML研究の最先端です。
では、あなたの質問に戻ります。PCAは「機械学習アルゴリズム」ですか。そうでない場合は、協調フィルタリング、トピックモデリング、コミュニティ検出、ネットワークの中心性、および埋め込みモデルについても同様に言う準備をする必要があります。
単純な線形代数だからといって、それが魔法でもないということではありません。
PCAは、冗長な機能を排除するために使用されます。これは、データが高度に分散している方向を検出します。これは、最小二乗の意味でデータを表す投影であるため、データのラベルを気にしません。複数の判別分析では、データMDA
を最も適切に分離する予測を見つけます。後者はラベルを考慮して、データを最もよく分離できる方向を見つけますが、見つける決定の種類に関する詳細はいくつかあります。まとめるとPCA
、学習アルゴリズムではありません。相関する特徴を排除するために、どのデータが高度に分散されているかを見つけることを試みます。MDA
データを分類するために方向を見つけようとするような同様のアプローチ。がMDA
そんなに似ていますPCA
、ただし前者は分類に使用され、ラベルを考慮しますが、後者は直接分類に使用されません。