Vous êtes sur la page 1sur 33

Mahout

machine learning pour Hadoop

Mercredi
Bertrand Dechoux 11 Decembre
2013
Réseaux Bayésiens

Bertrand Dechoux
@BertrandDechoux

Certified trainer

2
L’écosystème : une menagerie

ZooKeeper PIG

Impala

3
Machine learning ? Pour Hadoop?

4
Le programme

 Recommendation
 filtrage collaborative
 user/item-based recommender

 Clustering
 kmeans

 Classification
 naive bayes network

5
Pas juste un algo

 DevOps
 TDD
 A/B Testing
 Data cleansing
 Anonymisation
 Sécurité

6
Bachotage -> overfitting

7
1 : Recommendation

8
Marketing 1.0

http://www.flickr.com/photos/mpk/4310357482/

9
Marketing 2.0

10
Collaborative filtering

Item 1 item 2 item 2 item 3 item 4 item 5 ...


user 1 4 2
user 2 1 ? 3 1 4
user 3 4
user 4 1
user 5 5 4
user 6 1 5
...

11
item-based / user-based

▶ calculer la similarité entre tous


▶ trouver le voisinage
▶ calculer les prediction

12
Aperçu de l’API

DataModel dataModel =
new FileDataModel(dataFile);

UserSimilarity userSimilarity =
new PearsonCorrelationSimilarity(dataModel);

UserNeighborhood neighborhood =
new NearestNUserNeighborhood(n, userSimilarity,
dataModel);

UserBasedRecommender recommender =
new GenericUserBasedRecommender(dataModel,
neighborhood, userSimilarity);

List<RecommendedItem> recommendedItems =
recommender.recommend(1, 100);

13
Evaluation et Optimisation

 différence entre prédiction et observation

 comme un moteur de recherche


 precision, recall ...

14
Hadoop, realité et matrices

 recommendation : solution contre trop de choix


 il faut calculer O(n2) similaritées ???

15
Hadoop, realité et matrices

s11 s12 p1 s11 x p1 + s12 x p2


X =
s21 s22 p2 s21 x p1 + s22 x p2

16
Hadoop, realité et matrices

I1 I2 I3 User Score
I1 - 1 3 5
I2 1 - 2 X ? -> (1x5+2x3)/3 => 3.7
I3 3 2 - 3

17
MAHOUT-1288 : recommendation = recherche

18
2 : Clustering

19
Clustering : un regroupement

 detection de caractères
 aperçu de news
 ...

20
Un monde en n dimensions

 OLAP
 fichier excel, csv
 modèle entité-association (ERD)
 filtrage collaboratif
 ...

21
la base : k-means (Lloyd’s)

http://en.wikipedia.org/wiki/K-means_clustering

22
preclustering : canopy

https://cwiki.apache.org/confluence/display/MAHOUT/Canopy+Clustering

23
mahout 0.8 : kmeans amélioré

 “Fast and Accurate k-means for Large Data Sets”


 http://books.nips.cc/papers/files/nips24/NIPS2011_1271.pdf

 Scalable K-Means++
 http://theory.stanford.edu/~sergei/papers/vldb12-kmpar.pdf

 https://issues.apache.org/jira/browse/MAHOUT-1154

 http://blog.cloudera.com/blog/2013/03/
cloudera_ml_data_science_tools/

24
3 : Classification

25
Classification
le cousin ‘supervisé’ du Clustering

 associer une lettre à un groupe de pixels


 filtre anti-spam
 detection de fraudes
 classification de tumeurs
 ...

26
Prenons du recul
les modèles probabilistes

 On veut connaitre : P( Monde )

 Pour demander : P( interet | observation)

27
Réseau Bayésien : un framework

28
Naive Bayes Classifier

29
Evaluation : Matrice de confusion

prediction : prediction :
TRUE FALSE

réalité : true false


TRUE positive negative

réalité : false true


FALSE positive negative

30
Le tour est fini!

=
+ Machine Learning

=
 Recommendation
 Clustering
 Classification

31
Merci !

32
Et pour (vraiment) finir

33

Vous aimerez peut-être aussi