Python integráció az IBM SPSS Modeler szoftverbe

Python integráció az IBM SPSS Modeler szoftverbe

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.

///

Milyen iparágakban alkalmazható?
Biztosítás
Energiaszolgáltatás
Pénzügyi szolgáltatások
Piackutatás
Telekommunikáció

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 stream-eket 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 Modeler-hez írtak. Ezzel párhuzamosan a 16-os verziótól kezdve Python (valójában Jython) nyelven is írhatjuk a script-eket, 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.