A Python integrációval számtalan olyan új felhasználási lehetőség nyílik, amelyek korábban nem voltak elérhetőek az IBM SPSS Modeler-ben.
///
A Pythonról általában
A Python gyorsan fejlődő nyílt-forrású, általános célú objektum orientált
programozási nyelv. Szintaxisa rendkívül egyszerű, könnyen tanulható. A
hatalmas program és modulkönyvtár, a külső programok könnyű hívása
segítségével nagyon rugalmasan használható bármely operációs rendszer
alatt. A kiegészítő csomagok segítségével (a matematikai, grafikus és
statisztikai alkalmazásokon túl) rengeteg adatbányászati algoritmust
használhatunk. Emiatt egyre népszerűbb Data Science körökben. Az
algoritmusok között természetesen megtaláljuk a klasszikus szegmentációs
és klasszifikációs algoritmusokat, és a lelkes fejlesztő közösségnek
köszönhetően a legújabb Machine Learning algoritmusokat is.
Python az SPSS Modeler-ben
Az IBM SPSS Modeler-ben lehetőségünk van script használatával adott
stream-en belül node-ok létrehozására, tulajdonságaik módosítására és (a
futtatható node-ok) futtatására. Ezt az ún. Stream script segítségével
tudjuk megtenni. Ha streameket szeretnénk manipulálni (létrehozni,
módosítani, paramétereket átadni köztük, stb.), akkor Standalone
script-et használhatunk. Ezek főleg akkor lehetnek hasznosak, amikor
automatizálni szeretnénk a folyamatokat.
A scripting nyelve a Modeler-ben a 16-os verzió előtt a hagyományos (Legacy) scripting nyelv volt, amelyet speciálisan a Modelerhez írtak. Ezzel párhuzamosan a 16-os verziótól kezdve Python (valójában Jython) nyelven is írhatjuk a scripteket, sőt ez az alapértelmezett és támogatott scripting nyelv a Modeler-ben.
A Modeler Python integrációjának következő mérföldköve (a 17.1-es verziótól) saját, Python nyelven írt node-ok létrehozása a Custom Node Dialog Builder segítségével. A 18.1-es verziótól kezdve ehhez már a Custom Node Dialog Builder-re sem feltétlenül van szükségünk: használhatjuk a palettákon található Extension node-okat. Az alap Python könyvtárak/ csomagok beágyazódnak a Modeler-be, kiegészülve több (az adatbányászok körében is népszerű) csomaggal (pl. numpy, pandas, scipy, xgboost, matplotlib, imblearn). Az adatok manipulálását és a párhuzamos futtatást nagy adatoknál a szintén beágyazódó Spark (pyspark) támogatja. Természetesen használhatjuk a Spark Machine Learning Library-t is, kiegészítve a Modeler-ben már létező algoritmusokat. Itt kell megjegyeznünk, hogy a Custom node-ok létrehozása illetve a korábban említett Scripting a Modeler-ben egymástól független, egymással párhuzamosan használható funkciók. A Scripting esetében Jython-t (a Python Java implementációját), Custom node-ok létrehozásához pedig CPython-t használ a program.
A Python integráció a Modeler-ben ezzel nem áll meg, folyamatosan kerülnek a programba Python alapú node-ok: pl. SMOTE, XGBoost, One-Class SVM. A Data Scientist közösség által használt Python csomagok is fejlődnek illetve újakat hoznak létre, emiatt várható, hogy a következő években is lesznek új, Python-hoz köthető funkciók a Modeler-ben.
Előnyök
Mivel a Python open source nyelv, rengeteg példa és oktatási anyag
érhető el online. Külső modulok importálásával olyan megoldásokat is
alkalmazhatunk, amelyek eddig nem voltak a Modeler-ben. Tudunk saját
függvényeket, objektum osztályokat definiálni, a Python nyelv támogatást
nyújt a kivétel alapú hibakezeléshez. A Custom Node Dialog Builder
segítségével létrehozott Python node-ok megoszthatók olyan
felhasználókkal, akik nem ismerik a Python-t, viszont ilyen módon ők is
használhatják az új lehetőségeket a nyelv megtanulása nélkül.
Összegzés
Összefoglalva elmondhatjuk, hogy a Modeler Python
integrációjával számtalan olyan új felhasználási lehetőség nyílik,
amelyek korábban nem voltak elérhetőek a Modeler-ben. Ráadásul a
Python-nal bővített funkcionalitás előnyeit a Python-t nem ismerő
felhasználók is kihasználhatják.