Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Teknik analisis komponen utama PCA (pengurangan dimensi) dalam Python

Teknik analisis komponen utama PCA (pengurangan dimensi) dalam Python

王林
王林asal
2023-06-09 21:57:062811semak imbas

Kemahiran analisis komponen utama PCA (pengurangan dimensi) dalam Python

Analisis komponen utama PCA (Analisis Komponen Utama) ialah teknologi pengurangan dimensi data yang sangat biasa digunakan. Data boleh diproses melalui algoritma PCA untuk menemui ciri-ciri yang wujud bagi data dan menyediakan pengumpulan data yang lebih tepat dan berkesan untuk analisis dan pemodelan data seterusnya.

Di bawah ini kami akan memperkenalkan beberapa teknik untuk menggunakan analisis komponen utama PCA dalam Python.

  1. Cara menormalkan data

Sebelum melakukan analisis pengurangan dimensi PCA, anda perlu menormalkan data terlebih dahulu. Ini kerana algoritma PCA mengira komponen utama melalui pemaksimuman varians, dan bukannya sekadar saiz nilai elemen, jadi ia mengambil kira sepenuhnya kesan varians yang sepadan bagi setiap elemen.

Terdapat banyak kaedah untuk menormalkan data dalam Python. Kaedah paling asas ialah menyeragamkan data ke dalam taburan normal piawai dengan min 0 dan varians 1 melalui kelas StandardScaler perpustakaan sklearn Kodnya adalah seperti berikut:

from sklearn.preprocessing import StandardScaler

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

Dengan cara ini, kita boleh mendapatkan data yang telah dinormalkan Data pengumpulan data yang diproses_std.

  1. Menggunakan PCA untuk pengurangan dimensi

Kod untuk menggunakan PCA untuk mengurangkan dimensi data adalah sangat mudah. Modul PCA telah disepadukan dalam perpustakaan sklearn Kami hanya perlu menetapkan bilangan komponen utama yang dikekalkan selepas pengurangan dimensi apabila memanggil kelas PCA. Sebagai contoh, kod berikut mengurangkan data kepada 2 komponen utama:

from sklearn.decomposition import PCA

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

Antaranya, data_pca mengembalikan data baharu selepas pemprosesan pengurangan dimensi PCA.

  1. Bagaimana untuk memilih bilangan komponen utama selepas pengurangan dimensi

Apabila sebenarnya menggunakan PCA untuk pengurangan dimensi data, kita perlu memilih bilangan komponen utama yang sesuai untuk mencapai kesan pengurangan Dimensi yang terbaik. Biasanya, kita boleh menilai dengan memplot graf kadar sumbangan varians kumulatif.

Kadar sumbangan varians kumulatif mewakili peratusan jumlah varians n komponen utama pertama kepada jumlah varians, contohnya:

import numpy as np

pca = PCA()
pca.fit(data_std)

cum_var_exp = np.cumsum(pca.explained_variance_ratio_)

Dengan melukis graf kadar sumbangan varians terkumpul, kita boleh perhatikan bilangan komponen utama Trend perubahan kadar sumbangan varians kumulatif apabila meningkat secara beransur-ansur daripada 1 untuk menganggarkan bilangan komponen utama yang sesuai. Kodnya adalah seperti berikut:

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()

Garis merah dalam rajah mewakili kadar sumbangan varians kumulatif, paksi-x mewakili bilangan komponen utama dan paksi-y mewakili bahagian varians yang dijelaskan. Ia boleh didapati bahawa kadar sumbangan varians bagi dua komponen utama pertama adalah hampir kepada 1, jadi memilih dua komponen utama boleh memenuhi keperluan kebanyakan tugas analisis.

  1. Cara untuk menggambarkan data selepas pengurangan dimensi PCA

Akhir sekali, kita boleh menggunakan fungsi serakan perpustakaan matplotlib untuk menggambarkan data selepas pengurangan dimensi PCA. Contohnya, kod berikut mengurangkan data daripada 4 dimensi asal kepada 2 dimensi melalui PCA, dan kemudian memaparkannya secara visual:

import matplotlib.pyplot as plt

x = data_pca[:, 0]
y = data_pca[:, 1]
labels = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k', 'pink', 'brown', 'orange']

for i, label in enumerate(np.unique(labels)):
    plt.scatter(x[labels == label], y[labels == label], c=colors[i], label=label, alpha=0.7)

plt.legend()
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.show()

Warna dan label dalam rajah masing-masing sepadan dengan label berangka dalam data asal . Melalui visualisasi Dengan data yang dikurangkan secara dimensi, kami dapat memahami dengan lebih baik struktur dan ciri data.

Ringkasnya, menggunakan teknologi analisis komponen utama PCA boleh membantu kami mengurangkan dimensi data dan dengan itu lebih memahami struktur dan ciri data. Melalui perpustakaan sklearn dan matplotlib Python, kami boleh melaksanakan dan menggambarkan algoritma PCA dengan sangat mudah.

Atas ialah kandungan terperinci Teknik analisis komponen utama PCA (pengurangan dimensi) dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn