Pentaho Data Mining

Ämne: Blogg

Pentaho köpte en licens för Weka 2006, men hur ser integrationen mellan de två ut idag och hur fungerar det? Pentaho har valt att fokusera integrationen på PDI, d.v.s. deras ETL verktyg. I dagsläget finns det transformationssteg och vyer för PDI som kopplar ihop Weka och Pentaho.

PDI transformationssteg 

  • ARFF Output
    Det här tranformationssteget kan användas för att serialisera ut en ARFF fil som är Weka egna filformat. Denna fil kan dock endast användas till utveckling, då det inte finns något ”ARFF Input” steg att läsa in datat i PDI igen.
  • Weka Knowledge Flow
    Det här transformationssteget i kombination med Wekas kfKettle paket kan man via PDI hämta data från valfria datakällor och skicka det vidare till ett Weka Knowledge Flow som körs och bygger en modell som sedan sparas som ett Javaobjekt med hjälp av ”Serialized ModelSaver”. Den sparade modellen används sedan i transformationsstegen ”Weka Scoring” eller ”Weka Forecasting”.
  • Weka Scoring
    Weka Scoring är ett transformationssteg som använder en redan tränad modell för att prediktera eller klassificera inkommande data. Resultatet kan vara en predikterad klass (klassifiering/klustring), ett uppskattat reellt tal (regression) eller en sannolikhetsfördelning (klassifiering/klustring), beroende på vilken modell som används. Resultatet skrivs tillbaka till en databas och kan sedan användas oberoende av programvara för visualisering.
  • Weka Forecasting
    Weka Forecasing används tillsammans med timeserieForecasting paketet i Weka och fungerar analogt med Weka Scoring, med skillnaden att den använder en tidseriemodell för att göra en prognos för framtiden. 

PDI vyer

  • Knowledge Flow Editor
    Det här är en plugin där Pentaho har lyft in Wekas Knowledge Flow gränssnitt rakt av in i PDI. Det går dock endast att skapa ett helt nytt Knowledge Flow och inte öppna och editera befintliga.
  • Forecasting
    Även detta är en plugin där Pentaho har lyft in Wekas Forecasting gränssnitt rakt av i PDI, men de har dock lagt till ytterligare funktionalitet. Man kan skicka in data i tidsserie analysen direkt från ett ”Table output” eller ”Table input” steg. Om man högerklickar på någon av dessa och väljer ”Forecast” laddas datat från databasen till Forecasting gränssnittet.
Utöver detta finns det också ett transformationssteg som egentligen inte har någonting med Weka att göra, men som med fördel kan användas tillsammans med Weka och det är ”Reservoir Sampling”. Den genererar träningexempel från en inkommande dataström där antalet inte är känt i förväg. Den kan användas för att generera ett träningsdataset av lämplig storlek till Weka.
Vad vinner man då på att köra Weka tillsammans med PDI? Det som är smidigt är att man relativt enkelt kan schemalägga och produktionssätta träning av modeller som används i den dagliga analysen med hjälp av transformationsstegen i PDI. Men med det nya wekaServer paketet som släpptes i höstas är det nästan lika enkelt att göra det direkt i Weka utan att blanda in PDI. De har övergett det gamla RMI interfacet och istället implementerat en servlet baserad Weka Server som körs på en Jetty web server. Det som man dock kan göra med PDI och inte med Weka Server är att skriva tillbaka scoringen till databasen. Kör man Weka Server får man lösa det med sitt befintliga ETL verktyg eller utveckla write-back funktionaliteten själv.