Diapos - gouno

publicité
Le Big Data :
Aspects théoriques et pratiques
Stéphane TUFFERY
IIèmes Rencontres STAT.
à l’UBS
21 novembre 2014
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
1
Plan
Le Big Data
Méthodes statistiques et Machine Learning pour le Big
Data
Réduction de la complexité et agrégation de modèles
Les réseaux sociaux
Exemple d’analyse d’un réseau social avec R
Conclusion
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
2
Le Big Data
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
3
L’escalade de la puissance
Avant 1950 : la statistique avec quelques centaines d’individus et
quelques variables, recueillies dans un laboratoire selon un
protocole strict pour une étude scientifique
Années 1960-1980 : l’analyse des données avec quelques
dizaines de milliers d’individus et quelques dizaines de variables,
recueillies de façon rigoureuse pour une enquête précise
Années 1980-2000 : le data mining avec plusieurs millions
d’individus et plusieurs centaines de variables hétérogènes,
recueillies dans le système d’information des entreprises pour
de l’aide à la décision
À partir des années 2010 : le Big Data avec plusieurs centaines
de millions d’individus et plusieurs milliers de variables, de tous
types, recueillies dans les entreprises, les systèmes, Internet,
pour de l’aide à la décision, de nouveaux services
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
4
L’explosion de la production de données
Données signalétiques et sociodémographiques
Données de comportement (utilisation du téléphone, de la carte
bancaire, du véhicule…)
Données CRM (contact avec un service client, carte de fidélité,
fidélisation…)
Données externes provenant des administrations (Open Data) ou des
mégabases de données privées
Informations remontées par les capteurs industriels, routiers,
climatiques, puces RFID, NFC, objets connectés (caméras, compteurs
électriques, appareils médicaux, voitures…)
Géolocalisation par GPS ou adresse IP
Données de tracking sur Internet (sites visités, mots-clés
recherchés...)
Contenu partagé sur Internet (blogs, photos, vidéos…)
Opinions exprimées dans les réseaux sociaux (sur une entreprise, une
marque, un produit, un service…)
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
5
Caractérisation des données Big Data : les 3 « V »
Volume
L’ordre de grandeur de ces volumes est le pétaoctet (1015 octets)
L’accroissement du volume vient de l’augmentation :
du nombre d’individus observés (plus nombreux ou à un
niveau plus fin)
de la fréquence d’observation et d’enregistrement des
données (mensuel
quotidien, voire horaire)
du nombre de caractéristiques observées
Cet accroissement vient aussi de l’observation de données
nouvelles, provenant notamment d’Internet : pages indexées,
recherches effectuées, messages postés, éventuellement avec des
données de géolocalisation
Cet aspect est peut-être le plus visible et le plus spectaculaire,
mais il n’est pas le plus nouveau (grande distribution, banque,
téléphonie manipulent de grands volumes de données)
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
6
Caractérisation des données Big Data : les 3 « V »
Variété
Ces données sont de natures et de formes très diverses :
numériques, logs web, textes (Word, PDF, courriels, SMS…),
sons, images, données fonctionnelles…
Cette variété rend difficile l’utilisation des bases de données
usuelles et requiert une variété de méthodes (text mining,
web mining…)
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
7
Caractérisation des données Big Data : les 3 « V »
Vitesse, ou Vélocité
Vélocité des données qui proviennent de sources où elles
sont mises à jour rapidement, parfois en temps réel
(streaming data)
Vitesse des traitements à mettre en œuvre sur ces données
la décision du client sur Internet se fait vite car il suffit
d’un clic pour changer de site, aussi faut-il
instantanément lui faire la meilleure offre commerciale
la détection de la fraude par carte bancaire doit bien sûr
aussi être instantanée
Dans certains cas, vitesse de mise à jour des modèles, et pas
seulement vitesse de leur application
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
8
Méthodes statistiques et
Machine Learning pour le Big
Data
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
9
Méthodes statistiques pour le Big Data
Les principales méthodes de modélisation statistique appliquées
aux Big Data sont fondées sur les techniques avancées
d’échantillonnage, le Machine Learning, les estimateurs du type
Lasso, l’analyse des données fonctionnelles et bien sûr le text
mining pour l’analyse des textes en langage naturel
On peut ajouter la détection des règles d’association, utilisée
dans la grande distribution pour l’analyse des tickets de caisse,
qui sont des Big Data avec des nombres de tickets de plusieurs
centaines de millions et des nombres de produits de plusieurs
dizaines de milliers
On peut mentionner un autre axe de recherche, sur la
visualisation des données en grande dimension, qui est
importante aussi parce qu’il faut communiquer des informations
à des interlocuteurs non spécialistes
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
10
Matrices en grande dimension
L’étude des matrices en grande dimension survient naturellement,
avec des matrices dont les lignes sont des clients et les colonnes des
produits téléchargés, achetés ou recommandés. Il peut aussi s’agir de
matrices représentant des relations entre individus, dans des
contextes de marketing, de sociologie, de bio-statistique… ou entre
institutions financières cotées (rendements journaliers) dans un
contexte d’étude du risque systémique
Recherche dans ces grandes matrices de sous-matrices (clusters)
correspondant à des sous-ensembles pertinents de produits et
d’individus intéressés par ces produits
Biclustering (co-clustering) pour la classification simultanée des lignes
et des colonnes
trouver des groupes de documents
caractérisés par certains groupes de mots
associer des groupes de phénotypes à
des groupes de gènes
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
11
p >> n
La régression en grande dimension pose le problème classique
de sélection des variables
On rencontre aussi, par exemple en bio-statistique (séquençage
de l’ADN) ou en chimiométrie (statistique appliquée aux
données chimiques), des situations où le nombre de variables
est supérieur, voire très supérieur, au nombre d’individus (on
parle de tableaux plats), et où les méthodes classiques de
régression ne s’appliquent pas et cèdent la place à des
méthodes telles que la régression Lasso ou PLS
Le nombre de variables étudiées peut varier entre 104 et 108,
alors que le nombre d'observations est de quelques centaines
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
12
Données fonctionnelles
Les données fonctionnelles sont des données qui ne sont pas
ponctuelles mais sont continues, comme des courbes ou des
images
Ces données se sont multipliées avec les progrès
technologiques qui permettent la collecte et le stockage
d’observations de plus en plus fines, captant en continu les
informations sur un objet étudié (météorologique,
environnemental, médical, alimentaire…)
Ces données sont de grande taille, mais posent aussi des
problèmes de corrélation élevée entre deux observations
proches d’un même phénomène continu
Au lieu de discriminer des individus au vu de quelques
caractéristiques en nombre fini observées en quelques instants
choisis, on n’a pas d’a priori sur le moment et la durée des
différences entre deux courbes d’évolution, ce qui amène à les
considérer dans leur intégralité au lieu de les discrétiser
Travaux récents sur les séries temporelles fonctionnelles
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
13
Nouvelles approches en Machine Learning
Les méthodes de Machine Learning (agrégation de modèles, SVM,
réseaux de neurones…) sont utilisées pour leur pouvoir prédictif
élevé, dans des situations où la lisibilité du modèle n’est pas
recherchée et où leur caractéristique « boîte noire » n’est pas un
inconvénient
Exemple d’une librairie en ligne, qui veut proposer des titres à ses
clients. Dans ce problème, les variables (titres déjà achetés) sont
excessivement nombreuses et créent des matrices creuses difficiles à
modéliser. L’approche courante est de décomposer la clientèle en un
très grand nombre de segments, éventuellement des milliers,
recalculés en permanence par des techniques statistiques qui
permettent de situer chaque client dans un petit segment de clients
ayant des goûts proches. Ensuite, on lui propose les titres souvent
acquis par les autres clients de son segment, que lui-même n’aurait
pas encore acquis. Ces calculs sont refaits en permanence, sans
recherche de segments et de modèles robustes et lisibles.
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
14
Les méthodes d’agrégation
Les méthodes d'agrégation, ou méthodes d'ensemble, ainsi que
le stacking, consistent à combiner entre elles des méthodes
prédictives
Dans le stacking, on combine différentes méthodes ; dans les
méthodes d’agrégation, on applique un grand nombre de fois la
même méthode
Quand on agrège des modèles prédictifs, parfois simplement en
faisant la moyenne de leurs prédictions, il vaut mieux agréger
des modèles moins poussés, individuellement moins
performants, pour obtenir un modèle final plus performant !
Cela vient de ce que les modèles individuels plus poussés se
ressemblent plus, et que le gain de leur agrégation est
beaucoup moins grand
On touche ici au besoin de puissance du Big Data, car ces
méthodes peuvent être très gourmandes en temps de calcul
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
15
Remarque sur les méthodes appliquées au Big Data
Toutes les méthodes utilisées pour le Big Data ne sont pas
toutes très récentes, et la plupart faisait du Big Data comme
Monsieur Jourdain : « Par ma foi ! il y a plus de quarante ans
que je dis de la prose sans que j'en susse rien, et je vous suis le
plus obligé du monde de m'avoir appris cela. » Molière, Le
Bourgeois gentilhomme, 1670
À côté des méthodes classiques, on utilise des méthodes plus
modernes (les méthodes « d’agrégation » par exemple) mais
aussi des perfectionnements très récents de méthodes
classiques (les méthodes « pénalisées », par exemple)
C'est comme la musique dite classique, qui ne s'est pas arrêtée
au XIXe siècle, et qui s'enrichit en permanence de nouvelles
œuvres, certaines plus novatrices et originales que des œuvres
de musique dite moderne
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
16
Réduction de la complexité et
agrégation de modèles
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
17
Fonction de perte et risque d’un modèle
Si un modèle relie X et Y en sorte que Y = (X) + ε, avec E(ε) = 0 et
V(ε) = σ², et si estime , des fonctions de perte L courantes sont :
y continue ⇒ L(y, (x)) = (y – (x))²
y = –1/+1 ⇒ L(y, (x)) = ½ |y – (x)|
Risque (ou risque réel) = espérance de la fonction de perte sur
l’ensemble des valeurs possibles des données (x,y)
comme on ne connaît pas la loi de probabilité conjointe de x et y, on ne
peut qu’estimer le risque
l’estimation la plus courante est le risque empirique ∑
− ( )
ou ∑
− ( ) (n = effectif)
on retrouve le taux d’erreur pour y = –1/+1
Dans le cas quadratique, le risque se décompose en :
Erreur irréductible σ² + Biais²(modèle) + Variance(modèle)
Variance de y autour de sa valeur moyenne + (différence entre espérance
de la prédiction f(x) et valeur moyenne de y)² + variance de la prédiction
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
18
Dilemme Biais-Variance
Plus un modèle est complexe, plus son biais diminue mais plus sa
variance augmente
Nous devons trouver le bon compromis entre biais et variance, entre
ajustement aux données d’apprentissage (biais) et capacité de
généralisation (variance)
Dans quelques cas simples, la complexité d’un modèle est égale à p+1,
où p est le nombre de paramètres
Dans certaines situations, on ne peut pas diminuer le nombre de
paramètres car les utilisateurs veulent voire apparaître simultanément
des critères même s’ils sont fortement corrélés :
médecine, avec des mesures physiologiques, des résultats d’analyses
banque, avec des critères qualitatifs saisis sur les entreprises
La complexité peut être diminuée par l’introduction de bornes ||β|| ≤
C dans la recherche des coefficients d’un modèle de régression (les
observations étant dans une sphère de rayon R)
complexité ≤ min[partie entière (R²C²),p] + 1
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
19
Solutions de réduction de la complexité
La régression avec pénalisation Ld (d ≥ 0)
Minimiser -2.log-vraisemblance (ou Σ des carrés) + λΣ|βi|d, d ≥ 0
minimiser -2.log-vraisemblance avec la contrainte λΣ|βi|d ≤ C
d ≤ 1: sélection de prédicteurs (AIC, BIC si d = 0 , Lasso si d = 1)
d > 1: rétrécissements de coefficients (Ridge si d = 2)
La régression ridge (ou logistique ridge) est la plus répandue
elle réduit les coefficients dans toutes les directions, surtout celles à faible
variance (le coefficient de la ridge sur la 1ère composante principale diminue
moins que le coefficient sur la 2e composante, etc.)
La complexité peut aussi être réduite par la régression PLS
avec une seule composante : les signes des coefficients sont égaux aux
signes des corrélations entre prédicteurs et variable réponse
la régression PLS réduit les coefficients dans les directions à faible variance,
mais peut provoquer une hausse trop grande dans les directions à forte
variance ⇒ l’erreur de prédiction de la PLS est souvent un peu supérieure
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
20
Ridge plot
Évolution des coefficients en fonction de la pénalisation
Régression ridge
21/11/2014
Régression lasso
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
21
Introduction aux méthodes d’agrégation
Nous avons vu que la complexité d’un modèle doit être maîtrisée pour
lui assurer une faible somme « biais² + variance » et donc une bonne
généralisation
La complexité d’un modèle peut être diminuée par :
la diminution du nombre de prédicteurs
l’introduction de bornes sur les coefficients de régression de ces
prédicteurs
l’augmentation de la marge des SVM
Nous allons voir une autre approche avec les méthodes d’agrégation
(« méthodes d’ensemble ») qui consistent à agréger les prédictions de
plusieurs modèles de même type, d’une façon qui permette de réduire
la variance voire le biais du modèle agrégé
Si les prédictions sont identiquement distribuées mais dépendantes,
avec une corrélation ρ > 0, la variance de la prédiction moyenne est
² +
², et diminue si B est grand et ρ est faible
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
22
Bagging 1/2
En moyennant des classifieurs (par exemple des arbres) sur B
échantillons bootstrap, on obtient un classifieur :
dont le biais n’a pas diminué
dont la variance a diminué d’autant plus que la corrélation entre les
classifieurs est faible
Les B modèles sont agrégés :
par un vote ou une moyenne des probabilités P(Y=1|X) quand on sait
calculer cette moyenne (classement)
par une moyenne des estimations (régression)
C’est le bagging : Bootstrap AGGregatING, Breiman, 1996
La procédure de vote appliquée à des arbres de faible qualité
peut conduire à un résultat pire lors de l’agrégation
supposons que Y = 1 pour tout x et que chaque classifieur prédise 1
avec la probabilité 0,4 et 0 avec la probabilité 0,6. L’erreur de
classement de chaque classifieur vaudra 0,6 mais l’agrégation par vote
donnera un classifieur dont l’erreur vaudra 1.
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
23
Bagging 2/2
Le classifieur de base est le même à chaque itération : arbre de
décision, réseau de neurones…
La corrélation entre les classifieurs est diminuée par :
le mécanisme de bootstrap
l’augmentation de la complexité
⇒ Le bagging s’applique mieux aux classifieurs à faible biais et
variance élevée ⇒ particulièrement les arbres de décision
⇒ La stratégie d’élagage est simple : préférer le bagging sur des
arbres profonds
Bagging inefficace sur un classifieur fort, dont les différents
modèles seront trop corrélés pour réduire la variance
R : packages ipred, randomForest
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
24
Forêts aléatoires 1/3
Le bagging manque d’efficacité quand les modèles sont trop corrélés
⇒ on veut donc les décorréler
Introduction d’une 2e randomisation : sur les individus (bagging) mais
aussi sur les prédicteurs, en ajoutant à chaque scission un tirage
aléatoire d’un sous-ensemble de taille q (constante) parmi l’ensemble
des p prédicteurs (forêts aléatoires, Breiman, 2001)
Plus la corrélation baisse (elle peut atteindre ρ = 0,05) plus la
variance du modèle agrégé diminue : ² + ²
Évite de voir apparaître trop souvent les mêmes variables les plus
discriminantes
Chaque arbre élémentaire est moins performant mais l’agrégation
conduit à un modèle agrégé plus performant : l’augmentation du biais
est plus que compensée par la diminution de la variance
R : packages randomForest (sur arbre CART) et party (sur arbre Ctree)
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
25
Forêts aléatoires 2/3
Diminuer le nombre q de prédicteurs augmente le biais mais diminue
la corrélation entre les modèles et la variance du modèle final ⇒ q
permet de régler le compromis entre biais et variance
Pour le classement, Breiman suggère un sous-ensemble de q = √p
variables ou [log(p)+1] ou 1
Mais il ne faut pas que ce nombre q soit trop faible si une forte
proportion de variables sont peu discriminantes
Les forêts aléatoires commencent à être très efficaces lorsque la
probabilité de sélectionner un prédicteur discriminant est > 0,5. Cette
probabilité est donnée par la loi hypergéométrique.
Si 6 variables discriminantes sont mélangées à 30 non discriminantes, la
probabilité de tirer au moins une variable discriminante parmi 6 est :
> sum(dhyper(1:6, 6, 30, 6))
[1] 0.6951548
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
26
Forêts aléatoires 3/3
Le nombre q de prédicteurs est le seul paramètre
réellement à régler
Le nombre d’itérations est moins sensible à régler, et on a
intérêt à le choisir assez élevé
Le nombre de modèles à agréger devrait croître avec le nombre de
prédicteurs
À noter la convergence des performances atteinte avec un nombre de
modèles agrégés parfois très inférieur au nombre de combinaisons de p
variables parmi n (n!/p!(n–p)!), c’est-à-dire bien avant que toutes les
combinaisons possibles de variables soient apparues.
Les forêts aléatoires résistent bien au sur-apprentissage
(contrairement aux réseaux de neurones et au boosting)
même quand le nombre de modèles agrégés est grand
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
27
Similitudes entre forêts aléatoires et
régression pénalisée ridge
Le rétrécissement λ des coefficients dans la régression
ridge
sélection de q < p prédicteurs aléatoirement parmi
les p prédicteurs
Augmenter λ ou réduire q :
augmente le biais, puisque la solution est cherchée dans un sousespace fixé par la contrainte
réduit la variance, de façon à compenser la hausse du biais
Autre analogie : tous les prédicteurs peuvent apparaître
dans le modèle
par rétrécissement de leurs coefficients dans la régression ridge
ou par sélection au hasard dans les forêts aléatoires
⇒ le travail de sélection des variables est simplifié !
☺ Pouvoir prédictif élevé !
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
28
Différences entre forêts aléatoires et
régression pénalisée ridge
Le paramètre de pénalisation λ permet un ajustement
continu du biais-variance, alors que le nombre q est discret
Il permet d’ajuster les coefficients à l’aide du ridge plot
en sorte que tous les coefficients aient un signe cohérent
voire que certains coefficients soient supérieurs à un certain seuil
fixé par les experts du domaine
La régression pénalisée est déterministe
Les calculs de la régression pénalisée sont plus rapides
mais les calculs des forêts aléatoires peuvent être parallélisés
Manque de lisibilité d’un modèle de forêts aléatoires, qui
détruit la structure d’arbre
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
29
Agrégation de modèles : le boosting
BOOSTING, Freund et Schapire, 1996
Algorithme adaptatif et généralement déterministe :
on travaille souvent sur toute la population
et à chaque itération, on augmente le poids des individus mal classés
ou mal ajustés dans les itérations précédentes
à la fin, on agrège les modèles en les pondérant par leur qualité
Diminue le biais et pas seulement la variance (grâce au
mécanisme d’agrégation) mais peut être sujet au sur-ajustement
Nombreux algorithmes : Discrete AdaBoost, Real AdaBoost,
Gentle AdaBoost, LogitBoost, Arcing (Adaptative Resampling and
Combining)…
performances pas toujours très différenciées sur des données réelles
R : packages ada, gbm et mboost
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
30
Illustration (Robert Schapire)
Extrait d’une conférence visible ici :
http://videolectures.net/mlss05us_schapire_b/
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
31
Les réseaux sociaux
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
32
Les réseaux sociaux
Un réseau social est un ensemble d'acteurs (individus, groupes
ou organisations) reliés par des liens sociaux (familiales,
amicales, professionnelles)
On le représente sous la forme d’un graphe dont les acteurs
sont les sommets et les liens sont les arêtes
On peut étudier le graphe, son nombre de sommets (= nœuds),
d’arêtes (= liens), sa densité, son diamètre, ses éléments
centraux (avec le plus de liens)
Dans la recherche sur Internet, on peut aussi s’intéresser à des
réseaux de sites et regrouper les sites par similarité
Les sites de commerce en ligne identifient des groupes
d’acheteurs en ligne pour formuler des conseils d’achat
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
33
Recherches sur les réseaux sociaux
Prédiction de liens (link mining)
détection de liens anormaux, ou au contraire de liens
cachés, par exemple par l’évaluation du score d’un lien entre
deux sommets
Détection de communautés
s’apparente à la classification en analyse des données, et est
utile dans des domaines tels que le marketing viral
Identification des acteurs importants
Systèmes de recommandation
Rôles des individus en fonction de leurs liens
Analyse de la diffusion de l’information, de l’influence
Évolution des graphes et des communautés
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
34
Caractéristiques des graphes 1/2
Voisinage d’un sommet = ensemble des sommets adjacents
(directement connectés)
Degré d’un sommet = nombre d de ses voisins
Un chemin est une suite d’arêtes et de sommets reliant deux
sommets
longueur du chemin = nombre d’arêtes
Distance entre deux sommets = distance minimale des chemins les
reliant (exprimée en « hops » : deux voisins sont à un hop de
distance)
graphe « petit-monde » : faible distance moyenne entre deux
sommets (≤ log(nombre sommets))
Diamètre d'un graphe = distance maximale entre deux sommets du
graphe
Densité d’un graphe = nombre d’arêtes / nombre maximal d’arêtes
possibles (quand toute paire de sommets est directement connectée)
densité = # arêtes / n(n–1)/2, avec n = # sommets
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
35
Caractéristiques des graphes 2/2
Un graphe est connexe si toute paire de sommets est reliée par un
chemin (aucun sommet n’est isolé)
un graphe connexe n’a pas nécessairement une forte densité, car
le chemin entre deux sommets peut être plus ou moins long
La distribution du degré des sommets est variable
graphe « sans échelle » : graphe où cette distribution suit une loi
de puissance : le nombre de sommets ayant un degré donné d est
proportionnel à d–k, où k est une constante (comprise entre 2 et 3
pour beaucoup de réseaux)
cela se traduit par le fait que beaucoup de sommets ont un faible
degré et quelques sommets ont un degré élevé
loi de puissance ≈ notion de sparsité
Un graphe peut être ou non orienté, distinguant une arête entre
sommets A et B, et entre B et A (arc = arête orientée)
Les arêtes peuvent être pondérées, par exemple par le nombre de
messages entre A et B
poids d’un chemin = somme des poids des arêtes qui le
composent
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
36
Exemples de graphes « petit-monde »
Stanley Milgram a réalisé en 1967 une expérience pour tester une
hypothèse formulée par Frigyes Karinthy en 1929, selon laquelle, si
deux personnes sont reliées quand elles se connaissent, la distance
entre deux individus sur Terre est toujours inférieure ou égale à 6 :
autrement dit, elles sont séparées par au plus 5 intermédiaires
Le graphe formé par Facebook (720 millions d’utilisateurs et 69
milliards de connexions) a une distance moyenne entre utilisateurs de
4,74, avec 92 % des paires d’utilisateurs qui ont une distance de 5 ou
moins (https://www.facebook.com/notes/facebook-data-team/anatomy-offacebook/10150388519243859)
cette distance moyenne est inférieure (environ 4) si l’on se limite
à un pays
cette distance moyenne diminue au fil des années (5,28 en 2008,
mais 4,74 en 2011)
84 % des connexions restent à l’intérieur d’un pays
Selon une étude de 2010, la distance moyenne vaut 5,67 pour Twitter
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
37
Caractérisation des réseaux sociaux
Les réseaux sociaux sont des graphes avec des propriétés
particulières :
ils sont très grands et peuvent avoir des millions de sommets
les sommets ont un ensemble d’attributs (nom, adresse, âge, langue…)
les sommets avec des attributs proches sont plus souvent connectés
(propriété d’homophilie, bien sûr particulièrement vraie de la langue)
ce sont des graphes « sans échelle »
ce sont des graphes « petit-monde »
ils ont un coefficient de clustering (transitivité) élevé : probabilité que
deux voisins d'un sommet choisis aléatoirement soient eux-mêmes
connectés
ils se décomposent généralement en « communautés », qui sont des
sous-graphes dont les sommets sont fortement connectés entre eux et
faiblement connectés aux sommets des autres communautés
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
38
Méthodes de détection des communautés :
classification hiérarchique descendante
Méthode de Girvan-Newman (edge betweenness) : classification
hiérarchique descendante (divisive) procédant en retirant une à une
les arêtes en commençant par celles à fort degré d’intermédiarité, car
les arêtes reliant des communautés différentes sont plus souvent
contenues dans des géodésiques (il y a peu de chemins pour passer
d’une communauté à une autre)
complexité en O(m².n), où n = # sommets et m = # arêtes
Méthode de Radicchi et al. du même type
complexité en O(m²)
Méthode de Fortunato et al. du même type (centralité d’information)
complexité en O(m3.n)
Méthode spectrale (leading eigenvector) : classification hiérarchique
descendante binaire (comme Varclus)
complexité en O(n3)
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
39
Méthodes de détection des communautés :
classification hiérarchique ascendante
Algorithme « glouton » (greedy) de Newman, perfectionné par
Clauset, Newman et Moore : classification hiérarchique ascendante
(agglomérative) partant des sommets et les fusionnant de proche en
proche de façon à maximiser une fonction de modularité (proportion
d’arêtes intra-communautés par rapport à une répartition aléatoire
des arêtes dans un graphe ayant la même distribution des sommets)
complexité en O((m+n).n) = O(m.n), améliorée en O(n.log²(n)),
où n = # sommets et m = # arêtes
assez rapide
seulement pour les graphes non orientés
Méthode de Wakita et Tsurumi : variante passant mieux à l’échelle
Méthode de Louvain : aussi basée sur la notion de modularité et très
rapide
ces deux algorithmes peuvent traiter plusieurs millions de
sommets
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
40
Méthodes de marches aléatoires
Algorithme Walktrap de Pons : effectue un certain nombre de
marches aléatoires, en se basant sur le fait qu’une marche aléatoire
tend à faire rester dans la même communauté (sommets faiblement
connectés aux sommets des autres communautés)
permet de définir une distance utilisable dans une méthode de
classification hiérarchique ascendante
complexité en O(n²log(n)) ou au pire O(m.n²)
Algorithme Markov Cluster de van Dongen : calcule les probabilités
de transition entre tous les sommets
complexité en O(n3)
Autres méthodes : Harel et Koren, Zhou et Lipowsky…
complexité en O(n3)
Nombreuses autres méthodes
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
41
Réseaux sociaux et statistique publique
L’analyse des messages Twitter aux Pays-Bas a montré une
corrélation entre les sentiments exprimés et l’indice public de
confiance des ménages
Twitter a succédé aux médias classiques dans les analyses
classiques en sciences humaines sur les discours, l’opinion…
Les journalistes de Bloomberg intègrent aussi les données de
Twitter
D’autres données peuvent aussi être utiles : tickets de caisse et
calcul du taux d’inflation, sites de recherche d’emploi et
estimation du taux de chômage, recherches sur Google et
apparition d’une épidémie…
Ces exemples illustrent l’apport possible des analyses privées
de Big Data à la statistique publique, avec des indicateurs
équivalents mais calculés bien plus rapidement et peut-être, du
moins à terme, à moindre coût
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
42
Exemple d’analyse d’un réseau
social avec R
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
43
R pour explorer Twitter
Il faut d’abord se connecter à l’interface Twitter (https://dev.twitter.com/) avec
un compte et créer une application avec le bon paramétrage des droits d’accès
Récupérer des codes qui permettent de se connecter à l’API Twitter
api_key <- "YOUR API KEY"
api_secret <- "YOUR API SECRET"
access_token <- "YOUR ACCESS TOKEN"
access_token_secret <- "YOUR ACCESS TOKEN SECRET"
setup_twitter_oauth(api_key,api_secret,access_token,ac
cess_token_secret)
Quelques commandes de base
getUser(“xxx")$followersCount # nombre de followers
getUser(“xxx")$friendsCount # nombre de followees
userTimeline(“xxx",n=100) # fil d’un utilisateur
trend <- availableTrendLocations() # tendances
getTrends(trend[which(trend$country=="France"),]$woeid
) # tendances sur la France
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
44
Récupération de tweets
Extraction de tweets sur un sujet entre deux dates
tweets
<searchTwitter("Patrick
Modiano",
lang='fr',
n=30000,
since='2014-10-01',
until='2014-10-10')
Conversion en data frame
df <- twListToDF(tweets)
df
<do.call("rbind",
lapply(tweets,
as.data.frame)) # commande équivalente
table(as.Date(df$created)) # date des tweets
table(df$screenName) # auteurs des tweets
table(df$longitude),
table(df$latitude)
#
localisation
texte
<unlist(lapply(df$text,
function(x)
gsub("[^[:print:]]", "", x))) # suppression des
caractères non imprimables
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
45
Mise en forme du corpus 1/2
Création d’un corpus : ensemble de documents
myCorpus <- Corpus(VectorSource(texte))
Affichage du corpus
inspect(myCorpus[1:6])
Passage en bas de casse
myCorpus <- tm_map(myCorpus, tolower)
Suppression des mots commençant par @
myCorpus
<tm_map(myCorpus,
function(x)
gsub("@[[:alnum:]]*", "", x))
Suppression de la ponctuation
myCorpus
<tm_map(myCorpus,
function(x)
removePunctuation(x,
preserve_intra_word_dashes
=
TRUE))
Suppression des URL
myCorpus
<tm_map(myCorpus,
function(x)
gsub("http[[:alnum:]]*", "", x))
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
46
Mise en forme du corpus 2/2
Définition de mots-outils (« mots-vides », ou stop-words)
myStopwords <- c(stopwords('french'), "via", "amp", "a",
"rt", "où", "ça")
Les mots-outils sont des termes, comme les prépositions, les articles, les pronoms et
les conjonctions (« mots grammaticaux »), qui, par opposition aux « mots lexicaux »
(substantifs, adjectifs, verbes), apportent peu d’information car leur distribution est
uniforme dans la plupart des textes
Comme ils sont assez nombreux (environ 20% à 30% des mots d’un texte standard),
on les supprime à l’aide d’un « anti-dictionnaire », qui peut être éventuellement
enrichi en fonction du contexte
Suppression des mots-outils
myCorpus <- tm_map(myCorpus, removeWords, myStopwords)
Suppression des blancs inutiles
myCorpus <- tm_map(myCorpus, stripWhitespace)
Export du texte du corpus
texte.corpus <- data.frame(text=unlist(myCorpus),
date=as.Date(df$created),
lon=df$longitude,
lat=df$latitude, stringsAsFactors=F)
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
47
Racinisation
Le but des transformations précédentes est de diminuer le nombre de
termes différents tout en perdant le moins d’information possible
simplifier l’analyse et réduire la sparsité
Définition d’un dictionnaire
dictCorpus <- myCorpus
Racinisation (stemming) : passage au radical (suppression de la fin du mot)
corpus.stem
<tm_map(myCorpus,
stemDocument,
language = "fr")
Inconvénient de la racinisation : la racine n'est pas toujours un mot réel et le
résultat manque de lisibilité et de pertinence
> stemDocument("fraises",language = "french")
[1] "frais"
> stemDocument("cherche",language = "fr")
[1] "cherch"
> stemDocument("cherchent",language = "fr")
[1] "cherchent"
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
48
Lemmatisation
"stem completion" : remplacer chaque radical par sa forme originale la plus
fréquente (ou la 1ère ou au hasard…) dans un dictionnaire spécifié
corpus.stem
<tm_map(corpus.stem,
dictionary=dictCorpus)
stemCompletion,
Lemmatisation : passage des flexions à la forme canonique (lemme)
pour un verbe : infinitif
pour un nom, adjectif, article… : masculin singulier
difficulté : une même forme graphique (homographie) peut correspondre à
plusieurs formes canoniques, et seule l’analyse grammaticale permet de
déterminer la forme canonique pertinente
exemples : suis (suivre, être), été (être, été), sens (sens, sentir)
on peut tenter une désambiguïsation automatique mais il faut peut-être exclure
certaines formes graphiques de la lemmatisation automatique
La lemmatisation est plus complexe et plus longue que la racinisation mais
plus adaptée aux langues latines, qui ont un fort taux de flexion
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
49
Exemple : tweets parlant du Crédit Agricole
3945 tweets extraits entre le 16 septembre et le13 octobre 2014
> df <- twListToDF(searchTwitter("Credit_Agricole", lang='fr', n=5000))
> table(as.Date(df$created))
2014-09-16 2014-09-17 2014-09-18 2014-09-19 2014-09-20 2014-09-21 2014-09-22
7
103
125
128
216
174
211
2014-09-23 2014-09-24 2014-09-25 2014-09-26 2014-09-27 2014-09-28 2014-09-29
175
101
130
77
64
89
155
2014-09-30 2014-10-01 2014-10-02 2014-10-03 2014-10-04 2014-10-05 2014-10-06
213
137
186
231
142
113
203
2014-10-07 2014-10-08 2014-10-09 2014-10-10 2014-10-11 2014-10-12 2014-10-13
173
157
186
133
121
87
108
Les six premiers tweets
> head(df$text)
[1] "Crédit agricole Assurances crée une plate-forme unique en assurance vie
patrimoniale: UAF Patrimoin... http://t.co/KEF0pwNMu5 #Assurance"
[2] "La banquiere le retour vendredi dans les bacs du crédit agricole à Blain .. Qui
veut placer son argent ? Venez venez :)"
[3] "RT @CreditAgricole: #Logement : Faut-il un apport personnel pour acheter ?
http://t.co/a5EbDpboI3 #CreditAgricole"
[4] "RT @CreditAgricole: #Assurance : Profitez de votre domicile en toute
tranquillité avec nos assurances http://t.co/w1KFNiXD0S"
[5] "RT @CreditAgricole: #MozaicM6 : Jusqu'au 30 septembre, gagnez vos places pour le
concert de @Yodelice à Paris http://t.co/F0FW9MK7jP"
[6] "Demain go to Crédit Agricole."
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
50
Mise en forme des tweets
Transformation du corpus (sans racinisation)
Passage du corpus transformé à un data frame
>
texte.corpus
<data.frame(text=unlist(sapply(myCorpus,
`[`,
"content")), date=as.Date(df$created), lon=df$longitude, lat=df$latitude,
stringsAsFactors=F)
Résultat de la mise en forme du texte
> head(texte.corpus$text)
[1] "crédit_agricole assurances crée plate-forme unique assurance vie
patrimoniale uaf patrimoin assurance"
[2] " banquiere retour vendredi bacs crédit_agricole blain veut placer
argent venez venez "
[3] " logement faut- apport personnel acheter crédit_agricole"
[4] " assurance profitez domicile toute tranquillité assurances "
[5] " mozaicm6 jusqu 30 septembre gagnez places concert paris "
[6] "demain go to crédit_agricole"
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
51
Passage à une forme matricielle
Construction d’une matrice « termes (lignes) / documents (colonnes) » à
partir du corpus
>
tdm
<TermDocumentMatrix(myCorpus,
list(wordLengths=c(1,Inf)))
> nTerms(tdm) # nb de termes de la matrice
[1] 4534
control
=
On a 4534 termes et une matrice très « sparse » : seulement 29910 cases
non nulles sur 17 886 630 (= 4534 x 3945)
0
2
> Zipf_plot(tdm)
4
Vérification de la loi de Zipf
log(frequency)
6
8
> tdm
A term-document matrix (4534 terms, 3945 documents)
Non-/sparse entries: 29910/17856720
Sparsity
: 100%
Maximal term length: 44
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
0
2
4
log(rank)
6
528
Wordcloud
Le wordcloud permet de repérer les termes les plus fréquents (plus gros, et placés
au centre du graphique)
conseil
plus
coupe
calme
bien
inaugurer prend
plan tond
thepub
tank
of f toute
santé hf
cliente
nouvelle
3si alerte
comment
grand
lanceurs
unique
partout rh
bastille
sécuricompte
handicap
f inanceinnov ation
v eut
accepter
=
FALSE,
surendettement
tout
groupedécouv rez
va france
gouvernance
accompagne tour
etat
agricole
semaine
record prendre
demande
nepassezpasacote
solutions
domicile
télésurveillance
1
banque
pret
aca
siège
paris
protégez
assurance
application
rse
participant
préconisé
emploi clients
lindustrie
saisit
f rançois
bancaire
engagement
près auto
septembre
candidats
niort
situation
comme
village
engage
belle
mozaicm6
pubs
générale
crédit_agricole
> wordcloud(d$word, d$freq, min.freq=5, random.order
colors=grayLevels, rot.per=.2, max.words=100)
problème of f re
2014 assurances
banques f inancière
hollande analy ste
chez licenciée
contre-pied
recrute
caisse
Limite : le wordcloud ne rapproche pas les termes voisins dans le corpus
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
53
On veut rapprocher les termes voisins dans le corpus, en considérant des termes
comme d’autant plus proches qu’ils sont co-occurrents dans un plus grand nombre
de documents
La structure matricielle construite permet d’appliquer les méthodes habituelles
d’analyse factorielle et de classification (ici une CAH)
40
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
54
va
innovation
village
hollande
françois
record
off
the
france
bancaire
2014
groupe
agricole
tond
sécuricompte
clients
comment
partout
accompagne
toute
application
banque
lanceurs
-
problème
alerte
gouvernance
etat
conseil
saisit
banques
nouvelle
solutions
protégez
domicile
télésurveillance
assurance
20
0
Height
60
crédit_agricole
80
100
Classification des termes
Classification des documents
On peut classer des termes mais aussi des documents
Une méthode permet d’identifier 5 classes, caractérisées par les termes suivants :
cluster
1
:
accompagne
banque
crédit_agricole
nouvelle
partout
application toute
cluster 2 : assurance domicile protégez solutions télésurveillance - 2014
cluster 3 : crédit_agricole banque agricole alerte comment problème cluster 4 : gouvernance conseil crédit_agricole nouvelle etat banques
saisit
cluster 5 : hollande village crédit_agricole françois off the record
Les classes (ou « clusters ») sont de tailles inégales :
> kmeansResult$size
[1] 328 136 3041 184
135
121
Plusieurs méthodes de classification existent (k-means, k-medoids…)
Certaines méthodes peuvent déterminer un nombre de classes optimal selon un
certain critère
exemple : les k-means avec l’algorithme clusterSim qui s’appuie sur un
critère tel que l’indice Silhouette de Rousseeuw (s’assurant d’une faible
distance entre les éléments d’une même classe et d’une distance moyenne plus
grande entre eux et les éléments d’une autre classe)
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
55
Score d’opinion (ou analyse de sentiments)
Méthode de base : partir d’une liste de mots positifs et d’une liste de mots
négatifs, compter dans chaque document le nombre de mots positifs et lui
soustraire le nombre de mots négatifs
Cela donne le « score » du document
Voici sur le corpus de tweets la distribution des scores :
> table(texte.corpus$score)
-3
-2
-1
0
1
2
6 199 485 1609 1060 187
3
395
4
4
La brièveté des tweets entraîne bien sûr la faible amplitude du « score
d’opinion »
La qualité du score dépend de celle des listes
1500
count
1000
500
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
56
0
-2
0
texte.corpus$score
2
4
Évolution du score d’opinion dans le temps
-2.0
-1.5
-1.0
-0.5
Score médian
Score moyen
0.0
0.5
1.0
1.5
2.0
2.5
3.0
On calcule le score moyen et le score médian chaque jour
sept. 15
sept. 16
sept. 18
sept. 20
sept. 22
sept. 24
sept. 26
sept. 28
sept. 29
sept. 30
oct. 02
oct. 04
oct. 06
oct. 08
oct. 10
oct. 12oct. 13
Date
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
57
Graphe des termes avec leur connotation
On crée un graphe dont les sommets sont les termes, et dont
les arêtes relient deux termes s’ils sont co-occurrents dans un
document
Les termes plus fréquents correspondent à des sommets plus
gros
Les sommets sont coloriés en rouge s’il s’agit de « mots
négatifs » et en vert si ce sont des « mots positifs »
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
58
Graphe des termes avec leur connotation
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
59
Détection des communautés
# plusieurs méthodes disponibles
cm <- fastgreedy.community(g)
cm <- edge.betweenness.community(g)
cm <- walktrap.community(g)
length(cm) # nombre de communautés
sizes(cm) # taille des communautés
# association de chaque sommet à sa communauté
memb <community.to.membership(g,cm$merges,which.max(cm$modularity)-1)
# coloriage des communautés
colbar <- rainbow(length(cm))
col <- colbar[memb$membership+1]
# graphe interactif
tkplot(g,vertex.color=col)
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
60
Communautés dans le graphe des termes
Méthode Walktrap
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
61
Communautés dans le graphe des termes
Méthode Gloutonne
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
62
Géolocalisation des tweets
Représentation cartographique du lieu du tweet quand il est connu
Point rouge si le score du tweet est < 0, vert s’il est > 0 et bleu s’il est = 0
Mais cette information est rarement disponible, car l’option de
géolocalisation est désactivée par défaut sur Twitter
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
63
R et Big Data
R travaille nativement en mémoire vive (RAM) ce qui limite la longueur des
objets (231-1) et la « scalabilité »
read.table() charge les données dans la RAM
toutes les données manipulées par R sont des objets chargés en RAM
traditionnel message « cannot allocate vector of size _ Mb »
Par défaut, R n’utilise qu’un seul cœur, même sur une machine multi-cœur
Mais R a des packages pour le traitement des données dépassant les
capacités de la RAM (bigmemory, ff, ffbase…), le traitement plus
rapide des données en RAM (data.table), le calcul parallèle
(multicore, snow, parallel, foreach…)
Pour le vraiment Big Data (> 100 Go), il y a des packages pour intégrer
Hadoop (RHIPE, HadoopStreaming…) et se connecter avec diverses
bases de données SQL ou NoSQL
Liste
des
packages
dédiés
Big
Data
:
http://cran.rproject.org/web/views/HighPerformanceComputing.html
Package biglm pour ajuster des modèles linéaires généralisés sur des
données ne tenant pas en RAM (utilisable avec les packages bigmemory et
ffbase)
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
64
Conclusion
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
65
Le Big Data et l’emploi
Le Big Data fait partie des 34 plans industriels lancés par le
gouvernement français le 12 septembre 2013
Le Big Data a besoin de « data scientists » qui connaissent :
les enjeux métiers (marketing, risque, production…)
les technologies informatiques (architecture, algorithmes,
logiciels)
les méthodes de statistique et de Machine Learning
Nous espérons avoir montré comment ces connaissances se
combinent pour des analyses nouvelles des Big Data
Des applications dans de nombreux domaines et des centaines de
milliers d’emplois de data scientists annoncés dans le monde
Le manque de data scientists se fait sentir dans tous les pays. On
peut l'imputer à la prise de conscience récente du potentiel recelé
par les données, et à une valorisation encore insuffisante du data
scientist en entreprise.
Premières formations spécialisées en 2013 aux USA et en France
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
66
Bibliographie
P. Bühlmann, S. van de Geer (2011). Statistics for High-Dimensional Data, Springer
Arthur Charpentier (ed.) (2014). Computational Actuarial Science with R, Chapman
and Hall/CRC
T. Hastie, J. Friedman and R. Tibshirani (2009). The Elements of Statistical Learning:
Data Mining, Inference and Prediction, Springer
Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani (2013). An
Introduction to Statistical Learning, with Applications in R, Springer
N. Marz and J. Warren (2014). Big Data, Principles and best practices of scalable
realtime data systems, Manning
Eric Siegel (2013). Predictive Analytics: The Power to Predict Who Will Click, Buy, Lie, or
Die,Wiley
Mireille Gettler Summa, Léon Bottou, Bernard Goldfarb, Fionn Murtagh,
Catherine Pardoux et Myriam Touati (2012). Statistical Learning and Data Science,
Chapman & Hall/CRC
Un article sur le Big Data dans la revue des anciens de l’Ensae :
http://www.ensae.org/docs/2013164614_v46-focus1.pdf
Un article dans le Journal du CNRS de novembre-décembre 2012 (pp. 20-27) :
http://www.cnrs.fr/fr/pdf/jdc/JDC269.pdf
21/11/2014
Big Data – IIe Rencontres STAT. à l’UBS – S.Tufféry
67
Téléchargement