การวิเคราะห์องค์ประกอบหลัก

การลดมิติข้อมูลใน Python

Jeroen Boeye

Head of Machine Learning, Faktion

แนวคิด PCA

ความยาวมือเทียบกับเท้า พร้อมเวกเตอร์ทั้งสอง

การลดมิติข้อมูลใน Python

แนวคิด PCA

ความยาวมือเทียบกับเท้า พร้อมเวกเตอร์และพิกัด

การลดมิติข้อมูลใน Python

แนวคิด PCA

ความยาวมือเทียบกับเท้า พร้อมเวกเตอร์และพิกัด PC

การลดมิติข้อมูลใน Python

การคำนวณองค์ประกอบหลัก

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
std_df = scaler.fit_transform(df)

from sklearn.decomposition import PCA pca = PCA() print(pca.fit_transform(std_df))
[[-0.08320426 -0.12242952]
 [ 0.31478004  0.57048158]
 ...
 [-0.5609523   0.13713944]
 [-0.0448304  -0.37898246]]
การลดมิติข้อมูลใน Python

PCA ช่วยลดความสัมพันธ์ระหว่างตัวแปร

การแปลง PCA

การลดมิติข้อมูลใน Python

อัตราส่วนความแปรปรวนที่อธิบายได้ของแต่ละองค์ประกอบหลัก

from sklearn.decomposition import PCA

pca = PCA()

pca.fit(std_df)

print(pca.explained_variance_ratio_)
array([0.90, 0.10])
การลดมิติข้อมูลใน Python

PCA เพื่อลดจำนวนมิติข้อมูล

ขาซ้ายเทียบกับขาขวา

การลดมิติข้อมูลใน Python

PCA เพื่อลดจำนวนมิติข้อมูล

ขาซ้ายเทียบกับขาขวา พร้อมเวกเตอร์

print(pca.explained_variance_ratio_)
array([0.9997, 0.0003])
การลดมิติข้อมูลใน Python

PCA เพื่อลดจำนวนมิติข้อมูล

pca = PCA()

pca.fit(ansur_std_df)

print(pca.explained_variance_ratio_)
array([0.44, 0.18, 0.04, 0.03, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01, 0.01,
       0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
       0.01, 0.01, 0.01, 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  ,
       ...
       0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  ,
       0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  ,
       0.  , 0.  , 0.  , 0.  , 0.  , 0.  ])
การลดมิติข้อมูลใน Python

PCA เพื่อลดจำนวนมิติข้อมูล

pca = PCA()

pca.fit(ansur_std_df)

print(pca.explained_variance_ratio_.cumsum())
array([0.44, 0.62, 0.66, 0.69, 0.72, 0.74, 0.76, 0.77, 0.79, 0.8 , 0.81,
       0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.87, 0.88, 0.89, 0.89, 0.9 ,
       0.9 , 0.91, 0.92, 0.92, 0.92, 0.93, 0.93, 0.94, 0.94, 0.94, 0.95,
       ...
       0.99, 0.99, 0.99, 0.99, 0.99, 1.  , 1.  , 1.  , 1.  , 1.  , 1.  ,
       1.  , 1.  , 1.  , 1.  , 1.  , 1.  , 1.  , 1.  , 1.  , 1.  , 1.  ,
       1.  , 1.  , 1.  , 1.  , 1.  , 1.  ])
การลดมิติข้อมูลใน Python

มาฝึกกันเถอะ!

การลดมิติข้อมูลใน Python

Preparing Video For Download...