การเลือก Principal Component

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

Jeroen Boeye

Head of Machine Learning, Faktion

การกำหนดเกณฑ์ความแปรปรวนที่อธิบายได้

pipe = Pipeline([
        ('scaler', StandardScaler()),
        ('reducer', PCA(n_components=0.9))])

# Fit the pipe to the data pipe.fit(poke_df) print(len(pipe['reducer'].components_))
5
การลดมิติข้อมูลใน Python

จำนวน Component ที่เหมาะสม

pipe.fit(poke_df)

var = pipe['reducer'].explained_variance_ratio_

plt.plot(var)

plt.xlabel('Principal component index')
plt.ylabel('Explained variance ratio')
plt.show()

อัตราส่วนความแปรปรวนที่อธิบายได้

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

จำนวน Component ที่เหมาะสม

pipe.fit(poke_df)

var = pipe['reducer'].explained_variance_ratio_

plt.plot(var)

plt.xlabel('Principal component index')
plt.ylabel('Explained variance ratio')
plt.show()

อัตราส่วนความแปรปรวนที่อธิบายได้ (elbow)

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

การดำเนินการของ PCA

แผนผัง PCA fit transform แบบที่ 1

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

การดำเนินการของ PCA

แผนผัง PCA fit transform แบบที่ 2

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

การดำเนินการของ PCA

แผนผัง PCA fit transform แบบที่ 3

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

การบีบอัดภาพ

ภาพใบหน้าต้นฉบับ

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

การบีบอัดภาพ

print(X_test.shape)
(15, 2914)

62 x 47 pixels = 2914 ค่าระดับสีเทา

print(X_train.shape)
(1333, 2914)
การลดมิติข้อมูลใน Python

การบีบอัดภาพ

pipe = Pipeline([
        ('scaler', StandardScaler()),
        ('reducer', PCA(n_components=290))])

pipe.fit(X_train)
pc = pipe.fit_transform(X_test) print(pc.shape)
(15, 290)
การลดมิติข้อมูลใน Python

การสร้างภาพใหม่

pc = pipe.transform(X_test)

print(pc.shape)
(15, 290)
X_rebuilt = pipe.inverse_transform(pc)

print(X_rebuilt.shape)
(15, 2914)
img_plotter(X_rebuilt)

ภาพใบหน้าที่ถูกบีบอัด

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

การสร้างภาพใหม่

ภาพใบหน้าต้นฉบับ

ภาพใบหน้าที่ถูกบีบอัด

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

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

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

Preparing Video For Download...