A gépi tanulási algoritmusok értékét és üzleti használhatóságát igazán egy konkrét példán keresztül lehet bemutatni.
Most egy üzleti példán keresztül mutatnám be, hogy mire is használható például a gépi tanulás.
Példa
Egy bicikli bolt hálózat vezetői vagyunk. Fontos számunkra látni, hogy mi befolyásolja, ha egy ügyfél havonta átlagosan mennyit költ nálunk. Ezeket az adatok tudjuk elemezni, egy Self-Service BI eszközzel könnyedén.

Viszont ezek az adatok a csak már meglévő ügyfelekről adnak információt.
Célunk, hogy lássuk egy új ügyfél regisztrálásakor közelítőleg mennyit fog költeni havonta átlagosan nálunk.
Egyéb megoldható problémák:
A fenti példa csak egy a sok lehetőség közül, amivel tudjuk segíteni a vállalkozásunk sikerességében. A teljesség igénye nélkül még néhány ötlet, amivel például egy ilyen bicikli bolt hatékonyabbá tudja tenni működését gépi tanulási algoritmusok segítségével:
- Ajánló rendszer kialakítása, hogy bizonyos termék megvásárlásakor milyen egyéb terméket ajánljunk neki
- Egyedi ügyfél kezelési mód kialakítása - mikor mit érdemes ajánlati az ügyfélnek
- Ügyfél érték modell kialakítása és új ügyfelek automatikus besorolása
- Egyedi kedvezmény rendszer kialakítása
- Hol nyissunk új üzletet? – Lokációs adatok felhasználásával
- Hol és mit reklámozzunk? – Konverzió növelése
- Fog -e várhatóan bizonyos terméket vásárolni?
Természetesen ezeknek a megvalósítása függ a rendelkezésre álló adatoktól.
Rendelkezésre állló adatok
2 adat készletünk van. Ezekben összesen 18355 ügyfél és annak értékesítési adataival rendelkezünk.
1. Egyik az ügyfél adatokat tartalmazza:
Ebben található az ügyfél neve, lakcíme, neme, életkora, végzettsége és egyéb az ügyfeleket egymástól megkülönböztető adatok.
2. A másik pedig az értékesítési adatokat tartalmazza:
Itt található az átlagos havi költése és hogy biciklit vesz-e az ügyfél.
Adat felfedezés
Első lépésként érdemes egy kicsit megismerni az adatainkat. Most csak az eredmény adatokkal foglalkozunk itt, de érdemes megnézni a változóinkat (ügyfél adatokat) is amik befolyásolhatják az eredményt.
Mivel az átlagos havi költést szeretnénk megjósolni ezért érdemes ezt egy kicsit megnézni.
· Legalacsonyabb érték: $44.1
· Legmagasabb érték: $65.29
· Átlag érték: $51.77
· Medián érték: $51.42

Az elkészített hisztogram alapján látható, hogy a átlagos havi költés közel normális eloszlású, a magasabb értékek felé hosszabban elnyúlt. Ennek majd lesz jelentősége.
Ezek a számok és a vizualizáció hasznosak lesznek nekünk abban, hogy értékeljük az elkészítendő algoritmusunkat.
Azure Machine Learning
Gépi tanulási feladatokat sok ideig csak komoly programozási és matematikai ismeretekkel rendelkező szakemberek tudtak megoldani.
Jelenleg már eljutottunk oda, hogy komoly programozási ismeretek nélkül is tudunk építeni modelleket. Természetesen matematikai ismeretek továbbra is szükségesek, de ezeknek sem kell olyan mélyeknek lenniük, mint korábban.
A Microsoft Azure felhő szolgáltatások között rendelkezésre áll az Azure Machine Learning Studio szolgáltatás, amivel fogjuk megoldani a fenti feladatot.
A lenti képből is látszik, hogy ezt a szolgáltatást van lehetőségünk kipróbálni hitelkártya nélkül is ingyenesen.

Előkészületek
Belépés után kattintsunk a bal also sarokban a New gombra és válasszuk ki a Dataset menüpontot.
Itt fogjuk feltölteni az adatainkat, amiből a modellt szeretnénk felépíteni.


Miután feltöltöttük kattintsunk az Experiment-re és indítsunk el egy Blank Experiment-et.
Itt fogjuk felépíteni a modellünket.

A baloldalon található listából válasszuk ki az imént feltöltött fájlokat és egérrel húzzuk be a felületre.

Adat előkészítés
Ezek után elkezdjük az adatok előkészítését.
Ennek része:
· az adatok tisztítása
· duplikációk kiszűrése
· kalkulált oszlopok létrehozása
· adatforrások összekapcsolása
· modell építéshez nem szükséges oszlopok kiszűrése
· Szöveges oszlopok kategóriákká alakítása
· Numerikus értékek normalizálása
Ez demonstrációs célokból 5 lépésben és az SQL valamint R nyelvek felhasználásával tettük meg.


