2011-12-29

Pentaho Data Mining

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. De har övergett det gamla RMI interfacet och istället implementerat en servlet baserad Weka Server som körs på en Jetty web server. Om man redan har PDI i sin miljö eller behöver ett ETL verktyg, absolut kör via PDI. Annars, tveksamt...

2011-12-28

Univariat avvikelsemodellering med PDI

I data mining sammanhang pratar man oftast om "Anomaly detection" eller "Outlier detection". Förutsättningen är att man har en större mängd data där man vill hitta avvikande beteenden. Det första man måste göra är att definiera nyckeltal eller mått där man söker avvikelse. Låt oss ta ett exempel där vi ska hitta avvikande beteende bland anställdas användning av mobiltelefon. Det finns massor av intressant aspekter att analysera, men låt oss ta utlandssamtal som ett exempel. Hur hittar man då avvikande beteende för utlandssamtal. Generellt så är det bra att sätta det i förhållandet till någonting. Hur många utlandssamtal ringer man i förhållande till totala antal samtal? Hur många utlandssamtal ringer man utanför kontorstid i förhållande till på kontorstid? Dessa typer av mått är ofta de som är intressanta att titta på under en tidsperiod som är lång nog för att få statistisk relevans för respektive mått.

När man har definierat de mått man anser vara representativa för det som man söker så är det dags att börja leta avvikelser i datat. Den första ansatsen är ofta univariat analys, d.v.s. man söker efter avvikelser ett mått i taget. Det vanligaste är då att man gör antagandet om normalfördelning och tittar på standardavvikelser och konfidensintervall. En vanlig definition för uteliggare är om abs(x-mean)>3*σ så är x en uteliggare. Problemet med standardavvikelser är att de är känsliga för extrema uteliggare, och i vissa fall när man söker efter avvikelser så finns det just extrema uteliggare. Alternativet är då att istället att titta på percentiler och uteliggare baserat på dessa. Då definierar man ofta uteliggare som x-Q75>1,5*IQR och Q25-x>1,5*IQR där IQR är Q75-Q25.

Om man vill använda Pentaho Data Integration för att skapa ett data mart med mått som standard avvikelser och percentiler ska man kolla in pluginen "Univariate Statistics". I den anger man ett fält som input och kan räkna ut "N, Mean, Std dev, Min, Max, Median, Percentile". I fältet "percentile" anger man vilken percentil man vill räkna ut och man kan lägga till flera i samma transformationssteg. Tyvärr finns det dock inget enkelt sätt att visualisera modellen som man bygger upp. Det hade varit snyggt med t.ex. ett lådagram (box-plot) eller normalfördelningsdiagram i Report Designer för att komplettera rapporterna som använder den underliggande modellen.

Nästa steg är multivariat analys, d.v.s. att hitta avvikelser för flera mått samtidigt. Ifall man arbetar med normalfördelningar är en vanlig algoritm att multiplicera normalfördelningens täthetsfunktion för varje variabel med varandra p(x)=Π p(xjj2j). En uteliggare definieras då som p(x)<ε, d.v.s. ifall produkten av täthetsfunktionerna är mindre än ett gränsvärde ε. Ifall man istället tittar på percentiler kan man även kombinera dessa, men det är inte lika trivialt utan kräver lite mer handpåläggning, men mer om multivariat avvikelsemodellering vid ett annat tillfälle.

2011-12-12

Pentaho Metadata Custom

Hittade en funktionalitet som introducerades i Pentaho Report Designer 3.8 som helt förbigått mig. Det går numera dynamiskt att bygga upp MQL frågan som ställs mot Pentahos metadata modell istället för att använda den inbyggda metadata editorn i Report Designer. Det är dock fortfarande en experimentell funktionallitet som måste aktiveras genom att gå in på "Edit -> Preferences... -> General" och klicka i "Enable (unsupported) experimental features.". När detta är gjort går det att lägga till en ny typ av datakälla som är "Metadata (Custom)". På Pentahos wiki finns det en artikel som går igenom ett enkelt exempel på hur man kan använda denna datakälla för att med hjälp av Report Designers formel editor bygga upp MQL frågan. Detta ger en mycket större flexibilitet i användandet av metadata modellen vilket gör att man kan unvika att skriva rapportspecifik SQL och därmed också minska risken för inkonsistens mellan rapporter i de olika komponenterna i Pentaho BI suite.

