การแสดงภาพการแปลง PCA

Unsupervised Learning ใน Python

Benjamin Wilson

Director of Research at lateral.io

การลดมิติ

  • จัดเก็บและประมวลผลได้มีประสิทธิภาพมากขึ้น
  • ตัดฟีเจอร์ "สัญญาณรบกวน" ที่มีข้อมูลน้อย
  • ... ซึ่งก่อให้เกิดปัญหาในงานพยากรณ์ เช่น การจำแนกประเภท การถดถอย
Unsupervised Learning ใน Python

Principal Component Analysis

  • PCA = "Principal Component Analysis"
  • เทคนิคลดมิติพื้นฐาน
  • ขั้นแรก "การกำจัดความสัมพันธ์" (กล่าวถึงที่นี่)
  • ขั้นที่สองลดมิติ (กล่าวถึงในภายหลัง)
Unsupervised Learning ใน Python

PCA จัดข้อมูลให้ตรงแนวแกน

  • หมุนข้อมูลให้ตรงแนวแกน
  • เลื่อนข้อมูลให้มีค่าเฉลี่ย 0
  • ไม่มีข้อมูลสูญหาย

scatter plot ของข้อมูลไวน์พร้อมแกนที่หมุนแล้ว

Unsupervised Learning ใน Python

PCA ใช้รูปแบบ fit/transform

  • PCA เป็น component ของ scikit-learn เช่นเดียวกับ KMeans และ StandardScaler
  • fit() เรียนรู้การแปลงจากข้อมูลที่ให้
  • transform() นำการแปลงที่เรียนรู้มาใช้
  • transform() ใช้กับข้อมูลใหม่ได้เช่นกัน
Unsupervised Learning ใน Python

การใช้ PCA ของ scikit-learn

  • samples = อาร์เรย์ของสองฟีเจอร์ (total_phenols และ od280)
[[ 2.8   3.92]
 ...
 [ 2.05  1.6 ]]
from sklearn.decomposition import PCA

model = PCA() model.fit(samples)
PCA()
transformed = model.transform(samples)
Unsupervised Learning ใน Python

ฟีเจอร์ PCA

  • แต่ละแถวของ transformed ตรงกับแต่ละตัวอย่าง
  • คอลัมน์ของ transformed คือ "ฟีเจอร์ PCA"
  • แต่ละแถวแสดงค่าฟีเจอร์ PCA ของตัวอย่างนั้น
print(transformed)
[[  1.32771994e+00   4.51396070e-01]
 [  8.32496068e-01   2.33099664e-01]
 ...
 [ -9.33526935e-01  -4.60559297e-01]]
Unsupervised Learning ใน Python

ฟีเจอร์ PCA ไม่มีความสัมพันธ์กัน

  • ฟีเจอร์ในชุดข้อมูลมักมีความสัมพันธ์กัน เช่น total_phenols และ od280
  • PCA จัดข้อมูลให้ตรงแนวแกน
  • ฟีเจอร์ PCA ที่ได้ไม่มีความสัมพันธ์เชิงเส้น ("การกำจัดความสัมพันธ์")

scatter plot ของข้อมูลไวน์พร้อมแกนที่หมุนแล้ว

Unsupervised Learning ใน Python

Pearson correlation

  • วัดความสัมพันธ์เชิงเส้นของฟีเจอร์
  • ค่าอยู่ระหว่าง -1 ถึง 1
  • ค่า 0 หมายความว่าไม่มีความสัมพันธ์เชิงเส้น

scatter plot 3 กราฟแสดงความสัมพันธ์ 0.7, 0 และ -0.7

Unsupervised Learning ใน Python

Principal components

  • "Principal components" = ทิศทางของความแปรปรวน
  • PCA จัดให้ principal components ตรงแนวแกน

scatter plot ของข้อมูลไวน์พร้อมลูกศรสีแดง 2 อันแสดงทิศทางของ principal components (แกนที่หมุนแล้ว)

Unsupervised Learning ใน Python

Principal components

  • เข้าถึงได้ผ่าน attribute components_ ของ PCA object
  • แต่ละแถวกำหนดการกระจัดจากค่าเฉลี่ย
print(model.components_)
[[ 0.64116665  0.76740167]
 [-0.76740167  0.64116665]]
Unsupervised Learning ใน Python

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

Unsupervised Learning ใน Python

Preparing Video For Download...