この記事の目的は、主成分分析の完全かつ単純化された説明を提供し、特にそれがどのように動作するかを段階的に答えることであり、必ずしも強い数学的背景を持たずに、誰もがそれを理解し、それを利用することができるようにすることです。
PCAは、実際にはウェブ上で広くカバーされている方法であり、それについてのいくつかの素晴らしい記事がありますが、それらのほんのわずかがポイントにまっすぐに行き、それが物事の”なぜ”にあまり飛び込むことなく、それがどのように機能するかを説明します。, それが私が単純化された方法でそれを提示するために自分の投稿を作ることに決めた理由です。
説明に入る前に、この記事では、PCAが各ステップで何をしているのかを論理的に説明し、標準化、共分散、固有ベクトル、固有値など、その背後にある数学的概念を、それらを計算する方法に焦点を当てることなく単純化します。
主成分分析とは何ですか?,
主成分分析またはPCAは、大きな変数セットを大きなセット内のほとんどの情報をまだ含んでいる小さな変数に変換することによって、大きなデータセットの次元を減らすためにしばしば使用される次元削減手法です。
データセットの変数の数を減らすことは当然のことながら精度を犠牲にしますが、次元削減のトリックは、簡単にするために少し精度を交換する, データセットが小さいほど、データの探索と視覚化が容易になり、無関係な変数を処理することなく機械学習アルゴリズムでデータの分析がはるかに簡
要約すると、PCAのアイデアは簡単です—できるだけ多くの情報を保存しながら、データセットの変数の数を減らします。
Pcaのステップバイステップ説明
ステップ1:標準化
このステップの目的は、連続初期変数の範囲を標準化し、それぞれが分析に等しく,
より具体的には、PCAの前に標準化を行うことが重要である理由は、後者が初期変数の分散に関して非常に敏感であることである。 つまり、初期変数の範囲に大きな違いがある場合、範囲が大きい変数が範囲が小さい変数よりも優先されます(たとえば、0から100の範囲の変数が0から1の範囲の変数よりも優先されます)。 なので、変換のデータが同様のスケールを防止できます。,
数学的には、これは平均を減算し、各変数の各値の標準偏差で除算することによって行うことができます。
標準化が完了すると、すべての変数が同じスケールに変換されます。
ステップ2:共分散行列計算
このステップの目的は、入力データセットの変数が互いに対して平均からどのように変化しているかを理解すること、つまり、それらの間に何らかの関係があるかどうかを確認することです。, なぜなら、変数は冗長な情報を含むような方法で高度に相関していることがあるからです。 したがって、これらの相関を識別するために、共分散行列を計算します。
共分散行列は、初期変数のすべての可能なペアに関連付けられた共分散をエントリとして持つp×p対称行列(ここで、pは次元数)です。, たとえば、3つの変数x、y、zを持つ3次元データセットの場合、共分散行列は次の3×3行列になります。
その分散(cov(a、a)=var(a))であり、主対角(左上から右下)では、実際には各初期変数の分散があります。, 共分散は可換であるため(Cov(a,b)=Cov(b,a))、共分散行列の要素は主対角に対して対称であり、これは上三角部分と下三角部分が等しいことを意味します。
行列のエントリとして持っている共分散は、変数間の相関について何を教えてくれますか?,
それは実際に重要な共分散の符号です:
- 正の場合:二つの変数が一緒に増加または減少(相関)
- 負の場合:一方が他方が減少すると増加する(逆相関)
さて、共分散行列は、変数の可能なすべてのペア間の相関を要約するテーブル以上ではないことを知っているので、次のステップに進みましょう。,
ステップ3:共分散行列の固有ベクトルと固有値を計算して主成分を識別する
固有ベクトルと固有値は、データの主成分を決定するために共分散行列から計算する必要がある線形代数の概念です。 これらの概念の説明に入る前に、まず主成分が何を意味するのかを理解しましょう。
主成分は、線形結合または初期変数の混合物として構成される新しい変数である。, これらの組み合わせは、新しい変数(すなわち、主成分)が無相関であり、初期変数内の情報のほとんどが最初の成分に圧縮または圧縮されるように行わ したがって、10次元のデータは10の主成分を与えますが、PCAは最初の成分に最大の可能な情報を入れ、次に第二の残りの情報を入れようとします。,
このようにして主成分の情報を整理することで、情報の少ない成分を破棄し、残りの成分を新しい変数として考慮することによって、多くの情報を失うことなく次元を減らすことができます。,
ここで重要なことは、主成分は解釈可能ではなく、初期変数の線形結合として構築されるため、実際の意味を持たないということです。
幾何学的に言えば、主成分は、最大の分散量を説明するデータの方向、すなわち、データのほとんどの情報をキャプチャする線を表す。, ここでの分散と情報との関係は、線によって運ばれる分散が大きいほど、それに沿ったデータ点の分散が大きくなり、線に沿った分散が大きいほど、それが有する情報が多くなるということである。 これらすべてを簡単に言えば、データを見て評価するのに最適な角度を提供する新しい軸として主成分を考えるだけで、観測間の差がよりよく見えるようになります。
このようなより多くのデータサイエンスの物語を得るために無料でサインアップしてください。,
PCAが主成分を構築する方法
データに変数があるのと同じ数の主成分があるため、主成分は、最初の主成分がデータセット内の可能な限り大きな分散を占めるように構築されます。 たとえば、データセットの散布図が以下に示すようになっていると仮定しましょう、最初の主成分を推測することができますか?, はい、それは原点を通過し、点(赤い点)の投影が最も広がっている線であるため、紫色のマークとほぼ一致する線です。 または数学的に言えば、分散を最大化するのは線です(投影された点(赤い点)から原点までの二乗距離の平均)。
第二の主成分は、第一の主成分と無相関(すなわち垂直)であり、次に高い分散を占めるという条件で、同じ方法で計算されます。,
これは、元の変数の数に等しい合計pの主成分が計算されるまで続きます。
主成分が何を意味するのか理解したので、固有ベクトルと固有値に戻りましょう。 あなたが最初にそれらについて知る必要があるのは、それらが常にペアで来るので、すべての固有ベクトルが固有値を持つということです。 そして、その数はデータの次元数に等しい。 たとえば、3次元データセットの場合、3つの変数があるため、3つの対応する固有値を持つ3つの固有ベクトルがあります。,なぜなら、共分散行列の固有ベクトルは、実際には最も分散(ほとんどの情報)があり、主成分と呼ばれる軸の方向であるからです。 そして、固有値は単に固有ベクトルに付けられた係数であり、各主成分に運ばれる分散の量を与えます。
固有ベクトルを固有値の高い順にランク付けすることにより、重要な順に主成分が得られます。,
例:
データセットが2次元で2つの変数x,yがあり、共分散行列の固有ベクトルと固有値が次のようになるとしましょう。
固有値を降順にランク付けすると、φ1>φ2第一の主成分(pc1)はv1であり、第二の成分(pc2)に対応するものはv2である。,
主成分を得た後、各成分によって占められる分散(情報)の割合を計算するために、各成分の固有値を固有値の合計で割ります。 上記の例でこれを適用すると、PC1とPC2はそれぞれデータの分散の96%と4%を運ぶことがわかります。
ステップ4:特徴ベクトル
前のステップで見たように、固有ベクトルを計算し、それらの固有値で降順に並べ替えることで、重要な順に主成分を見つけることができます。, このステップでは、これらの成分をすべて保持するか、あまり意味のない(低固有値の)成分を破棄するかを選択し、残りの成分を特徴ベクトルと呼ぶベクトルの行列として形成することです。
したがって、特徴ベクトルは単に列として保持することを決定した成分の固有ベクトルを持つ行列です。 なぜなら、nからp個の固有ベクトル(成分)のみを保持することを選択すると、最終的なデータセットはp個の次元しか持たなくなるからです。,
例:
前のステップの例を続けると、固有ベクトルv1とv2の両方を持つ特徴ベクトルを形成することができます。
あるいは、あまり意味のない固有ベクトルv2を破棄し、v1のみを持つ特徴ベクトルを形成することができます。
固有ベクトルv2を破棄します。次元を1だけ減らし、最終的なデータセットの情報を失う原因となります。, しかし、v2が情報の4%しか運んでいなかったことを考えると、損失は重要ではなく、96%の情報がv1によって運ばれることになります。
したがって、この例で見たように、探しているものに応じて、すべてのコンポーネントを保持するか、あまり意味のないコンポーネントを破棄するかを選 なぜなら、次元を減らそうとせずに相関のない新しい変数(主成分)に関してデータを記述したいだけなら、有意でない成分を除外する必要はないからで,
最後のステップ:主成分軸に沿ったデータの再キャスト
前のステップでは、標準化とは別に、データに変更を加えず、主成分を選択して特徴ベクトルを形成するだけですが、入力データセットは常に元の軸(すなわち初期変数)に基づいて残ります。,
最後のステップでは、共分散行列の固有ベクトルを使用して形成された特徴ベクトルを使用して、元の軸から主成分で表されるものにデータを再配向することを目的としています(したがって、主成分分析と呼ばれます)。 これは、元のデータセットの転置に特徴ベクトルの転置を掛けることによって行うことができます。
***
Zakaria Jaadiはデータサイエンティストおよび機械学習エンジニアです。 Mediumのデータサイエンストピックに関する彼のコンテンツの詳細を
Leave a Reply