2011-11-21

Stanford drop-out

Det blir nog ingen fortsättning på Stanford kursen för min del. Tiden räcker inte till och det var inte nog hög nivå för att prioritera den högre. Kommer förmodligen att fortsätta kolla på några av videolektionerna i mån av tid, men när julen nalkas blir det sällan mer tid över...

2011-11-10

Hadoop World 2011

I veckan har den tredje upplagan av Hadoop World ägt rum i New York. I år var det helt slutsålt och många nekades tillträde. Det var många intressanta speakers och två som jag hade velat närvara på var David Champagne från Revolution Analytics som pratade om integrationen av R och Hadoop samt Abhishek Gupta på LinkedIn som pratade om hur de använder Hadoop för att transformera rådata till features som de använder i deras rekommendationssystem.

2011-10-31

Stanford vecka 3

Förra veckan handlade om klassificering och framför allt logistisk regression och konceptet regularisering för att hantera overfitting. Inlämningsuppgifterna var väldigt lika veckan innan med implementaioner av kostnadsfunktioner och gradienter. Denna vecka användes dock Octaves funktion fminunc för iterativ optimering av parametrarna istället för någonting egen implementerat. Denna vecka blir det artificiella neuronnät, vilket blir lite mer intressant.

2011-10-27

Pentaho Business Analytics 4.1 GA

Idag släpptes Pentaho 4.1 och en av de första märkbara skillnaderna är att den inte längre heter Pentaho Business Intelligence utan Pentaho Business Analytics. Deras undertext i loggan har dessutom bytts ut från "Open Source Business Intelligence" till "Powerful Analytics Made Easy". Förutom detta så är nog den stora nyheten stödet för externa minnescachar. Pentaho Business Analytics har inbyggt stöd för Infinispan (JBoss Data Grid) och Memcached. Att använda en extern och dessutom distribuerad cache ger givetvis bättre prestanda men ger även Pentaho ett svar på "in-memory" hypen som råder just nu.

2011-10-26

Faktabaserad världssyn


En intressant intervju med Hans Rosling på Google Think Quarterly om att ha en faktabaserad syn på omvärlden.

2011-10-24

Analytics 2011

Idag är det julafton för alla SAS användare då årets Analytics konferens drar igång. Med tanke på dagens väder här i Stockholm hade jag gärna anslutit till konferensen som i år äger rum i Orlando, Florida.

2011-10-21

R och Hadoop


Revolution Analytics har utvecklat tre paket som integrerar R med Hadoop.
  • rmr - integrerar Hadoop MapReduce funktionalitet in i R
  • rhdfs - integrerar filhantering i HDFS in i R
  • rhbase - integrerar den distribuerade databasen HBase in i R
Bilden är tagen från en presentation över RHadoop som man hittar här.

2011-10-18

Stanford vecka 2

Andra veckans uppgifter handlar om multipel regression. Algoritmerna som gås igenom är en iterativ och en exakt lösningsmetod, brantaste lutningsmetoden respektive normalekvationen. De första inlämningsuppgifterna var följande:
  1. Uppvärmningsövning
  2. Kostnadsfunktion (för en variabel)
  3. Brantaste lutningsmetoden (för en variabel)
  4. Variabelnormalisering
  5. Kostnadsfunktion (för multipla variabler)
  6. Brantaste lutningsmetoden (för multipla variabler)
  7. Normalekvationen
