SlideShare a Scribd company logo
www.spiria.com
Apprendre
l’apprentissage
automatisé
Présenté par
JOEL LORD
Web à Québec
4 avril, 2017
@joel__lord
#WAQ17
JOEL LORD
À propos de moi
• Adorateur de Javascript
• Bidouilleur
• Enthousiaste des
technologies
@joel__lord
#WAQ17
Agenda
• Intelligence articifielle vs Apprentissage automatisé
• Big Data et apprentissage profond
• Les algo de base
• Naïve Bayes Classifier
• Sentiment Analysis
• Genetic Algorithm
@joel__lord
#WAQ17
Agenda
• Intelligence articifielle vs Apprentissage automatisé
• Big Data et apprentissage profond
• Les algo de base
• Naïve Bayes Classifier
• Sentiment Analysis
• Genetic Algorithm
• Le tout parsemé de démos
Intelligence Articielle et
Apprentissage automatisé
UN PEU PLUS AU SUJET DE…
@joel__lord
#WAQ17
Intelligence artificielle
QU’EST CE QUI EN EST
@joel__lord
#WAQ17
L'intelligence artificielle (IA) est
l'intelligence fournie par les machines. En
informatique, le domaine de la recherche
sur l'IA se définit comme l'étude des
«agents intelligents»: tout dispositif qui
perçoit son environnement et prend des
mesures qui maximisent ses chances de
succès à un but.
@joel__lord
#WAQ17
Intelligence Artificielle
EXEMPLES CONCRETS
@joel__lord
#WAQ17
Intelligence Artificielle
EXEMPLES CONCRETES
• Filtres de pouriels
@joel__lord
#WAQ17
Intelligence Artificielle
EXEMPLES CONCRETES
• Filtres de polluriels
• Prévention de la fraude
@joel__lord
#WAQ17
Intelligence Artificielle
EXEMPLES CONCRETES
• Filtres de polluriels
• Prévention de la fraude
• Reconnaissance faciale
@joel__lord
#WAQ17
L'apprentissage automatisé est le sous-
domaine de l'informatique qui donne aux
«ordinateurs la possibilité d'apprendre
sans être explicitement programmés».
@joel__lord
#WAQ17
Apprentissage automatisé
EXEMPLES CONCRETS
• Thermostats intelligents
@joel__lord
#WAQ17
Apprentissage automatisé
EXEMPLES CONCRETS
• Thermostats intelligents
• Cortana, Siri et Ok Google
@joel__lord
#WAQ17
Apprentissage automatisé
EXEMPLES CONCRETS
• Thermostats intelligents
• Cortana, Siri et Ok Google
• Chat Bots
@joel__lord
#WAQ17
Apprentissage automatisé
EXEMPLES CONCRETS
• Thermostats intelligents
• Cortana, Siri et Ok Google
• Chat Bots
@joel__lord
#WAQ17
Apprentissage automatisé
EXEMPLES CONCRETS
• Thermostats intelligents
• Cortana, Siri et Ok Google
• Chat Bots
@joel__lord
#WAQ17
Apprentissage automatisé
EXEMPLES CONCRETS
• Thermostats intelligents
• Cortana, Siri et Ok Google
• Chat Bots
@joel__lord
#WAQ17
Apprentissage automatisé
EXEMPLES CONCRETS
• Thermostats intelligents
• Cortana, Siri et Ok Google
• Chat Bots
@joel__lord
#WAQ17
Apprentissage automatisé
EXEMPLES CONCRETS
• Thermostats intelligents
• Cortana, Siri et Ok Google
• Chat Bots
@joel__lord
#WAQ17
Apprentissage automatisé
EXEMPLES CONCRETS
• Thermostats intelligents
• Cortana, Siri et Ok Google
• Chat Bots
Big Data et apprentissage
profond
ENCORE UN PEU DE THÉORIE
@joel__lord
#WAQ17
Big Data
QU’EST-CE QUE C’EST?
• Croissance
exponentielle des
données digitales
• Trop complexe à traiter
de façon traditionnelle
• Principalement utilisée
pour de la prédiction
ou analyse des
comportements des
utilisateurs
@joel__lord
#WAQ17
Apprentissage profonD (Deep learning)
QU’EST-CE QUE C’EST
• Utilise des réseaux neuronaux pour traiter les données
• Idéal pour des classsificateurs complexes
• Un moyen de traiter le big data
@joel__lord
#WAQ17
Réseaux Neuronaux
EUH…. WHAT?
• Une collection de
couches d’opérations
• Déconstruction d’une
problème complexe en
tâches plus simples
Supervisé vs non-supervisé
UNE DERNIÈRE PETITE CHOSE…
@joel__lord
#WAQ17
Apprentissage supervisé
QU’EST-CE QUE C’EST
• Requiert une rétroaction
• Débute avec aucune connaissance et augmente sa compréhension
• Inutile lorsque les données sont de mauvaise qualité
• Cas pratiques
• Classification
@joel__lord
#WAQ17
Apprentissage non-supervisé
CONTRAIRE DE SUPERVISÉ?
• Besoin d’aucun feedback
• Pratique lorsqu’il n’y a pas de bonne ou mauvais réponse
• Aide à trouver des patterns ou structures de données
• Cas pratiques
• “Vous pourriez aussi être intéressé par…”
• Grouper des clients selon leur comportement
Apprentissage automatisé
DE RETOUR À LA PROGRAMMATION NORMALE
@joel__lord
#WAQ17
Classification naïve bayésienne
DÉFINITION
• Algorithme supervisé
• Un simple moyen de classifier et identifier l’information
var classifier = new Classifier();
classifier.classify("J'adore le Javascript", POSITIVE);
classifier.classify('WebStorm est génial', POSITIVE);
classifier.classify('Non, Javascript est mauvais', NEGATIVE);
classifier.classify("Je n'aime pas le brocoli", NEGATIVE);
console.log(classifier.categorize("Javascript est génial"));
// "positive"
console.log(classifier.categorize("J'aime WebStorm"));
// undefined
@joel__lord
#WAQ17
Classification naïve bayésienne
DÉFINITION
• Algorithme supervisé
• Un simple moyen de classifier et identifier l’information
• Mathématiquement exprimé par la fonction suivante
@joel__lord
#WAQ17
Classification naïve bayésienne
DÉFINITION DE LA STRUCTURE
var Classifier = function() {
this.dictionaries = {};
};
Classifier.prototype.classify = function(text, group) {
};
Classifier.prototype.categorize = function(text) {
};
@joel__lord
#WAQ17
Classification naïve bayésienne
CRÉATION DE LA CLASSIFICATION
Classifier.prototype.classify = function(text, group) {
var words = text.split(" ");
this.dictionaries[group] ? "" : this.dictionaries[group] = {};
var self = this;
words.map((w) => {
if (self.dictionaries[group][w]) {
self.dictionaries[group][w]++;
} else {
self.dictionaries[group][w] = 1;
}
});
};
@joel__lord
#WAQ17
Classification naïve bayésienne
ET LE RESTE…
Classifier.prototype.categorize = function(text) {
var self = this;
var probabilities = {};
var groups = [];
var finals = {};
//Find the groups
for (var k in this.dictionaries) {groups.push(k);}
var sums = {};
var probs = {};
//Loop through the groups to calculate the sums of found text
for (var j = 0; j < groups.length; j++) {
if (!sums[text]) sums[text] = 0;
if (!this.dictionaries[groups[j]][text]) this.dictionaries[groups[j]][text] = 0;
sums[text] += this.dictionaries[groups[j]][text];
probs[groups[j]] = (this.dictionaries[groups[j]][text]) ? this.dictionaries[groups[j]][text] : 0;
}
// Perform calculations
for (var j = 0; j < groups.length; j++) {
(!probabilities[text]) ? probabilities[text] = {} : "";
(!probs[groups[j]]) ? probabilities[text][groups[j]] = 0 : probabilities[text][groups[j]] =
probs[groups[j]]/sums[text];
}
//Average out the probabilities
for (var j = 0; j < groups.length; j++) {
if (!finals[groups[j]]) finals[groups[j]] = [];
finals[groups[j]].push(probabilities[text][groups[j]]);
}
for (var i = 0; i < groups.length; i++) {
finals[groups[i]] = average(finals[groups[i]]);
}
//Find the largest probability
var highestGroup = "";
var highestValue = 0;
for (var group in finals) {
if (finals[group] > highestValue) {
highestGroup = group;
highestValue = finals[group];
}
}
return highestGroup;
};
@joel__lord
#WAQ17
Classification naïve bayésienne
CATÉGORISATION
Classifier.prototype.categorize = function(text) {
var self = this;
var probabilities = {};
var groups = [];
var finals = {};
};
@joel__lord
#WAQ17
Classification naïve bayésienne
CATÉGORISATION
Classifier.prototype.categorize = function(text) {
…
//Find the groups
for (var k in this.dictionaries) {groups.push(k);}
var sums = {};
var probs = {};
};
@joel__lord
#WAQ17
Classification naïve bayésienne
CATÉGORISATION
Classifier.prototype.categorize = function(text) {
…
//Loop through the groups to calculate the sums of found text
for (var j = 0; j < groups.length; j++) {
if (!sums[text]) sums[text] = 0;
if (!this.dictionaries[groups[j]][text]) this.dictionaries[groups[j]][text]
= 0;
sums[text] += this.dictionaries[groups[j]][text];
probs[groups[j]] = (this.dictionaries[groups[j]][text]) ?
this.dictionaries[groups[j]][text] : 0;
}};
@joel__lord
#WAQ17
Classification naïve bayésienne
CATÉGORISATION
Classifier.prototype.categorize = function(text) {
…
// Perform calculations
for (var j = 0; j < groups.length; j++) {
(!probabilities[text]) ? probabilities[text] = {} : "";
(!probs[groups[j]]) ? probabilities[text][groups[j]] = 0 :
probabilities[text][groups[j]] = probs[groups[j]]/sums[text];
}};
@joel__lord
#WAQ17
Classification naïve bayésienne
CATÉGORISATION
Classifier.prototype.categorize = function(text) {
…
//Average out the probabilities
for (var j = 0; j < groups.length; j++) {
if (!finals[groups[j]]) finals[groups[j]] = [];
finals[groups[j]].push(probabilities[text][groups[j]]);
}
for (var i = 0; i < groups.length; i++) {
finals[groups[i]] = average(finals[groups[i]]);
}
};
@joel__lord
#WAQ17
Classification naïve bayésienne
CATÉGORISATION
Classifier.prototype.categorize = function(text) {
…
//Find the largest probability
var highestGroup = "";
var highestValue = 0;
for (var group in finals) {
if (finals[group] > highestValue) {
highestGroup = group;
highestValue = finals[group];
}
}
return highestGroup;
};
@joel__lord
#WAQ17
Classification naïve bayésienne
SOMMAIRE
Classifier.prototype.categorize = function(text) {
var self = this;
var probabilities = {};
var groups = [];
var finals = {};
//Find the groups
for (var k in this.dictionaries) {groups.push(k);}
var sums = {};
var probs = {};
//Loop through the groups to calculate the sums of found text
for (var j = 0; j < groups.length; j++) {
if (!sums[text]) sums[text] = 0;
if (!this.dictionaries[groups[j]][text]) this.dictionaries[groups[j]][text] = 0;
sums[text] += this.dictionaries[groups[j]][text];
probs[groups[j]] = (this.dictionaries[groups[j]][text]) ? this.dictionaries[groups[j]][text] : 0;
}
// Perform calculations
for (var j = 0; j < groups.length; j++) {
(!probabilities[text]) ? probabilities[text] = {} : "";
(!probs[groups[j]]) ? probabilities[text][groups[j]] = 0 : probabilities[text][groups[j]] =
probs[groups[j]]/sums[text];
}
//Average out the probabilities
for (var j = 0; j < groups.length; j++) {
if (!finals[groups[j]]) finals[groups[j]] = [];
finals[groups[j]].push(probabilities[text][groups[j]]);
}
for (var i = 0; i < groups.length; i++) {
finals[groups[i]] = average(finals[groups[i]]);
}
//Find the largest probability
var highestGroup = "";
var highestValue = 0;
for (var group in finals) {
if (finals[group] > highestValue) {
highestGroup = group;
highestValue = finals[group];
}
}
return highestGroup;
};
Montrez moi !
CLASSIFICATION NAÏVE BAYÉSIENNE
@joel__lord
#WAQ17
Analyse de sentiments
COMMENT ÇA FONCTIONNE
• Approche similaire aux classificateurs
• Utilise une liste de mots (AFINN-165) et parfois les emoticons pour
donner un score.
@joel__lord
#WAQ17
Analyse de sentiments
EXEMPLE DE CODE
var twit = require("twit");
var sentiment = require("sentiment");
@joel__lord
#WAQ17
Analyse de sentiments
EXEMPLE DE CODE
var keyword = "#waq17";
var t = new twit(require("./credentials"));
var stream1 = t.stream("statuses/filter", {track: keyword});
@joel__lord
#WAQ17
Analyse de sentiments
EXEMPLE DE CODE
stream1.on("tweet", function (tweet) {
});
@joel__lord
#WAQ17
Analyse de sentiments
EXEMPLE DE CODE
var score = sentiment(tweet.text);
console.log("--- n New Tweetn" + tweet.text + "n" + (score > 0 ?
"Positive" : "Negative"));
@joel__lord
#WAQ17
Analyse de sentiments
EXEMPLE DE CODE
var twit = require("twit");
var sentiment = require("sentiment");
var keyword = "#waq17";
var t = new twit(require("./credentials"));
var stream1 = t.stream("statuses/filter", {track: keyword});
stream1.on("tweet", function (tweet) {
var score = sentiment(tweet.text);
console.log("--- n New Tweetn" + tweet.text + "n" + (score > 0 ?
"Positive" : "Negative"));
});
Montrez moi !
ANALYSE DE SENTIMENTS
@joel__lord
#WAQ17
Algorithmes génétiques
ÇA MANGE QUOI EN HIVER
• Moyen de trouver une solution idéale
en utilisant des solutions aléatoires
• Cas pratiques
• Moteurs d’avion
• Hackrod
@joel__lord
#WAQ17
Algorithmes génétiques
COMMENT ÇA FONCTIONNE
• On crée une population d’individus aléatoires
• On garde les plus proches de la solution
• On garde des individus aléatoires
• On introduit des mutations aléatores
• On crée aléatoirement des “enfants”
• On arrive magiquement à une solution!
@joel__lord
#WAQ17
Algorithmes génétiques
COMMENT ÇA FONCTIONNE
• On crée une population d’individus aléatoires
• On garde les plus proches de la solution
• On garde des individus aléatoires
• On introduit des mutations aléatores
• On crée aléatoirement des “enfants”
• On arrive magiquement à une solution!
@joel__lord
#WAQ17
Algorithmes génétiques
L’IMPORTANCE DES MUTATIONS
@joel__lord
#WAQ17
Algorithmes génétiques
EXEMPLE DE CODE
var population = [];
const TARGET = 200;
const MIN = 0;
const MAX = TARGET - 1;
const IND_COUNT = 4;
const POP_SIZE = 100;
const CLOSE_ENOUGH = 0.001;
var RETAIN = 0.02;
var RANDOM_SELECTION = 0.05;
var MUTATION_PROBABILITY = 0.01;
@joel__lord
#WAQ17
Algorithmes génétiques
EXEMPLE DE CODE
//Declare Consts
function randomInt(min, max) {
return Math.round(random(min, max));
}
function random(min, max) {
if (max == undefined) { max = min; min = 0; }
if (max == undefined) { max = 100; }
return (Math.random()*(max-min)) + min;
}
@joel__lord
#WAQ17
Algorithmes génétiques
EXEMPLE DE CODE
//Declare Consts
function randomInt(min, max) {…}
function random(min, max) {…}
function fitness(individual) {
sum = individual.reduce((a,b) => a + b, 0);
return Math.abs(TARGET - sum);
}
function sortByFitness(population) {
population.sort((a, b) => {
var fitA = fitness(a); var fitB = fitness(b);
return fitA > fitB ? 1 : -1;
});
return population;
}
@joel__lord
#WAQ17
Algorithmes génétiques
EXEMPLE DE CODE
//Declare Consts
function randomInt(min, max) {…}
function random(min, max) {…}
function fitness(individual) {…}
function sortByFitness(population) {…}
function randomIndividual() {
var individual = [];
for (var i = 0; i < IND_COUNT; i++) {
individual.push(random(MIN, MAX));
}
return individual;
}
function randomPopulation(size) {
var population = [];
for (var i = 0; i < size; i++) {
population.push(randomIndividual());
}
return population;
}
@joel__lord
#WAQ17
Algorithmes génétiques
EXEMPLE DE CODE
//Declare Consts
function randomInt(min, max) {…}
function random(min, max) {…}
function fitness(individual) {…}
function sortByFitness(population) {…}
function randomIndividual() {…}
function randomPopulation(size) {…}
function mutate(population) {
for (var i=0; i < population.length; i++) {
if (MUTATION_PROBABILITY > Math.random()) {
var index = randomInt(population[i].length);
population[i][index] = random(MIN, MAX);
}
}
return population;
}
@joel__lord
#WAQ17
Algorithmes génétiques
EXEMPLE DE CODE
//Declare Consts
function randomInt(min, max) {…}
function random(min, max) {…}
function fitness(individual) {…}
function sortByFitness(population) {…}
function randomIndividual() {…}
function randomPopulation(size) {…}
function mutate(population) {…}
function reproduce(father, mother) {
var half = father.length / 2;
var child = [];
child = child.concat(father.slice(0, half), mother.slice(half,
mother.length));
return child;
}
@joel__lord
#WAQ17
Algorithmes génétiques
EXEMPLE DE CODE
//Declare Consts
function randomInt(min, max) {…}
function random(min, max) {…}
function fitness(individual) {…}
function sortByFitness(population) {…}
function randomIndividual() {…}
function randomPopulation(size) {…}
function mutate(population) {…}
function reproduce(father, mother) {…}
function evolve(population) {
var parents = [];
//Keep the best solutions
parents=sortByFitness(population).slice(0,Math.round(POP_SIZE*RETAIN));
//Randomly add new elements
for (var i = parents.length; i < POP_SIZE - parents.length; i++) {
if (RANDOM_SELECTION > Math.random()) {
parents.push(randomIndividual());
}
}
}
@joel__lord
#WAQ17
Algorithmes génétiques
EXEMPLE DE CODE
//Declare Consts
function randomInt(min, max) {…}
function random(min, max) {…}
function fitness(individual) {…}
function sortByFitness(population) {…}
function randomIndividual() {…}
function randomPopulation(size) {…}
function mutate(population) {…}
function reproduce(father, mother) {…}
function evolve(population) {
//Random Stuff
parents = mutate(parents);
var rndMax = parents.length - 1;
while (parents.length < POP_SIZE) {
var father = randomInt(rndMax);
var mother = randomInt(rndMax);
if (father != mother) {
father = parents[father]; mother = parents[mother];
parents.push(reproduce(father, mother));
}
}
return parents;
@joel__lord
#WAQ17
Algorithmes génétiques
EXEMPLE DE CODE
//Declare Consts
function randomInt(min, max) {…}
function random(min, max) {…}
function fitness(individual) {…}
function sortByFitness(population) {…}
function randomIndividual() {…}
function randomPopulation(size) {…}
function mutate(population) {…}
function reproduce(father, mother) {…}
function evolve(population) {…}
function findSolution() {
var population = randomPopulation(POP_SIZE);
var generation = 0;
while (fitness(population[0]) > CLOSE_ENOUGH) {
generation++;
population = evolve(population);
}
return {solution: population[0], generations: generation};
}
var sol = findSolution();
@joel__lord
#WAQ17
Algorithmes génétiques
EXEMPLE DE CODE
var population = [];
const TARGET = 200;
const MIN = 0;
const MAX = TARGET - 1;
const IND_COUNT = 4;
const POP_SIZE = 100;
const CLOSE_ENOUGH = 0.001;
var RETAIN = 0.02;
var RANDOM_SELECTION = 0.05;
var MUTATION_PROBABILITY = 0.01;
function randomInt(min, max) {
return Math.round(random(min, max));
}
function random(min, max) {
if (max == undefined) { max = min; min = 0; }
if (max == undefined) { max = 100; }
return (Math.random()*(max-min)) + min;
}
function fitness(individual) {
sum = individual.reduce((a,b) => a + b, 0);
return Math.abs(TARGET - sum);
}
function sortByFitness(population) {
population.sort((a, b) => {
var fitA = fitness(a); var fitB = fitness(b);
return fitA > fitB ? 1 : -1;
});
return population;
}
function randomIndividual() {
var individual = [];
for (var i = 0; i < IND_COUNT; i++) {
individual.push(random(MIN, MAX));
}
return individual;
}
function randomPopulation(size) {
var population = [];
for (var i = 0; i < size; i++) {
population.push(randomIndividual());
}
return population;
}
function mutate(population) {
for (var i=0; i < population.length; i++) {
if (MUTATION_PROBABILITY > Math.random()) {
var index = randomInt(population[i].length);
population[i][index] = random(MIN, MAX);
}
}
return population;
}
function reproduce(father, mother) {
var half = father.length / 2;
var child = [];
child = child.concat(father.slice(0, half), mother.slice(half, mother.length));
return child;
}
function evolve(population) {
var parents = [];
//Keep the best solutions
parents = sortByFitness(population).slice(0, Math.round(POP_SIZE*RETAIN));
//Randomly add new elements
for (var i = parents.length; i < POP_SIZE - parents.length; i++) {
if (RANDOM_SELECTION > Math.random()) {
parents.push(randomIndividual());
}
}
//Mutate elements
parents = mutate(parents);
var rndMax = parents.length - 1;
while (parents.length < POP_SIZE) {
var father = randomInt(rndMax);
var mother = randomInt(rndMax);
if (father != mother) {
father = parents[father];
mother = parents[mother];
parents.push(reproduce(father, mother));
}
}
return parents;
}
function findSolution() {
var population = randomPopulation(POP_SIZE);
var generation = 0;
while (fitness(population[0]) > CLOSE_ENOUGH) {
generation++;
population = evolve(population);
}
return {solution: population[0], generations: generation};
}
var sol = findSolution();
console.log("Found solution in " + sol.generations + " generations.", sol.solution);
Faut le voir pour le croire
ALGORITHMES GÉNÉTIQUES
DOCUMENT CONFIDENTIEL, TOUT DROIT RÉSERVÉ
PRESENTED BY
That’s all folks !
Questions?
JOEL LORD
April 4th, 2017
TWITTER: @JOEL__LORD
GITHUB: HTTP://GITHUB.COM/JOELLORD
@joel__lord
#WAQ17
Question
IMPACT OF PARAMETERS ON GENETIC ALGORITHMS

More Related Content

Similar to Apprendre l'apprentissage automatisé

State of Play. Data Science on Hadoop in 2015 by SEAN OWEN at Big Data Spain ...
State of Play. Data Science on Hadoop in 2015 by SEAN OWEN at Big Data Spain ...State of Play. Data Science on Hadoop in 2015 by SEAN OWEN at Big Data Spain ...
State of Play. Data Science on Hadoop in 2015 by SEAN OWEN at Big Data Spain ...
Big Data Spain
 
FIFA fails, Guy Kawasaki and real estate in SF - find out about all three by ...
FIFA fails, Guy Kawasaki and real estate in SF - find out about all three by ...FIFA fails, Guy Kawasaki and real estate in SF - find out about all three by ...
FIFA fails, Guy Kawasaki and real estate in SF - find out about all three by ...
Elżbieta Bednarek
 
Big Data Analytics: Finding diamonds in the rough with Azure
Big Data Analytics: Finding diamonds in the rough with AzureBig Data Analytics: Finding diamonds in the rough with Azure
Big Data Analytics: Finding diamonds in the rough with Azure
Christos Charmatzis
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
Manish Pandit
 
AUTOMATED DATA EXPLORATION - Building efficient analysis pipelines with Dask
AUTOMATED DATA EXPLORATION - Building efficient analysis pipelines with DaskAUTOMATED DATA EXPLORATION - Building efficient analysis pipelines with Dask
AUTOMATED DATA EXPLORATION - Building efficient analysis pipelines with Dask
Víctor Zabalza
 
Elasticsearch - Zero to Hero
Elasticsearch - Zero to HeroElasticsearch - Zero to Hero
Elasticsearch - Zero to Hero
Daniel Ziv
 
Apache lucene - full text search
Apache lucene - full text searchApache lucene - full text search
Apache lucene - full text searchMarcelo Cure
 
Quepy
QuepyQuepy
Quepy
dmoisset
 
Querying your database in natural language by Daniel Moisset PyData SV 2014
Querying your database in natural language by Daniel Moisset PyData SV 2014Querying your database in natural language by Daniel Moisset PyData SV 2014
Querying your database in natural language by Daniel Moisset PyData SV 2014
PyData
 
The Road to Data Science - Joel Grus, June 2015
The Road to Data Science - Joel Grus, June 2015The Road to Data Science - Joel Grus, June 2015
The Road to Data Science - Joel Grus, June 2015
Seattle DAML meetup
 
To scale or not to scale: Key/Value, Document, SQL, JPA – What’s right for my...
To scale or not to scale: Key/Value, Document, SQL, JPA – What’s right for my...To scale or not to scale: Key/Value, Document, SQL, JPA – What’s right for my...
To scale or not to scale: Key/Value, Document, SQL, JPA – What’s right for my...
Uri Cohen
 
Leveraging NLP and Deep Learning for Document Recommendations in the Cloud
Leveraging NLP and Deep Learning for Document Recommendations in the CloudLeveraging NLP and Deep Learning for Document Recommendations in the Cloud
Leveraging NLP and Deep Learning for Document Recommendations in the Cloud
Databricks
 
Get connected with python
Get connected with pythonGet connected with python
Get connected with python
Jan Kroon
 
SQL vs NoSQL
SQL vs NoSQLSQL vs NoSQL
SQL vs NoSQL
Jacinto Limjap
 
07-Classification.pptx
07-Classification.pptx07-Classification.pptx
07-Classification.pptx
Shree Shree
 
Penerapan text mining menggunakan python
Penerapan text mining menggunakan pythonPenerapan text mining menggunakan python
Penerapan text mining menggunakan python
Andreas Chandra
 
Cool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchCool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearch
clintongormley
 
From keyword-based search to language-agnostic semantic search
From keyword-based search to language-agnostic semantic searchFrom keyword-based search to language-agnostic semantic search
From keyword-based search to language-agnostic semantic search
CareerBuilder.com
 
Harnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, Germany
Harnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, GermanyHarnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, Germany
Harnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, Germany
André Ricardo Barreto de Oliveira
 
Compass Framework
Compass FrameworkCompass Framework
Compass Framework
Lukas Vlcek
 

Similar to Apprendre l'apprentissage automatisé (20)

State of Play. Data Science on Hadoop in 2015 by SEAN OWEN at Big Data Spain ...
State of Play. Data Science on Hadoop in 2015 by SEAN OWEN at Big Data Spain ...State of Play. Data Science on Hadoop in 2015 by SEAN OWEN at Big Data Spain ...
State of Play. Data Science on Hadoop in 2015 by SEAN OWEN at Big Data Spain ...
 
FIFA fails, Guy Kawasaki and real estate in SF - find out about all three by ...
FIFA fails, Guy Kawasaki and real estate in SF - find out about all three by ...FIFA fails, Guy Kawasaki and real estate in SF - find out about all three by ...
FIFA fails, Guy Kawasaki and real estate in SF - find out about all three by ...
 
Big Data Analytics: Finding diamonds in the rough with Azure
Big Data Analytics: Finding diamonds in the rough with AzureBig Data Analytics: Finding diamonds in the rough with Azure
Big Data Analytics: Finding diamonds in the rough with Azure
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
AUTOMATED DATA EXPLORATION - Building efficient analysis pipelines with Dask
AUTOMATED DATA EXPLORATION - Building efficient analysis pipelines with DaskAUTOMATED DATA EXPLORATION - Building efficient analysis pipelines with Dask
AUTOMATED DATA EXPLORATION - Building efficient analysis pipelines with Dask
 
Elasticsearch - Zero to Hero
Elasticsearch - Zero to HeroElasticsearch - Zero to Hero
Elasticsearch - Zero to Hero
 
Apache lucene - full text search
Apache lucene - full text searchApache lucene - full text search
Apache lucene - full text search
 
Quepy
QuepyQuepy
Quepy
 
Querying your database in natural language by Daniel Moisset PyData SV 2014
Querying your database in natural language by Daniel Moisset PyData SV 2014Querying your database in natural language by Daniel Moisset PyData SV 2014
Querying your database in natural language by Daniel Moisset PyData SV 2014
 
The Road to Data Science - Joel Grus, June 2015
The Road to Data Science - Joel Grus, June 2015The Road to Data Science - Joel Grus, June 2015
The Road to Data Science - Joel Grus, June 2015
 
To scale or not to scale: Key/Value, Document, SQL, JPA – What’s right for my...
To scale or not to scale: Key/Value, Document, SQL, JPA – What’s right for my...To scale or not to scale: Key/Value, Document, SQL, JPA – What’s right for my...
To scale or not to scale: Key/Value, Document, SQL, JPA – What’s right for my...
 
Leveraging NLP and Deep Learning for Document Recommendations in the Cloud
Leveraging NLP and Deep Learning for Document Recommendations in the CloudLeveraging NLP and Deep Learning for Document Recommendations in the Cloud
Leveraging NLP and Deep Learning for Document Recommendations in the Cloud
 
Get connected with python
Get connected with pythonGet connected with python
Get connected with python
 
SQL vs NoSQL
SQL vs NoSQLSQL vs NoSQL
SQL vs NoSQL
 
07-Classification.pptx
07-Classification.pptx07-Classification.pptx
07-Classification.pptx
 
Penerapan text mining menggunakan python
Penerapan text mining menggunakan pythonPenerapan text mining menggunakan python
Penerapan text mining menggunakan python
 
Cool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchCool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearch
 
From keyword-based search to language-agnostic semantic search
From keyword-based search to language-agnostic semantic searchFrom keyword-based search to language-agnostic semantic search
From keyword-based search to language-agnostic semantic search
 
Harnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, Germany
Harnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, GermanyHarnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, Germany
Harnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, Germany
 
Compass Framework
Compass FrameworkCompass Framework
Compass Framework
 

More from Joel Lord

From Ceasar Cipher To Quantum Cryptography
From Ceasar Cipher To Quantum CryptographyFrom Ceasar Cipher To Quantum Cryptography
From Ceasar Cipher To Quantum Cryptography
Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
Joel Lord
 
Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Forgot Password? Yes I Did!
Forgot Password? Yes I Did!
Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
Joel Lord
 
Mot de passe oublié? Absolument!
Mot de passe oublié? Absolument!Mot de passe oublié? Absolument!
Mot de passe oublié? Absolument!
Joel Lord
 
Asynchronicity: concurrency. A tale of
Asynchronicity: concurrency. A tale ofAsynchronicity: concurrency. A tale of
Asynchronicity: concurrency. A tale of
Joel Lord
 
Learning Machine Learning
Learning Machine LearningLearning Machine Learning
Learning Machine Learning
Joel Lord
 
Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Forgot Password? Yes I Did!
Forgot Password? Yes I Did!
Joel Lord
 
WTH is a JWT
WTH is a JWTWTH is a JWT
WTH is a JWT
Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
Joel Lord
 
Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Forgot Password? Yes I Did!
Forgot Password? Yes I Did!
Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
Joel Lord
 
WTH is a JWT
WTH is a JWTWTH is a JWT
WTH is a JWT
Joel Lord
 
Asynchonicity: concurrency. A tale of
Asynchonicity: concurrency. A tale ofAsynchonicity: concurrency. A tale of
Asynchonicity: concurrency. A tale of
Joel Lord
 
I Don't Care About Security
I Don't Care About Security I Don't Care About Security
I Don't Care About Security
Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
Joel Lord
 
Secure your SPA with Auth0
Secure your SPA with Auth0Secure your SPA with Auth0
Secure your SPA with Auth0
Joel Lord
 

More from Joel Lord (20)

From Ceasar Cipher To Quantum Cryptography
From Ceasar Cipher To Quantum CryptographyFrom Ceasar Cipher To Quantum Cryptography
From Ceasar Cipher To Quantum Cryptography
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Forgot Password? Yes I Did!
Forgot Password? Yes I Did!
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
Mot de passe oublié? Absolument!
Mot de passe oublié? Absolument!Mot de passe oublié? Absolument!
Mot de passe oublié? Absolument!
 
Asynchronicity: concurrency. A tale of
Asynchronicity: concurrency. A tale ofAsynchronicity: concurrency. A tale of
Asynchronicity: concurrency. A tale of
 
Learning Machine Learning
Learning Machine LearningLearning Machine Learning
Learning Machine Learning
 
Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Forgot Password? Yes I Did!
Forgot Password? Yes I Did!
 
WTH is a JWT
WTH is a JWTWTH is a JWT
WTH is a JWT
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Forgot Password? Yes I Did!
Forgot Password? Yes I Did!
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
WTH is a JWT
WTH is a JWTWTH is a JWT
WTH is a JWT
 
Asynchonicity: concurrency. A tale of
Asynchonicity: concurrency. A tale ofAsynchonicity: concurrency. A tale of
Asynchonicity: concurrency. A tale of
 
I Don't Care About Security
I Don't Care About Security I Don't Care About Security
I Don't Care About Security
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
Secure your SPA with Auth0
Secure your SPA with Auth0Secure your SPA with Auth0
Secure your SPA with Auth0
 

Recently uploaded

test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
CIOWomenMagazine
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
eutxy
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Florence Consulting
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Brad Spiegel Macon GA
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
3ipehhoa
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
laozhuseo02
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
Javier Lasa
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
Gal Baras
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
ufdana
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
JungkooksNonexistent
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
laozhuseo02
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
3ipehhoa
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
keoku
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
Comptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guideComptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guide
GTProductions1
 
Bài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docxBài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docx
nhiyenphan2005
 

Recently uploaded (20)

test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
Comptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guideComptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guide
 
Bài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docxBài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docx
 

Apprendre l'apprentissage automatisé

  • 2. @joel__lord #WAQ17 JOEL LORD À propos de moi • Adorateur de Javascript • Bidouilleur • Enthousiaste des technologies
  • 3. @joel__lord #WAQ17 Agenda • Intelligence articifielle vs Apprentissage automatisé • Big Data et apprentissage profond • Les algo de base • Naïve Bayes Classifier • Sentiment Analysis • Genetic Algorithm
  • 4. @joel__lord #WAQ17 Agenda • Intelligence articifielle vs Apprentissage automatisé • Big Data et apprentissage profond • Les algo de base • Naïve Bayes Classifier • Sentiment Analysis • Genetic Algorithm • Le tout parsemé de démos
  • 5. Intelligence Articielle et Apprentissage automatisé UN PEU PLUS AU SUJET DE…
  • 7. @joel__lord #WAQ17 L'intelligence artificielle (IA) est l'intelligence fournie par les machines. En informatique, le domaine de la recherche sur l'IA se définit comme l'étude des «agents intelligents»: tout dispositif qui perçoit son environnement et prend des mesures qui maximisent ses chances de succès à un but.
  • 10. @joel__lord #WAQ17 Intelligence Artificielle EXEMPLES CONCRETES • Filtres de polluriels • Prévention de la fraude
  • 11. @joel__lord #WAQ17 Intelligence Artificielle EXEMPLES CONCRETES • Filtres de polluriels • Prévention de la fraude • Reconnaissance faciale
  • 12. @joel__lord #WAQ17 L'apprentissage automatisé est le sous- domaine de l'informatique qui donne aux «ordinateurs la possibilité d'apprendre sans être explicitement programmés».
  • 14. @joel__lord #WAQ17 Apprentissage automatisé EXEMPLES CONCRETS • Thermostats intelligents • Cortana, Siri et Ok Google
  • 15. @joel__lord #WAQ17 Apprentissage automatisé EXEMPLES CONCRETS • Thermostats intelligents • Cortana, Siri et Ok Google • Chat Bots
  • 16. @joel__lord #WAQ17 Apprentissage automatisé EXEMPLES CONCRETS • Thermostats intelligents • Cortana, Siri et Ok Google • Chat Bots
  • 17. @joel__lord #WAQ17 Apprentissage automatisé EXEMPLES CONCRETS • Thermostats intelligents • Cortana, Siri et Ok Google • Chat Bots
  • 18. @joel__lord #WAQ17 Apprentissage automatisé EXEMPLES CONCRETS • Thermostats intelligents • Cortana, Siri et Ok Google • Chat Bots
  • 19. @joel__lord #WAQ17 Apprentissage automatisé EXEMPLES CONCRETS • Thermostats intelligents • Cortana, Siri et Ok Google • Chat Bots
  • 20. @joel__lord #WAQ17 Apprentissage automatisé EXEMPLES CONCRETS • Thermostats intelligents • Cortana, Siri et Ok Google • Chat Bots
  • 21. @joel__lord #WAQ17 Apprentissage automatisé EXEMPLES CONCRETS • Thermostats intelligents • Cortana, Siri et Ok Google • Chat Bots
  • 22. Big Data et apprentissage profond ENCORE UN PEU DE THÉORIE
  • 23. @joel__lord #WAQ17 Big Data QU’EST-CE QUE C’EST? • Croissance exponentielle des données digitales • Trop complexe à traiter de façon traditionnelle • Principalement utilisée pour de la prédiction ou analyse des comportements des utilisateurs
  • 24. @joel__lord #WAQ17 Apprentissage profonD (Deep learning) QU’EST-CE QUE C’EST • Utilise des réseaux neuronaux pour traiter les données • Idéal pour des classsificateurs complexes • Un moyen de traiter le big data
  • 25. @joel__lord #WAQ17 Réseaux Neuronaux EUH…. WHAT? • Une collection de couches d’opérations • Déconstruction d’une problème complexe en tâches plus simples
  • 26. Supervisé vs non-supervisé UNE DERNIÈRE PETITE CHOSE…
  • 27. @joel__lord #WAQ17 Apprentissage supervisé QU’EST-CE QUE C’EST • Requiert une rétroaction • Débute avec aucune connaissance et augmente sa compréhension • Inutile lorsque les données sont de mauvaise qualité • Cas pratiques • Classification
  • 28. @joel__lord #WAQ17 Apprentissage non-supervisé CONTRAIRE DE SUPERVISÉ? • Besoin d’aucun feedback • Pratique lorsqu’il n’y a pas de bonne ou mauvais réponse • Aide à trouver des patterns ou structures de données • Cas pratiques • “Vous pourriez aussi être intéressé par…” • Grouper des clients selon leur comportement
  • 29. Apprentissage automatisé DE RETOUR À LA PROGRAMMATION NORMALE
  • 30. @joel__lord #WAQ17 Classification naïve bayésienne DÉFINITION • Algorithme supervisé • Un simple moyen de classifier et identifier l’information var classifier = new Classifier(); classifier.classify("J'adore le Javascript", POSITIVE); classifier.classify('WebStorm est génial', POSITIVE); classifier.classify('Non, Javascript est mauvais', NEGATIVE); classifier.classify("Je n'aime pas le brocoli", NEGATIVE); console.log(classifier.categorize("Javascript est génial")); // "positive" console.log(classifier.categorize("J'aime WebStorm")); // undefined
  • 31. @joel__lord #WAQ17 Classification naïve bayésienne DÉFINITION • Algorithme supervisé • Un simple moyen de classifier et identifier l’information • Mathématiquement exprimé par la fonction suivante
  • 32. @joel__lord #WAQ17 Classification naïve bayésienne DÉFINITION DE LA STRUCTURE var Classifier = function() { this.dictionaries = {}; }; Classifier.prototype.classify = function(text, group) { }; Classifier.prototype.categorize = function(text) { };
  • 33. @joel__lord #WAQ17 Classification naïve bayésienne CRÉATION DE LA CLASSIFICATION Classifier.prototype.classify = function(text, group) { var words = text.split(" "); this.dictionaries[group] ? "" : this.dictionaries[group] = {}; var self = this; words.map((w) => { if (self.dictionaries[group][w]) { self.dictionaries[group][w]++; } else { self.dictionaries[group][w] = 1; } }); };
  • 34. @joel__lord #WAQ17 Classification naïve bayésienne ET LE RESTE… Classifier.prototype.categorize = function(text) { var self = this; var probabilities = {}; var groups = []; var finals = {}; //Find the groups for (var k in this.dictionaries) {groups.push(k);} var sums = {}; var probs = {}; //Loop through the groups to calculate the sums of found text for (var j = 0; j < groups.length; j++) { if (!sums[text]) sums[text] = 0; if (!this.dictionaries[groups[j]][text]) this.dictionaries[groups[j]][text] = 0; sums[text] += this.dictionaries[groups[j]][text]; probs[groups[j]] = (this.dictionaries[groups[j]][text]) ? this.dictionaries[groups[j]][text] : 0; } // Perform calculations for (var j = 0; j < groups.length; j++) { (!probabilities[text]) ? probabilities[text] = {} : ""; (!probs[groups[j]]) ? probabilities[text][groups[j]] = 0 : probabilities[text][groups[j]] = probs[groups[j]]/sums[text]; } //Average out the probabilities for (var j = 0; j < groups.length; j++) { if (!finals[groups[j]]) finals[groups[j]] = []; finals[groups[j]].push(probabilities[text][groups[j]]); } for (var i = 0; i < groups.length; i++) { finals[groups[i]] = average(finals[groups[i]]); } //Find the largest probability var highestGroup = ""; var highestValue = 0; for (var group in finals) { if (finals[group] > highestValue) { highestGroup = group; highestValue = finals[group]; } } return highestGroup; };
  • 35. @joel__lord #WAQ17 Classification naïve bayésienne CATÉGORISATION Classifier.prototype.categorize = function(text) { var self = this; var probabilities = {}; var groups = []; var finals = {}; };
  • 36. @joel__lord #WAQ17 Classification naïve bayésienne CATÉGORISATION Classifier.prototype.categorize = function(text) { … //Find the groups for (var k in this.dictionaries) {groups.push(k);} var sums = {}; var probs = {}; };
  • 37. @joel__lord #WAQ17 Classification naïve bayésienne CATÉGORISATION Classifier.prototype.categorize = function(text) { … //Loop through the groups to calculate the sums of found text for (var j = 0; j < groups.length; j++) { if (!sums[text]) sums[text] = 0; if (!this.dictionaries[groups[j]][text]) this.dictionaries[groups[j]][text] = 0; sums[text] += this.dictionaries[groups[j]][text]; probs[groups[j]] = (this.dictionaries[groups[j]][text]) ? this.dictionaries[groups[j]][text] : 0; }};
  • 38. @joel__lord #WAQ17 Classification naïve bayésienne CATÉGORISATION Classifier.prototype.categorize = function(text) { … // Perform calculations for (var j = 0; j < groups.length; j++) { (!probabilities[text]) ? probabilities[text] = {} : ""; (!probs[groups[j]]) ? probabilities[text][groups[j]] = 0 : probabilities[text][groups[j]] = probs[groups[j]]/sums[text]; }};
  • 39. @joel__lord #WAQ17 Classification naïve bayésienne CATÉGORISATION Classifier.prototype.categorize = function(text) { … //Average out the probabilities for (var j = 0; j < groups.length; j++) { if (!finals[groups[j]]) finals[groups[j]] = []; finals[groups[j]].push(probabilities[text][groups[j]]); } for (var i = 0; i < groups.length; i++) { finals[groups[i]] = average(finals[groups[i]]); } };
  • 40. @joel__lord #WAQ17 Classification naïve bayésienne CATÉGORISATION Classifier.prototype.categorize = function(text) { … //Find the largest probability var highestGroup = ""; var highestValue = 0; for (var group in finals) { if (finals[group] > highestValue) { highestGroup = group; highestValue = finals[group]; } } return highestGroup; };
  • 41. @joel__lord #WAQ17 Classification naïve bayésienne SOMMAIRE Classifier.prototype.categorize = function(text) { var self = this; var probabilities = {}; var groups = []; var finals = {}; //Find the groups for (var k in this.dictionaries) {groups.push(k);} var sums = {}; var probs = {}; //Loop through the groups to calculate the sums of found text for (var j = 0; j < groups.length; j++) { if (!sums[text]) sums[text] = 0; if (!this.dictionaries[groups[j]][text]) this.dictionaries[groups[j]][text] = 0; sums[text] += this.dictionaries[groups[j]][text]; probs[groups[j]] = (this.dictionaries[groups[j]][text]) ? this.dictionaries[groups[j]][text] : 0; } // Perform calculations for (var j = 0; j < groups.length; j++) { (!probabilities[text]) ? probabilities[text] = {} : ""; (!probs[groups[j]]) ? probabilities[text][groups[j]] = 0 : probabilities[text][groups[j]] = probs[groups[j]]/sums[text]; } //Average out the probabilities for (var j = 0; j < groups.length; j++) { if (!finals[groups[j]]) finals[groups[j]] = []; finals[groups[j]].push(probabilities[text][groups[j]]); } for (var i = 0; i < groups.length; i++) { finals[groups[i]] = average(finals[groups[i]]); } //Find the largest probability var highestGroup = ""; var highestValue = 0; for (var group in finals) { if (finals[group] > highestValue) { highestGroup = group; highestValue = finals[group]; } } return highestGroup; };
  • 42. Montrez moi ! CLASSIFICATION NAÏVE BAYÉSIENNE
  • 43. @joel__lord #WAQ17 Analyse de sentiments COMMENT ÇA FONCTIONNE • Approche similaire aux classificateurs • Utilise une liste de mots (AFINN-165) et parfois les emoticons pour donner un score.
  • 44. @joel__lord #WAQ17 Analyse de sentiments EXEMPLE DE CODE var twit = require("twit"); var sentiment = require("sentiment");
  • 45. @joel__lord #WAQ17 Analyse de sentiments EXEMPLE DE CODE var keyword = "#waq17"; var t = new twit(require("./credentials")); var stream1 = t.stream("statuses/filter", {track: keyword});
  • 46. @joel__lord #WAQ17 Analyse de sentiments EXEMPLE DE CODE stream1.on("tweet", function (tweet) { });
  • 47. @joel__lord #WAQ17 Analyse de sentiments EXEMPLE DE CODE var score = sentiment(tweet.text); console.log("--- n New Tweetn" + tweet.text + "n" + (score > 0 ? "Positive" : "Negative"));
  • 48. @joel__lord #WAQ17 Analyse de sentiments EXEMPLE DE CODE var twit = require("twit"); var sentiment = require("sentiment"); var keyword = "#waq17"; var t = new twit(require("./credentials")); var stream1 = t.stream("statuses/filter", {track: keyword}); stream1.on("tweet", function (tweet) { var score = sentiment(tweet.text); console.log("--- n New Tweetn" + tweet.text + "n" + (score > 0 ? "Positive" : "Negative")); });
  • 49. Montrez moi ! ANALYSE DE SENTIMENTS
  • 50. @joel__lord #WAQ17 Algorithmes génétiques ÇA MANGE QUOI EN HIVER • Moyen de trouver une solution idéale en utilisant des solutions aléatoires • Cas pratiques • Moteurs d’avion • Hackrod
  • 51. @joel__lord #WAQ17 Algorithmes génétiques COMMENT ÇA FONCTIONNE • On crée une population d’individus aléatoires • On garde les plus proches de la solution • On garde des individus aléatoires • On introduit des mutations aléatores • On crée aléatoirement des “enfants” • On arrive magiquement à une solution!
  • 52. @joel__lord #WAQ17 Algorithmes génétiques COMMENT ÇA FONCTIONNE • On crée une population d’individus aléatoires • On garde les plus proches de la solution • On garde des individus aléatoires • On introduit des mutations aléatores • On crée aléatoirement des “enfants” • On arrive magiquement à une solution!
  • 54. @joel__lord #WAQ17 Algorithmes génétiques EXEMPLE DE CODE var population = []; const TARGET = 200; const MIN = 0; const MAX = TARGET - 1; const IND_COUNT = 4; const POP_SIZE = 100; const CLOSE_ENOUGH = 0.001; var RETAIN = 0.02; var RANDOM_SELECTION = 0.05; var MUTATION_PROBABILITY = 0.01;
  • 55. @joel__lord #WAQ17 Algorithmes génétiques EXEMPLE DE CODE //Declare Consts function randomInt(min, max) { return Math.round(random(min, max)); } function random(min, max) { if (max == undefined) { max = min; min = 0; } if (max == undefined) { max = 100; } return (Math.random()*(max-min)) + min; }
  • 56. @joel__lord #WAQ17 Algorithmes génétiques EXEMPLE DE CODE //Declare Consts function randomInt(min, max) {…} function random(min, max) {…} function fitness(individual) { sum = individual.reduce((a,b) => a + b, 0); return Math.abs(TARGET - sum); } function sortByFitness(population) { population.sort((a, b) => { var fitA = fitness(a); var fitB = fitness(b); return fitA > fitB ? 1 : -1; }); return population; }
  • 57. @joel__lord #WAQ17 Algorithmes génétiques EXEMPLE DE CODE //Declare Consts function randomInt(min, max) {…} function random(min, max) {…} function fitness(individual) {…} function sortByFitness(population) {…} function randomIndividual() { var individual = []; for (var i = 0; i < IND_COUNT; i++) { individual.push(random(MIN, MAX)); } return individual; } function randomPopulation(size) { var population = []; for (var i = 0; i < size; i++) { population.push(randomIndividual()); } return population; }
  • 58. @joel__lord #WAQ17 Algorithmes génétiques EXEMPLE DE CODE //Declare Consts function randomInt(min, max) {…} function random(min, max) {…} function fitness(individual) {…} function sortByFitness(population) {…} function randomIndividual() {…} function randomPopulation(size) {…} function mutate(population) { for (var i=0; i < population.length; i++) { if (MUTATION_PROBABILITY > Math.random()) { var index = randomInt(population[i].length); population[i][index] = random(MIN, MAX); } } return population; }
  • 59. @joel__lord #WAQ17 Algorithmes génétiques EXEMPLE DE CODE //Declare Consts function randomInt(min, max) {…} function random(min, max) {…} function fitness(individual) {…} function sortByFitness(population) {…} function randomIndividual() {…} function randomPopulation(size) {…} function mutate(population) {…} function reproduce(father, mother) { var half = father.length / 2; var child = []; child = child.concat(father.slice(0, half), mother.slice(half, mother.length)); return child; }
  • 60. @joel__lord #WAQ17 Algorithmes génétiques EXEMPLE DE CODE //Declare Consts function randomInt(min, max) {…} function random(min, max) {…} function fitness(individual) {…} function sortByFitness(population) {…} function randomIndividual() {…} function randomPopulation(size) {…} function mutate(population) {…} function reproduce(father, mother) {…} function evolve(population) { var parents = []; //Keep the best solutions parents=sortByFitness(population).slice(0,Math.round(POP_SIZE*RETAIN)); //Randomly add new elements for (var i = parents.length; i < POP_SIZE - parents.length; i++) { if (RANDOM_SELECTION > Math.random()) { parents.push(randomIndividual()); } } }
  • 61. @joel__lord #WAQ17 Algorithmes génétiques EXEMPLE DE CODE //Declare Consts function randomInt(min, max) {…} function random(min, max) {…} function fitness(individual) {…} function sortByFitness(population) {…} function randomIndividual() {…} function randomPopulation(size) {…} function mutate(population) {…} function reproduce(father, mother) {…} function evolve(population) { //Random Stuff parents = mutate(parents); var rndMax = parents.length - 1; while (parents.length < POP_SIZE) { var father = randomInt(rndMax); var mother = randomInt(rndMax); if (father != mother) { father = parents[father]; mother = parents[mother]; parents.push(reproduce(father, mother)); } } return parents;
  • 62. @joel__lord #WAQ17 Algorithmes génétiques EXEMPLE DE CODE //Declare Consts function randomInt(min, max) {…} function random(min, max) {…} function fitness(individual) {…} function sortByFitness(population) {…} function randomIndividual() {…} function randomPopulation(size) {…} function mutate(population) {…} function reproduce(father, mother) {…} function evolve(population) {…} function findSolution() { var population = randomPopulation(POP_SIZE); var generation = 0; while (fitness(population[0]) > CLOSE_ENOUGH) { generation++; population = evolve(population); } return {solution: population[0], generations: generation}; } var sol = findSolution();
  • 63. @joel__lord #WAQ17 Algorithmes génétiques EXEMPLE DE CODE var population = []; const TARGET = 200; const MIN = 0; const MAX = TARGET - 1; const IND_COUNT = 4; const POP_SIZE = 100; const CLOSE_ENOUGH = 0.001; var RETAIN = 0.02; var RANDOM_SELECTION = 0.05; var MUTATION_PROBABILITY = 0.01; function randomInt(min, max) { return Math.round(random(min, max)); } function random(min, max) { if (max == undefined) { max = min; min = 0; } if (max == undefined) { max = 100; } return (Math.random()*(max-min)) + min; } function fitness(individual) { sum = individual.reduce((a,b) => a + b, 0); return Math.abs(TARGET - sum); } function sortByFitness(population) { population.sort((a, b) => { var fitA = fitness(a); var fitB = fitness(b); return fitA > fitB ? 1 : -1; }); return population; } function randomIndividual() { var individual = []; for (var i = 0; i < IND_COUNT; i++) { individual.push(random(MIN, MAX)); } return individual; } function randomPopulation(size) { var population = []; for (var i = 0; i < size; i++) { population.push(randomIndividual()); } return population; } function mutate(population) { for (var i=0; i < population.length; i++) { if (MUTATION_PROBABILITY > Math.random()) { var index = randomInt(population[i].length); population[i][index] = random(MIN, MAX); } } return population; } function reproduce(father, mother) { var half = father.length / 2; var child = []; child = child.concat(father.slice(0, half), mother.slice(half, mother.length)); return child; } function evolve(population) { var parents = []; //Keep the best solutions parents = sortByFitness(population).slice(0, Math.round(POP_SIZE*RETAIN)); //Randomly add new elements for (var i = parents.length; i < POP_SIZE - parents.length; i++) { if (RANDOM_SELECTION > Math.random()) { parents.push(randomIndividual()); } } //Mutate elements parents = mutate(parents); var rndMax = parents.length - 1; while (parents.length < POP_SIZE) { var father = randomInt(rndMax); var mother = randomInt(rndMax); if (father != mother) { father = parents[father]; mother = parents[mother]; parents.push(reproduce(father, mother)); } } return parents; } function findSolution() { var population = randomPopulation(POP_SIZE); var generation = 0; while (fitness(population[0]) > CLOSE_ENOUGH) { generation++; population = evolve(population); } return {solution: population[0], generations: generation}; } var sol = findSolution(); console.log("Found solution in " + sol.generations + " generations.", sol.solution);
  • 64. Faut le voir pour le croire ALGORITHMES GÉNÉTIQUES
  • 65. DOCUMENT CONFIDENTIEL, TOUT DROIT RÉSERVÉ PRESENTED BY That’s all folks ! Questions? JOEL LORD April 4th, 2017 TWITTER: @JOEL__LORD GITHUB: HTTP://GITHUB.COM/JOELLORD