機械学習におけるPCA:前提条件、適用手順、アプリケーション
公開: 2020-11-12目次
MLの次元削減を理解する
ML(Machine Learning)アルゴリズムは、開発およびテスト時に機能セットと呼ばれる可能性のあるいくつかのデータを使用してテストされます。 開発者は、特定のMLモデル/アルゴリズムのパフォーマンスを向上させるために、機能セットの入力変数の数を減らす必要があります。
たとえば、多数の列を持つデータセットがある場合、または3D空間に点の配列があるとします。 その場合、MLで次元削減手法を適用することにより、データセットの次元を削減できます。 PCA(主成分分析)は、ML開発者/テスターによって広く使用されている次元削減手法の1つです。 機械学習におけるPCAの理解をさらに深く掘り下げましょう。
主成分分析
PCAは、データセットの次元を縮小するために使用される教師なし統計手法です。 多くの入力変数またはより高い次元を持つMLモデルは、より高い入力データセットで操作すると失敗する傾向があります。 PCAは、さまざまな変数間の関係を識別し、それらを結合するのに役立ちます。 PCAは、従うべきいくつかの仮定に基づいて機能し、開発者が標準を維持するのに役立ちます。
PCAには、データセット内の変数をPC(主成分)と呼ばれる新しい変数セットに変換することが含まれます。 主成分は、指定されたデータセット内の元の変数の数に等しくなります。
最初の主成分(PC1)には、以前の変数に存在していた最大の変動が含まれており、この変動は、下位レベルに移動するにつれて減少します。 最終的なPCは変数間の変動が最も少なく、機能セットの次元を減らすことができます。
PCAの仮定
PCAには、MLでのこの次元削減手法の正確な機能につながるため、従うべきいくつかの仮定があります。 PCAの前提条件は次のとおりです。

•データセットには線形性が必要です。つまり、変数が線形に結合してデータセットを形成します。 変数はそれらの間の関係を示します。
•PCAは、分散の大きい主成分に注意を払う必要があると想定し、分散の小さいPCはノイズとして無視されます。 ピアソン相関係数の枠組みがPCAの起源につながり、そこで最初に、分散の大きい軸のみが主成分に変換されると想定されていました。
•すべての変数は、同じ比率の尺度でアクセスする必要があります。 最も好ましい基準は、5:1の比率測定でサンプルセットを少なくとも150回観測することです。
•データセット内の他のデータポイントから外れ値とも呼ばれる極端な値は、小さくする必要があります。 外れ値の数が増えると、実験エラーが発生し、MLモデル/アルゴリズムが劣化します。
•機能セットは相互に関連付けられている必要があり、PCAを適用した後に削減された機能セットは、元のデータセットを表しますが、より少ない次元で効果的な方法で表されます。
必読:インドの機械学習給与
PCAを適用するための手順
MLモデル/アルゴリズムにPCAを適用する手順は次のとおりです。
•PCAを適用するには、データの正規化が非常に必要です。 スケーリングされていないデータは、データセットの相対比較で問題を引き起こす可能性があります。 たとえば、ある2Dデータセットの列の下に数値のリストがある場合、それらの数値の平均がすべての数値から差し引かれ、2Dデータセットが正規化されます。 データの正規化は、3Dデータセットでも実行できます。
•データセットを正規化したら、さまざまな次元間の共分散を見つけて、それらを共分散行列に入れます。 共分散行列の非対角要素は、変数の各ペア間の共分散を表し、対角要素は、各変数/次元の分散を表します。
任意のデータセットに対して作成された共分散行列は、常に対称になります。 共分散行列はデータの関係を表し、各主成分の分散量を簡単に理解できます。
•プロット内の直交基底でデータの変動性を表す共分散行列の固有値を見つける必要があります。 また、データ間の最大分散が発生する方向を表す共分散行列の固有ベクトルを見つける必要があります。
共分散行列「C」に、「C」の固有値の正方行列「E」があるとします。 その場合、次の方程式を満たす必要があります–(EI – C)= 0の行列式。ここで、「I」は「C」と同じ次元の単位行列です。 固有値の計算のみが可能であるため、それらの共分散行列が対称/正方行列であることを確認する必要があります。

