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.
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.
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.
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.
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!