ホームページ  >  記事  >  バックエンド開発  >  Python での PCA 主成分分析 (次元削減) 手法

Python での PCA 主成分分析 (次元削減) 手法

王林
王林オリジナル
2023-06-09 21:57:062807ブラウズ

Python における PCA 主成分分析 (次元削減) スキル

PCA (主成分分析) 主成分分析は、非常に一般的に使用されるデータの次元削減テクノロジです。 PCA アルゴリズムを使用すると、データを処理してデータ固有の特性を発見し、その後のデータ分析とモデリングのためのより正確かつ効果的なデータ収集を提供できます。

以下では、Python で PCA 主成分分析を使用するためのテクニックをいくつか紹介します。

  1. データを正規化する方法

PCA 次元削減分析を実行する前に、まずデータを正規化する必要があります。これは、PCA アルゴリズムが単に要素値のサイズではなく、分散の最大化を通じて主成分を計算するため、各要素の対応する分散の影響が完全に考慮されるためです。

Python にはデータ正規化のためのメソッドが多数あります。最も基本的な方法は、sklearn ライブラリの StandardScaler クラスを使用して、データを平均 0、分散 1 の標準正規分布に標準化することです。コードは次のとおりです。正規化されたデータを取得できます。処理されたデータのコレクション data_std。

PCA を使用した次元削減
  1. PCA を使用してデータの次元を削減するコードは非常に簡単です。 PCA モジュールは sklearn ライブラリに統合されており、PCA クラスを呼び出すときに次元削減後に保持される主成分の数を設定するだけで済みます。たとえば、次のコードはデータを 2 つの主成分に削減します。
from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
data_std = scaler.fit_transform(data)

このうち、data_pca は PCA 次元削減処理後の新しいデータを返します。

次元削減後の主成分の数を選択する方法
  1. 実際にデータの次元削減に PCA を使用する場合、達成するために適切な主成分の数を選択する必要があります。最高の次元削減効果。通常は、累積分散寄与率グラフをプロットすることで判断できます。

累積分散寄与率は、合計分散に対する最初の n 個の主成分の分散の合計のパーセンテージを表します。例:

from sklearn.decomposition import PCA

pca = PCA(n_components=2)
data_pca = pca.fit_transform(data_std)

累積分散寄与率グラフを描画すると、主成分の数を 1 から徐々に増加させたときの累積分散寄与率の変化傾向を観察して、適切な主成分の数を推定できます。コードは次のとおりです。

import numpy as np

pca = PCA()
pca.fit(data_std)

cum_var_exp = np.cumsum(pca.explained_variance_ratio_)

図の赤い線は累積分散寄与率を表し、x 軸は主成分の数を表し、y 軸は説明された分散の割合を表します。最初の 2 つの主成分の分散寄与率は 1 に近いため、2 つの主成分を選択することでほとんどの分析タスクのニーズを満たすことができることがわかります。

PCA 次元削減後のデータを視覚化する方法
  1. 最後に、matplotlib ライブラリの散布関数を使用して、PCA 次元削減後のデータを視覚化できます。たとえば、次のコードは、PCA によって元の 4 次元のデータを 2 次元に削減し、それを視覚的に表示します。
import matplotlib.pyplot as plt

plt.bar(range(1, 6), pca.explained_variance_ratio_, alpha=0.5, align='center')
plt.step(range(1, 6), cum_var_exp, where='mid')
plt.ylabel('Explained variance ratio')
plt.xlabel('Principal components')
plt.show()

図内の色とラベルは、それぞれ元のデータの数値ラベルに対応します。視覚化を通じて データの次元を削減することで、データの構造と特性をより深く理解できるようになります。

つまり、PCA 主成分分析テクノロジを使用すると、データの次元を削減できるため、データの構造と特性をより深く理解できるようになります。 Python の sklearn ライブラリと matplotlib ライブラリを使用すると、PCA アルゴリズムを非常に簡単に実装して視覚化できます。

以上がPython での PCA 主成分分析 (次元削減) 手法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。