Azokat az oszlopokat, amelyek a modell építéshez nem szükségesek (azonosítók, ügyfél neve, pontos címe, telefonszáma) kiszűrjük a Select Columns in Dataset doboz segítségével.

Az Edit Metadata dobozt arra használjuk, hogy a szöveges oszlopainkból kategorizált oszlopokat készítsünk. Ez fontos lépés, mert a kategorizált oszlopok kellenek ahhoz, hogy a modellünk helyesen működjön.

A numerikus oszlopainkban található pedig a Normalize Data doboz segítségével, hozzuk egységes bázisra, Ez azért fontos mert numerikus oszlopokban található értékek különböző skálán mozognak. Például életkor 1 és 100 között várható, míg a fizetés 10000 és 100000 között. A normalizálás segít, hogy a felépített modellünk helyesen tudja súlyozni a különböző attribútumokat egymáshoz képest.


Elkészültünk az adataink előkészítésével. Most következik a modell építés.
Ezen a ponton érdemes menteni egyet és letesztelni a Run gomb megnyomásával, hogy az átalakításaink a kívánt formára, hozták-e az adatainkat.

Modellezés
Először is az elérendő célhoz tudnunk kell, hogy milyen algoritmust fogunk használni.
Mivel itt egy folyamatos érték meghatározása a cél, ezért ez Regressziós modell felépítését teszi szükségessé.
A regressziós modell egy ún. Felügyelt tanuló algoritmus.
Ez azt jelenti, hogy van egy olyan adat készlet, amivel betanítjuk az adott modellt és van egy másik adat készlet, aminél szintén tudjuk a végeredményt és ezzel tesztelünk.
Ehhez először is ketté kell bontani a meglévő adatainkat, hogy létrehozzuk ezt a két adat készletet. Ehhez a Split Data dobozt hívjuk segítségül. 70%-30%-os arányban bontottuk ketté az adatainkat, amiből 70%-ot a betanításra és 30%-ot a tesztelésre fogunk használni.

Mivel már tudjuk, hogy regressziós algoritmust fogunk használni, már csak ki kell választanunk egyet a sok létező közül. Mi most a Boosted Decision Tree Regression modellt választottuk. Természetesen, hogy melyik a legjobb algoritmus azt nem tudhatjuk előre, ezért általában több iterációban teszteljük, hogy melyik modell produkálja a legjobb eredményeket.

Miután a modell paramétereit beállítottuk kiválasztjuk a Train Model dobozt, amiben összekötjük a tréning adatainkat és a kiválasztott modellünket, valamit beállítjuk azt az oszlopot amire szeretnénk, ha a modell egy predikciót készítene.

Ezután lefuttatjuk a felépült modell által vissza adott értékeket a teszt adatokon (Score Model) és kiértékeljük az eredményeket (Evaluate Model).

Elkészült a gépi tanulási modellünk. A Run gomb megnyomásával lefuttathatjuk a teljes folyamatot.

Kiértékelés
Az Evaluate Model-re jobb egér gombbal kattintva azon belül az Evaluate Result>Vizualize menüpontra kattintva a kiértékelő felületre jutunk. Részleteibe nem megyek bele, viszont 2 fontos mérő számra hívon fel a figyelmet.
A Metrics alatt található a Coefficient of Determination, ami változók az előállt végeredményre gyakorolt magyarázó erejét hivatott bemutatni. Jelen esetben a változók 68%-ban megmagyarázzák az előállt eredményt.

A másik pedig az Error Histogram ami a jósolt és a tényleges adatok közötti különbséget mutatja meg. Itt az látható, hogy $0.79-nál kisebb eltérés 2200 esetben volt, ami egy elég pontos predikciót jelent.

Ha soronként érdekel minket az előállt eredmény, akkor a Score Model-re kell jobb egér gombbal kattintanunk és itt a Score dataset>Visualize menü pontot kell kiválasztani.
Itt láthatjuk, a utolsó sorban a modell által előállított eredményt és előtte 3 sorral a tényleges adatokat.

Ha egy kicsit tovább szeretnénk elemezni, le tudjuk menteni az előállít végeredményt és mondjuk Tableauban van lehetőségünk további vizuális elemzést végezni a modellünk hatékonyságáról mielőtt használatba vennénk.
Azt, hogy hogyan lehet használni egy elkészült modellt egy későbbi posztban fogok írni.
Amennyiben pedig továbblépnél és szeretnéd ezekből a lehetőségekből a mindennapi munkában minél többet hasznosítani, keress fel minket az elérhetőségeink valamelyikén, és mi segítünk megtalálni azokat a területeket, ahol a legnagyobb üzleti hasznot realizálhatod egy ilyen eszköz használatával, természetesen szakmai támogatást nyújtunk a bevezetéshez.