Python での主成分分析の例
主成分分析 (PCA) は、データの次元削減に一般的に使用される手法で、すべてのデータを保持したまま、高次元データの次元を低次元に削減できます。さらに多くのデータバリエーション情報が含まれる可能性があります。 Python には、PCA を実装するためのライブラリとツールが多数用意されています。この記事では、例を使用して、Python で sklearn ライブラリを使用して PCA を実装する方法を紹介します。
まず、データセットを準備する必要があります。この記事では、150 個のサンプル データを含むアヤメのデータ セットを使用します。各サンプルには 4 つの特徴量 (萼の長さと幅、花びらの長さと幅)、およびラベル (花びらの種類) が含まれています。アイリスの花)。私たちの目標は、これら 4 つの特徴の次元を削減し、最も重要な主成分を見つけることです。
まず、必要なライブラリとデータセットをインポートする必要があります。
from sklearn.datasets import load_iris from sklearn.decomposition import PCA import matplotlib.pyplot as plt iris = load_iris() X = iris.data y = iris.target
これで、PCA オブジェクトを作成して適用できるようになりました。
pca = PCA(n_components=2) X_pca = pca.fit_transform(X)
ここの PCA オブジェクトは n_components=2 を設定します。これは、処理されたデータを 2 次元平面上に表示するだけであることを意味します。元のデータ X に fit_transform を適用し、処理されたデータセット X_pca を取得します。
これで結果をプロットできます。
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y) plt.xlabel('Component 1') plt.ylabel('Component 2') plt.show()
この図では、次元削減後の 2 次元空間における Iris データ セットの分布がわかります。それぞれの点はアヤメの花のサンプルを表し、色はアヤメの花の種類を示します。
次に、主成分が何であるかを見てみましょう。
print(pca.components_)
これにより、「コンポーネント 1」と「コンポーネント 2」という 2 つのベクトルが出力されます。
[[ 0.36158968 -0.08226889 0.85657211 0.35884393]
[-0.65653988 -0.72971237 0.1757674 0.07470647]]
各要素は、元のデータ内の特徴の重みを表します。言い換えれば、主成分は、元の特徴を線形結合するために使用されるベクトルと考えることができます。結果の各ベクトルは単位ベクトルです。
各コンポーネントによって説明されるデータの分散量を確認することもできます。
print(pca.explained_variance_ratio_)
この出力には、各成分によって説明されるデータの分散の割合が表示されます。
[0.92461621 0.05301557]
これら 2 つの成分がデータの分散の合計 94% を説明していることがわかります。これは、データの特徴を非常に正確に捉えることができることを意味します。
注意すべき点の 1 つは、PCA は元のデータからすべての特徴を削除するということです。したがって、特定の機能を保持する必要がある場合は、PCA を適用する前に手動で削除する必要があります。
これは、Python の sklearn ライブラリを使用して PCA を実装する方法の例です。 PCA はあらゆる種類のデータに適用でき、高次元データから最も重要なコンポーネントを発見するのに役立ちます。この記事のコードを理解できれば、独自のデータ セットに PCA を適用することもできます。
以上がPython での主成分分析の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。