•固有値を昇順/降順で配置し、より高い固有値を選択します。 続行する固有値の数を選択できます。 小さい固有値を無視すると一部の情報が失われますが、これらの微細な値は最終結果に十分な影響を与えません。
選択したより高い固有値が、更新された機能セットの次元になります。 また、相対的に選択された固有値の固有ベクトルで構成されるベクトル行列である特徴ベクトルを形成します。
•特徴ベクトルを使用して、分析中のデータセットの主成分を見つけます。 特徴ベクトルの転置とスケーリングされた行列(正規化後のデータのスケーリングされたバージョン)の転置を乗算して、主成分を含む行列を取得します。
最も高い固有値がデータに適切であり、他の固有値はデータセットに関する多くの情報を提供しないことに気付くでしょう。 これは、データセットの次元を縮小するときにデータが失われていないことを証明しています。 私たちはそれをより効果的に表現しているだけです。
これらのメソッドは、PCA内のデータセットの次元を最終的に削減するために実装されます。
PCAのアプリケーション
データは多くのセクターで生成されており、企業/企業の成長のためにデータを分析する必要があります。 PCAは、データの次元を縮小するのに役立ち、分析を容易にします。 PCAのアプリケーションは次のとおりです。
•神経科学–神経科学者は、PCAを使用してニューロンを識別したり、相転移中の脳構造をマッピングしたりします。
•金融– PCAは、債券ポートフォリオを作成するためにデータの次元を減らすために金融セクターで使用されます。 金融セクターの他の多くの側面には、収益の予測、資産配分アルゴリズムまたは株式アルゴリズムの作成などのPCAが含まれます。
•画像技術– PCAは、画像圧縮またはデジタル画像処理にも使用されます。 各画像は、各ピクセルの強度値をプロットすることでマトリックスを介して表すことができ、次にPCAを適用できます。
•顔認識–顔認識のPCAは、顔認識をより正確にする固有顔の作成につながります。
•医療– PCAは、さまざまな変数間の相関関係を見つけるために多くの医療データで使用されます。 たとえば、医師はPCAを使用して、コレステロールと低密度リポタンパク質の相関関係を示します。

•セキュリティ–PCAを使用して異常を簡単に見つけることができます。 これは、サイバー/コンピューター攻撃を識別し、PCAの助けを借りてそれらを視覚化するために使用されます。
持ち帰りポイント
PCAは、元のデータセットの相関が弱いか相関がない場合、適用後にモデルのパフォーマンスが低下する可能性もあります。 PCAを完全に適用するには、変数を相互に関連付ける必要があります。 PCAは機能の組み合わせを提供し、元のデータセットからの個々の機能の重要性が排除されます。 分散が最も大きい主軸は、理想的な主成分です。
また読む:機械学習プロジェクトのアイデア
結論
PCAは、機能セットの次元を減らすために広く使用されている手法です。
機械学習について詳しく知りたい場合は、IIIT-BとupGradの機械学習とAIのPGディプロマをご覧ください。これは、働く専門家向けに設計されており、450時間以上の厳格なトレーニング、30以上のケーススタディと課題、IIIT-を提供します。 B卒業生のステータス、5つ以上の実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。
PCAはすべてのデータに使用できますか?
はい。 主成分分析(PCA)は、非常に高次元のデータを調べて理解する方法を提供するデータ分析手法です。 つまり、PCAは、変数の数が多いデータに適用できます。 PCAは、特定の形式のデータにのみ使用できるという一般的な誤解があります。 たとえば、多くの人は、PCAは数値の変数に対してのみ有用であると考えています。 これはそうではありません。 実際、PCAはすべてのタイプの変数で使用できます。 たとえば、PCAは、カテゴリ変数、順序変数などに適用できます。
主成分分析の制限は何ですか?
PCAは、データを分析し、2つまたは3つの最も重要な要素を抽出するための優れたツールです。 外れ値と傾向を見つけるのは素晴らしいことです。 ただし、次のようないくつかの制限があります。小さなデータセットには適していません(通常、データセットには30行を超える必要があります)。 重要な要素は見つかりませんが、値に基づいて選択します。 したがって、重要な要素を見つけることは困難です。 それはその背後にある強力な数学的構造を持っていません。 データをPCAと比較することは困難です。 非線形の関係を見つけることができません。
主成分分析の利点は何ですか?
主成分分析(PCA)は、相関している可能性のある多数の変数を、主成分と呼ばれる非常に少数の無相関変数に変換するために使用される統計手法です。 PCAは、データセットを記述するために必要な最も重要な変数を見つけることができるため、データ削減手法として使用できます。 PCAを使用して、データの内部構造に関する洞察を得るために、データ空間の次元を減らすこともできます。 これは、大規模なデータセットを処理する場合に役立ちます。