De eerste hoofcomponent
De eerste hoofcomponent van de data is de richting waarin de data het meest varieert. In deze oefening ga je PCA gebruiken om de eerste hoofcomponent te vinden van de lengte- en breedtemetingen van de graanmonsters, en die weer te geven als een pijl in de scatterplot.
De array grains bevat de lengte en breedte van de graanmonsters. PyPlot (plt) en PCA zijn alvast voor je geïmporteerd.
Deze oefening maakt deel uit van de cursus
Unsupervised Learning in Python
Oefeninstructies
- Maak een scatterplot van de graanmetingen. Dit is al voor je gedaan.
- Maak een
PCA-instantie met de naammodel. - Fit het model op de
grains-gegevens. - Haal de coördinaten van het gemiddelde van de data op via het attribuut
.mean_vanmodel. - Haal de eerste hoofcomponent van
modelop met het attribuut.components_[0,:]. - Teken de eerste hoofcomponent als een pijl in de scatterplot met de functie
plt.arrow(). Je moet de eerste twee argumenten opgeven:mean[0]enmean[1].
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Make a scatter plot of the untransformed points
plt.scatter(grains[:,0], grains[:,1])
# Create a PCA instance: model
model = ____
# Fit model to points
____
# Get the mean of the grain samples: mean
mean = ____
# Get the first principal component: first_pc
first_pc = ____
# Plot first_pc as an arrow, starting at mean
plt.arrow(____, ____, first_pc[0], first_pc[1], color='red', width=0.01)
# Keep axes on same scale
plt.axis('equal')
plt.show()