Apprendimento automatico - Grafico a dispersione
Trama a dispersione
Un grafico a dispersione è un diagramma in cui ogni valore nel set di dati è rappresentato da un punto.
Il modulo Matplotlib ha un metodo per disegnare grafici a dispersione, necessita di due array della stessa lunghezza, uno per i valori dell'asse x e uno per i valori dell'asse y:
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]
L' x
array rappresenta l'età di ciascuna vettura.
L' y
array rappresenta la velocità di ciascuna vettura.
Esempio
Usa il scatter()
metodo per disegnare un diagramma a dispersione:
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()
Risultato:
Spiegazione del grafico a dispersione
L'asse x rappresenta le età e l'asse y rappresenta le velocità.
Quello che possiamo leggere dal diagramma è che le due auto più veloci avevano entrambe 2 anni e l'auto più lenta aveva 12 anni.
Nota: sembra che più nuova è l'auto, più veloce sarà, ma potrebbe essere una coincidenza, dopotutto abbiamo registrato solo 13 auto.
Distribuzioni casuali di dati
In Machine Learning i set di dati possono contenere migliaia o addirittura milioni di valori.
Potresti non avere dati del mondo reale quando stai testando un algoritmo, potresti dover utilizzare valori generati casualmente.
Come abbiamo appreso nel capitolo precedente, il modulo NumPy può aiutarci in questo!
Creiamo due array che sono entrambi riempiti con 1000 numeri casuali da una normale distribuzione di dati.
Il primo array avrà la media impostata su 5,0 con una deviazione standard di 1,0.
Il secondo array avrà la media impostata su 10.0 con una deviazione standard di 2.0:
Esempio
Un grafico a dispersione con 1000 punti:
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()
Risultato:
Spiegazione del grafico a dispersione
Possiamo vedere che i punti sono concentrati attorno al valore 5 sull'asse x e 10 sull'asse y.
Possiamo anche vedere che lo spread è più ampio sull'asse y che sull'asse x.