Ebben a blogbejegyzésben végigmegyek a gépi tanulási modell létrehozásának teljes folyamatán a híres Traffic volumen adatkészleten, amelyet sokan használnak szerte a világon. Információt nyújt a forgalom nagyságáról az ünnepek, a hőmérséklet, az időjárási körülmények, a dátum és az idő függvényében.

Az adatok megszerzése

Ez az első lépés, amit meg kell tennünk, miközben megpróbálunk létrehozni egy modellt. Mivel az adatok nélkül nincs lehetőség a modell létrehozására.

Beviteli adat

Kimeneti adatok

Nézzük meg részletesebben a bemeneti adatokat

Összesen 8 oszlop van:

ünnep

hőm

eső_1h

hó_1h

clouds_all

weather_main

időjárás_leírás

dátum idő

Nézzük meg egyenként az oszlopokat

Előtte először keressük meg az oszlopok közötti összefüggést

a fentiekből azt mondhatjuk, hogy az oszlopok közötti korreláció kisebb, az ünnep és a forgalom_volume között pedig valamivel jobb a korreláció. Tehát az ünnep fontos szerepet játszik.

Adatok előfeldolgozása

Ünnep

Két lehetőség közül választhat, az egyik az egyik, a másik pedig az ünnep.

Tehát az összes egyet sem 0-ra, a többi ünnepet pedig 1-re konvertálhatjuk.

A 2, 3, 4 és 5 oszlopok számértékekkel rendelkeznek, és még a tartományuk is egy adott tartomány között van, így nincs szükség az oszlopok átalakítására.

weather_main

Ez az oszlop valójában 11 különböző oszlopot tartalmaz, tehát két lehetőségünk van, az egyik a címkekódolás, a másik pedig egy hot encoding.

Ha címkekódolást használunk, akkor a modell félreértheti és felhősnek ‹ ködnek tekintheti. Amit nem akarunk, ezért csináljunk egy forró kódolást

Weather_Description

Ez az oszlop 38 egyedi értékkel rendelkezik. Még ehhez is végezzük el az egy forró kódolást.

Most jön az érdekes rész

Dátum_idő

Mivel a dátum és az idő egyaránt fontos szerepet játszik a forgalom előrejelzésében . Tehát osszuk fel a date_time oszlopot 3 különböző oszlopra:

1 év

2 hónap

3) idő

Gépi tanulási modellek készítése

Most több gépi tanulási modellt tanítunk, és összehasonlítjuk az eredményeiket.

Mivel az előre feldolgozott adatok most vannak, hadd osszuk fel 80%-ra (vonat)

és 20% (teszt).

Lineáris regresszió

polinomiális regresszió

Döntési fa

Neurális hálózat

Random Forest

Mi az a Random Forest?

A Random Forest egy felügyelt tanulási algoritmus. Ahogy már a nevéből is látszik, erdőt hoz létre, és valahogy véletlenszerűvé teszi. Az általa épített „erdő” döntési fák együttese, legtöbbször „zsákos” módszerrel nevelve. A zsákolási módszer általános gondolata az, hogy a tanulási modellek kombinációja növeli az általános eredményt.

Egyszerű szavakkal kifejezve: A véletlenszerű erdő több döntési fát épít fel, és egyesíti őket, hogy pontosabb és stabilabb előrejelzést kapjon.

A véletlen erdő egyik nagy előnye, hogy mind osztályozási, mind regressziós problémákra használható, amelyek a jelenlegi gépi tanulási rendszerek többségét alkotják. Néhány kivételtől eltekintve egy véletlenszerű erdőosztályozó rendelkezik a döntési fa osztályozó összes hiperparaméterével és a zsákos osztályozó összes hiperparaméterével, hogy magát az együttest vezérelje.

A véletlenszerű erdő algoritmus extra véletlenszerűséget hoz a modellbe, amikor a fákat növeszti. Ahelyett, hogy egy csomópont felosztása közben a legjobb tulajdonságot keresné, a legjobb tulajdonságot keresi a funkciók véletlenszerű részhalmaza között. Ez a folyamat széles diverzitást hoz létre, ami általában jobb modellt eredményez. Ezért amikor véletlenszerű erdőben nevelsz egy fát, csak a jellemzők véletlenszerű részhalmazát veszik figyelembe a csomópont felosztásánál. Még véletlenszerűbbé is teheti a fákat, ha a tetejükön véletlenszerű küszöbértékeket használ az egyes jellemzőkhöz, ahelyett, hogy a lehető legjobb küszöbértékeket keresné (mint egy normál döntési fa teszi).

Következtetés

Amint azt a valós időben láttuk, az adatokban mindig lesznek következetlenségek. Tehát kötelességünk, hogy következetessé tegyük. Ebben a blogban megtanultuk, hogyan találjuk meg az oszlopok közötti összefüggést, és hogyan alakítsuk át ezután egy forró kódolás segítségével.

Előtt:

Után:

Természetesen van még hova fejlődni, mint például egy kiterjedtebb funkciótervezés, a funkciók összehasonlításával és egymáshoz viszonyított ábrázolásával, valamint a zajos jellemzők azonosításával és eltávolításával.