Vizualizarea transformării PCA

Învățare nesupervizată în Python

Benjamin Wilson

Director of Research at lateral.io

Reducerea dimensionalității

  • Stocare și calcul mai eficiente
  • Eliminarea caracteristicilor „zgomot" mai puțin informative
  • ... care cauzează probleme în sarcini predictive, ex. clasificare, regresie
Învățare nesupervizată în Python

Analiza Componentelor Principale

  • PCA = „Analiza Componentelor Principale"
  • Tehnică fundamentală de reducere a dimensionalității
  • Prima etapă: „decorelarea" (tratată aici)
  • A doua etapă: reducerea dimensiunii (tratată ulterior)
Învățare nesupervizată în Python

PCA aliniază datele cu axele

  • Rotește eșantioanele pentru a le alinia cu axele
  • Deplasează eșantioanele astfel încât media să fie 0
  • Nicio informație nu se pierde

diagramă dispersie a datelor despre vinuri cu axe rotite

Învățare nesupervizată în Python

PCA urmează modelul fit/transform

  • PCA este o componentă scikit-learn ca KMeans sau StandardScaler
  • fit() învață transformarea din datele furnizate
  • transform() aplică transformarea învățată
  • transform() poate fi aplicat și pe date noi
Învățare nesupervizată în Python

Utilizarea PCA din scikit-learn

  • samples = array cu două caracteristici (total_phenols și od280)
[[ 2.8   3.92]
 ...
 [ 2.05  1.6 ]]
from sklearn.decomposition import PCA

model = PCA() model.fit(samples)
PCA()
transformed = model.transform(samples)
Învățare nesupervizată în Python

Caracteristici PCA

  • Rândurile din transformed corespund eșantioanelor
  • Coloanele din transformed sunt „caracteristicile PCA"
  • Un rând conține valorile PCA ale eșantionului corespunzător
print(transformed)
[[  1.32771994e+00   4.51396070e-01]
 [  8.32496068e-01   2.33099664e-01]
 ...
 [ -9.33526935e-01  -4.60559297e-01]]
Învățare nesupervizată în Python

Caracteristicile PCA nu sunt corelate

  • Caracteristicile setului de date sunt adesea corelate, ex. total_phenols și od280
  • PCA aliniază datele cu axele
  • Caracteristicile PCA rezultate nu sunt corelate liniar („decorelare")

diagramă dispersie a datelor despre vinuri cu axe rotite

Învățare nesupervizată în Python

Corelația Pearson

  • Măsoară corelația liniară dintre caracteristici
  • Valoare între -1 și 1
  • Valoarea 0 înseamnă nicio corelație liniară

3 diagrame dispersie cu corelațiile 0.7, 0 și -0.7

Învățare nesupervizată în Python

Componente principale

  • „Componente principale" = direcții de varianță
  • PCA aliniază componentele principale cu axele

diagramă dispersie a datelor despre vinuri cu 2 săgeți roșii indicând direcția componentelor principale (axe rotite)

Învățare nesupervizată în Python

Componente principale

  • Disponibil ca atribut components_ al obiectului PCA
  • Fiecare rând definește deplasarea față de medie
print(model.components_)
[[ 0.64116665  0.76740167]
 [-0.76740167  0.64116665]]
Învățare nesupervizată în Python

Să exersăm!

Învățare nesupervizată în Python

Preparing Video For Download...