Machine learning - spreidingsplot
Scatterplot
Een spreidingsplot is een diagram waarin elke waarde in de gegevensset wordt weergegeven door een punt.
De Matplotlib-module heeft een methode voor het tekenen van spreidingsdiagrammen, er zijn twee arrays van dezelfde lengte nodig, één voor de waarden van de x-as en één voor de waarden van de y-as:
x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]
De x
array vertegenwoordigt de leeftijd van elke auto.
De y
array vertegenwoordigt de snelheid van elke auto.
Voorbeeld
Gebruik de scatter()
methode om een spreidingsplotdiagram te tekenen:
import matplotlib.pyplot as plt
x =
[5,7,8,7,2,17,2,9,4,11,12,9,6]
y =
[99,86,87,88,111,86,103,87,94,78,77,85,86]
plt.scatter(x, y)
plt.show()
Resultaat:
Scatterplot uitgelegd
De x-as vertegenwoordigt leeftijden, en de y-as vertegenwoordigt snelheden.
Wat we uit het diagram kunnen aflezen is dat de twee snelste auto's beide 2 jaar oud waren en de langzaamste auto 12 jaar oud.
Let op: Het lijkt erop dat hoe nieuwer de auto, hoe sneller hij rijdt, maar dat kan toeval zijn, we hebben tenslotte maar 13 auto's geregistreerd.
Willekeurige gegevensverdelingen
In Machine Learning kunnen de datasets duizenden of zelfs miljoenen waarden bevatten.
Het kan zijn dat u geen gegevens uit de echte wereld hebt wanneer u een algoritme test, u moet mogelijk willekeurig gegenereerde waarden gebruiken.
Zoals we in het vorige hoofdstuk hebben geleerd, kan de NumPy-module ons daarbij helpen!
Laten we twee arrays maken die beide zijn gevuld met 1000 willekeurige getallen uit een normale gegevensverdeling.
De eerste array heeft het gemiddelde ingesteld op 5,0 met een standaarddeviatie van 1,0.
De tweede array heeft het gemiddelde ingesteld op 10,0 met een standaarddeviatie van 2,0:
Voorbeeld
Een spreidingsdiagram met 1000 punten:
import numpy
import matplotlib.pyplot as plt
x = numpy.random.normal(5.0,
1.0, 1000)
y = numpy.random.normal(10.0, 2.0, 1000)
plt.scatter(x, y)
plt.show()
Resultaat:
Scatterplot uitgelegd
We kunnen zien dat de punten geconcentreerd zijn rond de waarde 5 op de x-as en 10 op de y-as.
We kunnen ook zien dat de spreiding groter is op de y-as dan op de x-as.