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.