Strojové učení – bodový graf
Bodový diagram
Bodový graf je diagram, kde každá hodnota v souboru dat je reprezentována tečkou.
Modul Matplotlib má metodu pro kreslení bodových grafů, potřebuje dvě pole stejné délky, jedno pro hodnoty osy x a jedno pro hodnoty osy 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]
Pole x
představuje stáří každého vozu.
Pole y
představuje rychlost každého vozu.
Příklad
Pomocí této scatter()
metody nakreslete diagram bodového grafu:
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()
Výsledek:
Vysvětlení bodového grafu
Osa x představuje věk a osa y představuje rychlosti.
Z diagramu můžeme vyčíst, že dvě nejrychlejší auta byla stará 2 roky a nejpomalejší auto bylo staré 12 let.
Poznámka: Zdá se, že čím novější auto, tím rychleji jezdí, ale to může být náhoda, vždyť jsme registrovali jen 13 vozů.
Náhodné distribuce dat
Ve strojovém učení mohou datové sady obsahovat tisíce nebo dokonce miliony hodnot.
Při testování algoritmu možná nebudete mít data ze skutečného světa, možná budete muset použít náhodně generované hodnoty.
Jak jsme se dozvěděli v předchozí kapitole, modul NumPy nám s tím může pomoci!
Vytvořme dvě pole, která jsou obě vyplněna 1000 náhodnými čísly z normální distribuce dat.
První pole bude mít průměr nastavený na 5,0 se standardní odchylkou 1,0.
Druhé pole bude mít průměr nastavený na 10,0 se standardní odchylkou 2,0:
Příklad
Bodový graf s 1000 body:
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()
Výsledek:
Vysvětlení bodového grafu
Můžeme vidět, že tečky jsou soustředěny kolem hodnoty 5 na ose x a 10 na ose y.
Můžeme také vidět, že rozptyl je širší na ose y než na ose x.