ホームページ  >  記事  >  バックエンド開発  >  Python での主成分分析の例

Python での主成分分析の例

王林
王林オリジナル
2023-06-10 08:19:53903ブラウズ

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 サイトの他の関連記事を参照してください。

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