Aikasarjadatan klusterointi SQL-kyselyllä. Kokeilun tarkoituksena oli osoittaa, että data science ei aina vaadi erikoisia työkaluja. SQL on kuitenkin melko suoraviivaista.

Koska kokeilu oli tekninen, suurin osa dokumentaatiosta löytyy englanniksi GitHub-koodiarkistosta .

Klusterointi tarkoittaa datapisteiden jakamista erillisiin ryhmiin tietyllä logiikalla.

Klustereiden visualisointi 3D-kuvaajassa

Tässä demovideossa on klusteroitu auton tai vaikkapa lentokoneen moottorista saatua dataa. Tai no, data on luotu itse, mutta se voisi olla ajoneuvosta. Jokainen havaintopiste sisältää moottorin lämpötilan kahdesta sensorista sekä mittauksen alusta kuluneen ajan.

Esimerkki SQL-klusteroinnissa käytetystä datasta.
Esimerkki SQL-klusteroinnissa käytetystä datasta.

Klusteroinnilla voidaaan laskea käytännössä vain moottorin lämpötilaa hyödyntäen, kuinka monta kertaa ajoneuvolla on ajettu mittausjakson aikana. Yksi klusteri on käytännössä yksi ajokerta.

3D-kuvaajan pyörittely paljastaa tietoa, jota olisi mahdotonta havaita vain kahta ulottuvuttaa käyttäen. Pääset tutkimaan 3D-kuvaajaa itse tästä .

Kuinka SQL-klusterointi toimi?

On ehdottomasti mahdollista tunnistaa klustereita datasta käyttäen vain SQL-kyselyä. Mutta ei SQL mikään paras vaihtoehto tehtävään ole.

SQL:n huono puoli on, että vaativampi logiikka menee nopeasti sotkuiseksi. Jos klusterit voidaan päätellä yksinkertaisilla säännöillä, SQL toimii mainiosti.

Omassa koodissani logiikka oli tämä:

Uusi klusteri alkaa, kun moottorin lämpö laskee verrattuna edelliseen datapisteeseen aikasarjassa.

Onko SQL-klusterointi koneoppimista?

Ei. Ainakaan tässä tapauksessa.

Jos kyseessä olisi koneoppimisen sovellus, klusterointikoodi tekisi älykkäämpiä päätöksiä saadessaan enemmän dataa.

Vaikka SQL-kyselyni saisi kuinka paljon lisää dataa, se ei muuttaisi käsittelylogiikkaa. SQL:n käyttäminen koneoppimista vaativassa ratkaisussa on kuin maratonin juokseminen paljain jaloin - se on mahdollista, mutta sattuu pirusti!

Muita työkaluja klusterointiin

Ohjelmointikielet, kuten Python tai R mahdollistavat yhden rivin komennoilla huomattavasti kehittyneemmän klusteroinnin. Myös raportointityökalut Tableau ja Power BI tarjoavat joitakin klusterointimenetelmiä nykyisin.

K-means ja K-lähintä naapuria ovat todennäköisesti tunnetuimmat klusterointialgoritmit.