Alla uppgifterna var väldigt mycket tillrättalagda och krävde inte speciellt mycket implementering. Både brantaste lutningsmetoden och normalekvationen är förvisso relativt lätt att implementera i ett verktyg som Octave. Intressantast var hur de har löst inlämningsförfarandet. Med uppgifterna kommer ett Octave script som innehåller en submit funktion. När man kör den submitfunktionen för en inlämningsuppgift så anropas funktionen som man själv har implementerat med testdata, och det som returneras postas upp för rättning till deras server. Man får omgående feedback huruvida man blivit godkänd eller inte, då svaret man skickar in automatiskt verifieras. Snyggt gjort! Hoppas på något mer spännande nästa vecka...

2011-10-14

MicroStrategy och Hadoop

I veckan hade Cloudera en press release att de tillsammans med MicroStrategy har utvecklat en VLDB drivrutin för att kunna generera optimerad HiveQL och utnyttja Hadoop funktionalitet såsom t.ex. MapReduce ramverket. Hela press releasen finns här.

2011-10-11

Stanford vecka 1

Såg den första veckans videoföreläsningarna och gjorde övningarna från maskininlärningskursen idag. Första veckan går igenom enkel linjär regression och både föreläsningarna och materialet var väldigt grundläggande. I och för sig ganska förväntat med tanke på att det inte krävs några förkunskaper även om jag kan tycka att det behövs för att kunna tillgodo göra sig vissa delar. Innehållet verkar i alla fall vara väldigt likt deras YouTube kurs (http://www.youtube.com/playlist?list=PLA89DCFA6ADACE599) med lite anpassningar för att bli interaktivt. Alla inlämningsuppgifter ska implemeteras i Octave och första uppgiften kommer nästa vecka. Med tanke på den låga nivån på kursen får jag se hur mycket tid jag orkar lägga, även om jag är lite nyfiken på inlämningsuppgifterna längre fram.

2011-10-10

Maskininlärning på Stanford

Idag börjar maskininlärningskursen på Stanford. Veckornas upplägg verkar vara följande

1. Introduction to Machine Learning. Univariate linear regression. (Optional: Linear algebra review.)
2. Multivariate linear regression. Practical aspects of implementation. Octave tutorial.
3. Logistic regression, One-vs-all, Regularization.
4. Neural Networks, backpropagation, gradient checking.
5. Support Vector Machines (SVMs) and intuitions. Quick survey of other algorithms: Naive Bayes, Decision trees, Boosting.
6. Practical advice for applying learning algorithms: How to develop, debugging, feature/model design, setting up experiment structure.
7. Unsupervised learning: Agglomerative clustering, K-means, PCA, when to use each. (Optional/extra credit: ICA).
8. Anomaly detection. Combining supervised and unsupervised.
9. Other applications: Recommender systems. Learning to rank (search).
10. Large-scale/parallel machine learning and big data. ML system design/practical methods. Team design of ML systems.

2011-10-09

Watson

Måndagen den 3 oktober sändes dokumentären "Världens smartaste dator" i SVTs Vetenskapens Värld. Den handlar om IBMs program Watson som med hjälp av maskininlärning lär sig spela Jeopardy och till slut slår de mänskliga stormästarna. Det är en ganska bra populärvetenskaplig dokumentär som övergripande beskriver maskininlärning och artificiell intelligens. Dokumentären finns tillgänlig på SVT Play t.o.m. 10 oktober med svensk textning efter det kan man se den på YouTube i klippen nedan, då tyvärr uppdelad i fyra delar.



2011-10-06

MicroStrategy och MySQL Community Server

För prototypning och POCs tycker jag att MySQL CE är väldigt smidig att arbeta med. Den är gratis, den funkar på Linux och Windows och det är enkelt att scripta upp allting. När man kör MicroStrategy Connectivity Wizard så finns det dock bara ett alternativ för att köra MySQL och det är "MicroStrategy ODBC Driver for MySQL Wire Protocol" vilket inte fungerar med community versionen. Men om man kollar i "Certified and Supported Configurations" ser man att MySQL community server stöds både för meta data och data warehousing. För att använda MySQL community server som datakälla i MicroStrategy måste man installera MySQLs ODBC Driver version 5.1.8 och sedan lägga till en ny DSN via MicroStrategy Connectivity Wizard och då välja "Other Relational Databases" eller lägga in en ODBC data källa direkt i Windows Kontrollpanel.

2011-10-04

Oracle Exalytics

I går på OpenWorld presenterade Larry Ellison Oracles nya produkt Exalytics. Produkten är ett paket som täcker hela BI stacken från hårdvara till slutanvändargränssnitt, men det som är intressant är att den bygger på en kombination av Oracles TimesTen minnesdatabas och Oracles Essbase analysdatabas för att kunna erbjuda en minneslösning för både radbaserat och kolumnbaserat relationsdata samt kuber. Ledordet för utvecklingen ska ha varit parallellisera allt och produkten ska ha en genomgående parallell struktur. För den som vill läsa Oracles white paper som ger en teknisk introduktion till Exalytics hittar det här eller så kan man kika på lite highlights från Larry nedan.

2011-09-27

Filterbubbla

Eli Pariser har myntat uttrycket och skrivit boken "The Filter Bubble" som beskriver baksidan av att använda algoritmer för att personalisera tjänster och system till användarna. Det han i princip vill säga är att ens egna beteende förstärks av personaliseringsalgoritmer som filtrerar bort information som vi antas inte tycka om. Detta innebär att vi inte får se den andra sidan av informationen eller utmanas med andra åsikter än våra egna. Eli gav ett Ted Talk under våren som är sevärt.

2011-09-11

9 data mining lagar

Fritt översatt och tolkat från Tom Kahbaza's artikel som finns i sin helhet på
http://khabaza.codimension.net/index_files/9laws.htm

1st Law of Data Mining – "Business Goals Law":
Data mining ska inte ses som en teknologi utan en process för att lösa affärsproblem eller uppnå affärsmål.

2nd Law of Data Mining – "Business Knowledge Law":
Data mining är en iterativ process där kunskap om verksamheten är kärnan i alla steg.

3rd Law of Data Mining – "Data Preparation Law":
Även fast data har genomgått en gedigen ETL process består mer än halva data mining processen att förbereda data för att kunna bygga modeller.

4th Law of Data Mining – "NFL-DM":
NFL-DM står för "There is No Free Lunch for the Data Miner".  Det finns ingen genväg till att hitta rätt modell för en given tillämpning utan den kan bara upptäckas genom experiment.

5th Law of Data Mining – "Watkins’ Law":
Det finns alltid mönster. Har man affärsrelevant data finns det alltid mönster som är användbart, även om det inte är det man väntade sig.

6th Law of Data Mining – "Insight Law":
Data mining algoritmer kan hitta mönster som den mänskliga hjärnan inte klarar av att se. Männsikan kan med hjälp av data mining få insikt i datat och lösa affärsproblem.

7th Law of Data Mining – "Prediction Law":
En prediktiv modell tillför ny information lokalt baserad på generalisering av de mönster som algoritmen hittar.

8th Law of Data Mining – "Value Law":
Värdet av data mining resultatet bestäms inte av noggrannheten eller stabiliteten av prediktiva modeller utan av nyttan som tillförs till verksamheten.

9th Law of Data Mining – "Law of Change":
Alla mönster kan ändras eftersom både omvärlden och förståelsen för datat förändras.

2011-09-04

NoSQL

Jag tycker det är väldigt intressant att följa debatten kring hela NoSQL hypen. Senast den här veckan hade Computer Sweden en stor artikel. Några av mina tankar...

En viktig aspekt med NoSQL databaserna är att de är gjorda för sitt specifika ändamål, man behöver ingen datamodell och man vet i förväg hur data kommer accessas. Jämför detta med en SQL databas där man i förväg inte har en aning om hur datat modelleras eller kommer att accessas. Man gör antaganden om hur datat kommer att efterfrågas och skapar t.ex. index. Man kan givetvis använda en SQL databas som key-value store, eller för att lagra dokument, men det är självklart att NoSQL databaser optimerade för sin uppgift gör jobbet bättre än en generell SQL databas skulle göra på en likvärdig modell.

Avsaknaden av en datamodell kan dock vara ett problem. Har man många applikationer med olika objektmodeller som mappar mot datalagret är det lätt att man får motsägelser i datat. Det finns inte heller något standardiserat gränssnitt för NoSQL databaser. Om man flera applikationer i olika programmeringsspråk kan detta kräva att man bygger ett eget accesslager ovanpå datalagret för att få ett gemensamt gränssnitt mot alla applikationer. Arbetet har dock påbörjats med UnSQL men det återstår att se hur det fortlöper.

Som vanligt så finns det tyvärr ingen silver bullet som löser alla problem. Alla databaser har sin styrka, må det vara en rad/kolumnbaserad relationsdatabas, grafdatabas, dokumentdatabas eller key-value store. Det viktiga är att förstå de olika alternativen för att kunna välja den bästa lösningen. Hur många svenska företag sitter på hybridlösningar i sitt warehouse idag?

2011-08-30

Pentaho BI 4.0 GA

Under tisdagskvällen svensk tid blev Pentaho BI 4.0 GA tillgänglig för nerladdning. Den har legat ute som RC sedan 22 juni och har sedan dess testats och buggfixats. Den första märkbara skillnaden är det nya användargränssnittet som har gått från vitt till mörkgrått. Det verkar gå någon trend i att gå från det vita och ljusa på webben mot mörkare färger. Vet inte vad jag tycker om det generellt, men i det här fallet gillar jag det. Det känns fräscht och modernt. Den andra stora nyheten är Interactive Reports som ersätter det gamla ad-hoc rapporteringsverktyget. Det är ett riktigt lyft från det gamla och har samma look-and-feel som Analyzer, vilket bara är positivt enligt mig. Båda dessa verktyg är slimmade och innehåller precis nog mycket funktionalitet för att vara riktigt användbara utan att bli krångliga. Pentaho själva marknadsför det som "Power to the User", och helt klart så har de ett väldigt kraftfullt och intuitivt gränssnitt som uppfyller de flesta användares behov via webbgränssnittet. Kul att få sluta testa och sätta det i produktion istället. Power to the users...

2011-08-26

Plugga maskininlärning på Stanford i höst

Signade precis upp på Andrew Ng's webbaserade maskininlärningskurs på Stanford i höst. Jag har tidigare plöjt igenom de flesta av hans lektioner som ligger uppe på YouTube (http://www.youtube.com/playlist?list=PLA89DCFA6ADACE599) så det kanske inte är så mycket nytt som tas upp, men det blir intressant att se hur man håller en kurs för över 37 000 (antal anmälda just nu) deltagare med inlämningsuppgifter och allt. Den är i alla fall gratis och det går att signa upp på http://ml-class.org/.

2011-08-24

Pentaho SQL Trick

Om man i Pentaho vill jämföra t.ex. årets försäljning med tidigare år så går det utmärkt i Analyzer, men inte i Report Designer eller Interactive Reports eftersom de inte tillåter att man lägger in fält horizontellt. Ett sätt att gå runt detta är att trolla lite med SQL:en istället så att försäljning per år kommer i olika kolumner i resultatsettet från databasen. Följande är ett exempel med Pentahos Steel Wheels där vi hämtar alla kunders försäljning på ett sådant sätt att det går att jämföra med tidigare år samt att rapporten blir parameterstyrd på år.

SELECT
  t.customernumber,
  SUM(t.totalprice),
  SUM(t.totalprice_ly1),
  SUM(t.totalprice_ly2)
FROM (
  SELECT
    customernumber AS customernumber,
    totalprice AS totalprice,
    0 AS totalprice_ly1,
    0 AS totalprice_ly2
  FROM ORDERFACT
  WHERE year_id = ${year_id}
  UNION ALL
  SELECT
    customernumber AS customernumber,
    0 AS totalprice,
    totalprice AS totalprice_ly1,
    0 AS totalprice_ly2
  FROM ORDERFACT
  WHERE year_id = ${year_id} - 1
  UNION ALL
  SELECT
     customernumber AS customernumber,
    0 AS totalprice,
    0 AS totalprice_ly1,
    totalprice AS totalprice_ly2
  FROM ORDERFACT
  WHERE year_id = ${year_id} - 2
) AS t
GROUP BY
  t.customernumber
ORDER BY
  t.customernumber


Tricket är alltså att göra en select för varje år som man vill titta på. Varje select innehåller i sin tur en kolumn för varje år, men där vi nollar de övriga åren. Sedan summeras det upp per kund och alla noll värden vi satt kommer inte att påverka slutsumman. Om man istället skulle vilja jämföra månader och formatet skulle vara yyyyMM skulle where villkoret kunna se ut någonting i stil med

WHERE month_no = CASE WHEN MOD(${month_no},100) <= X THEN (${month_no} - 100) + (12-X) ELSE ${month_no} - X END

Där X är antalet månader tillbaka i tiden, dvs X=1 förra månaden, X=2 för två månader sedan, osv.

2011-08-22

Pentaho med SSL proxy

Om man vill köra Pentaho med SSL så kan man köra https direkt mot Tomcat servern. Ett bättre alternativ är dock att sätta upp en Apache som en SSL proxy server som hanterar all inkommande trafik via https och kommunicerar via ajp med den bakomliggande Tomcat servern. Nedan är ett strippat exempel där jag har använt en Apache2 som SSL proxy server. All inkommande pentaho-trafik på http omdirigeras till https där den sedan fungerar som en reverse proxy till Tomcat servern där Pentaho BI servern körs. Observera dock att bara den externa trafiken till och från proxyn är krypterad. Den interna trafiken mellan proxyn och Tomcat servern är okrypterad då detta i många fall inte behövs även om de skulle ligga på olika maskiner.

Mer information om alla Apache2 inställningar finns på http://httpd.apache.org/docs/.

/etc/apache2/vhosts.d/mydomain.conf
-------------------------------------------
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
  ServerName www.mydomain.se
  ...
  # Redirect all http requests to https
  Redirect 301 /pentaho https://www.mydomain.se/pentaho/
  ...
</VirtualHost>
<VirtualHost *:443>
  ServerName www.mydomain.se
  SSLEngine on
  SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
  ...
  // Pass all Pentaho requests to Tomcat via ajp
  ProxyPass /pentaho ajp://127.0.0.1:8009/pentaho
  ProxyPassReverse /pentaho ajp://127.0.0.1:8009/pentaho
  ProxyPass /pentaho-style ajp://127.0.0.1:8009/pentaho-style
  ProxyPassReverse /pentaho-style ajp://127.0.0.1:8009/pentaho-style
  ...
</VirtualHost>

2011-08-21

GraphLab: alternativ till MapReduce

Det finns alternativ till MapReduce för parallella machine learning algoritmer. GraphLab på Carnegie Mellon står bakom GraphLab ramverket som visats sig prestera riktigt bra på visa typer av problem. För er som är intresserade av rekommendationssystem och collaborative filtering så finns det implementerat ett bibliotek för probabilistiska matris- och tensorfaktoriseringar i GraphLab, som för övrigt kom 5:a i Yahoo KDD cup 2011. Implementeringen innehåller bland annat algoritmer som Alternating Least Squares och Koren's SVD++. Läs mer på www.graphlab.org.