Tietotekniikka

Datan klusterointi SQL-kyselyllä – Esimerkki IoT-datalla

Aikasarjadatan klusterointi SQL-kyselyllä. Tarkoituksena on osoittaa, että data-analytiikkaa voidaan tehdä myös yksinkertaisilla menetelmillä. Tämän blogin esimerkit ovat hyödyllisiä, jos projektissa on käytettävä SQL:ää pythonin kaltaisten data science työkalujen sijasta. Kokeilu ei tarjoa kattavaa ohjeistusta aikasarjadatan klusterointiin. Vaikka klusterointi on usein liitetty koneoppimiseen, tämä esitys perustuu vain loogiseen päättelyyn. Esimerkki keskittyy IoT-tyyppiseen dataan ennakoivan huollon osa-alueella.

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.

Jätä kommentti