

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Bagaimana PCA Bekerja
<a name="how-pca-works"></a>

Principal Component Analysis (PCA) adalah algoritma pembelajaran yang mengurangi dimensi (jumlah fitur) dalam kumpulan data sambil tetap mempertahankan informasi sebanyak mungkin. 

PCA mengurangi dimensi dengan menemukan serangkaian fitur baru yang disebut *komponen*, yang merupakan komposit dari fitur asli, tetapi tidak berkorelasi satu sama lain. Komponen pertama menyumbang variabilitas terbesar yang mungkin dalam data, komponen kedua adalah variabilitas terbanyak kedua, dan seterusnya.

Ini adalah algoritma pengurangan dimensi tanpa pengawasan. Dalam pembelajaran tanpa pengawasan, label yang mungkin terkait dengan objek dalam kumpulan data pelatihan tidak digunakan.

Mengingat masukan matriks dengan baris ![\[x_1,…,x_n\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-39b.png) masing-masing dimensi`1 * d`, data dipartisi menjadi mini-batch baris dan didistribusikan di antara node pelatihan (pekerja). Setiap pekerja kemudian menghitung ringkasan datanya. Ringkasan dari pekerja yang berbeda kemudian disatukan menjadi satu solusi pada akhir perhitungan. 

**Mode**

Algoritma Amazon SageMaker AI PCA menggunakan salah satu dari dua mode untuk menghitung ringkasan ini, tergantung pada situasinya:
+ **reguler**: untuk kumpulan data dengan data yang jarang dan jumlah pengamatan dan fitur yang moderat.
+ **acak**: untuk kumpulan data dengan sejumlah besar pengamatan dan fitur. Mode ini menggunakan algoritma aproksimasi. 

Sebagai langkah terakhir algoritma, ia melakukan dekomposisi nilai tunggal pada solusi terpadu, dari mana komponen utama kemudian diturunkan.

## Mode 1: Reguler
<a name="mode-1"></a>

Para pekerja bersama-sama menghitung keduanya ![\[Equation in text-form: \sum x_i^T x_i\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-1b.png) dan. ![\[Equation in text-form: \sum x_i\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-2b.png)

**catatan**  
Karena ![\[Equation in text-form: x_i\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-3b.png) adalah vektor `1 * d` baris, ![\[Equation in text-form: x_i^T x_i\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-4b.png) adalah matriks (bukan skalar). Menggunakan vektor baris dalam kode memungkinkan kita untuk mendapatkan caching yang efisien.

Matriks kovarians dihitung sebagai![\[Equation in text-form: \sum x_i^T x_i - (1/n) (\sum x_i)^T \sum x_i\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-32b.png), dan vektor `num_components` tunggal atasnya membentuk model.

**catatan**  
Jika `subtract_mean` ya`False`, kami menghindari komputasi dan pengurangan![\[Equation in text-form: \sum x_i\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-2b.png).

Gunakan algoritma ini ketika `d` dimensi vektor cukup kecil sehingga ![\[Equation in text-form: d^2\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-7b.png) dapat masuk ke dalam memori.

## Mode 2: Acak
<a name="mode-2"></a>

Ketika jumlah fitur dalam kumpulan data input besar, kami menggunakan metode untuk memperkirakan metrik kovarians. Untuk setiap mini-batch ![\[Equation in text-form: X_t\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-23b.png) dimensi`b * d`, kami secara acak menginisialisasi `(num_components + extra_components) * b` matriks yang kami kalikan dengan setiap mini-batch, untuk membuat matriks. `(num_components + extra_components) * d` Jumlah matriks ini dihitung oleh pekerja, dan server melakukan SVD pada matriks akhir. `(num_components + extra_components) * d` Vektor `num_components` tunggal kanan atas itu adalah perkiraan vektor tunggal atas dari matriks input.

Biarkan ![\[Equation in text-form: \ell\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-38b.png)` = num_components + extra_components`. Diberikan kumpulan ![\[Equation in text-form: X_t\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-23b.png) dimensi mini`b * d`, pekerja menggambar matriks ![\[Equation in text-form: H_t\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-24b.png) dimensi ![\[Equation in text-form: \ell * b\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-38.png) acak. [Tergantung pada apakah lingkungan menggunakan GPU atau CPU dan ukuran dimensi, matriks adalah matriks tanda acak di mana setiap entri `+-1` atau *FJLT (transformasi cepat Johnson Lindenstrauss; untuk informasi, lihat Transformasi FJLT* dan makalah tindak lanjut).](https://www.cs.princeton.edu/~chazelle/pubs/FJLT-sicomp09.pdf) Pekerja kemudian menghitung ![\[Equation in text-form: H_t X_t\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-26b.png) dan memelihara![\[Equation in text-form: B = \sum H_t X_t\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-27b.png). Pekerja juga mempertahankan![\[Equation in text-form: h^T\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-28b.png), jumlah kolom ![\[Equation in text-form: H_1,..,H_T\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-29b.png) (`T`menjadi jumlah total mini-batch), dan`s`, jumlah semua baris input. Setelah memproses seluruh pecahan data, pekerja mengirimkan server`B`,, `h``s`, dan `n` (jumlah baris input).

Menunjukkan input yang berbeda ke server sebagai Server ![\[Equation in text-form: B^1, h^1, s^1, n^1,…\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-30b.png) menghitung`B`,, `h``s`, `n` jumlah input masing-masing. Kemudian menghitung![\[Equation in text-form: C = B – (1/n) h^T s\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/PCA-31b.png), dan menemukan dekomposisi nilai tunggalnya. Vektor tunggal kanan atas dan nilai tunggal `C` digunakan sebagai solusi perkiraan untuk masalah tersebut.