1 Données synthétiques



Documents pareils
Projet SINF2275 «Data mining and decision making» Projet classification et credit scoring

ANALYSE DU RISQUE DE CRÉDIT

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Cours de méthodes de scoring

LA NOTATION STATISTIQUE DES EMPRUNTEURS OU «SCORING»

Indépendance Probabilité conditionnelle. Chapitre 3 Événements indépendants et Probabilités conditionnelles

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Aide - mémoire gnuplot 4.0

Travaux pratiques avec RapidMiner

Deuxième Licence en Informatique Data Warehousing et Data Mining La Classification - 1

Techniques du Data Mining pour la prédiction de faillite des entreprises et la gestion du risque de crédit

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

1 Importer et modifier des données avec R Commander

Le Data Mining au service du Scoring ou notation statistique des emprunteurs!

Ici, le titre de la. Tableaux de bords de conférence

HEC Montréal MODÈLE DE PROBABILITÉ DE DÉFAUT DES PRÊTS D UNE BANQUE CANADIENNE

Manuel de l agent de crédit Banco Solidario

Chapitre 3. Les distributions à deux variables

Déroulement d un projet en DATA MINING, préparation et analyse des données. Walid AYADI

Projet : Ecole Compétences Entreprise ECONOMIE TECHNICIEN/TECHNICIENNE EN COMPTABILITE

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

Dossier : Date : Commissaire : M e Diane Boissinot MICHAËLLA LESSARD. Demanderesse MULTI-RESSOURCES. Entreprise DÉCISION OBJET

Introduction au datamining

Exercice 3 du cours Management Bancaire : «Risque de crédit et scoring»

Information et communication

LES MODELES DE SCORE

Corrigé à l usage exclusif des experts

a) La technique de l analyse discriminante linéaire : une brève présentation. 3 étapes de la méthode doivent être distinguées :

INF6304 Interfaces Intelligentes

Nombre dérivé et tangente

Comment Repérer les Faux Logiciels Antivirus Par l équipe FortiGuard Labs de Fortinet.

R01 Import de données

Arbres binaires de décision

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

Maîtrise Cycle/cours Activités concernées

Institut Informatique de gestion. Communication en situation de crise

Big Data : Risques et contre-mesures

LA GMAO ACCEDER : EXPLOITATION POUR L ENSEIGNEMENT

Plus petit, plus grand, ranger et comparer

Statistique descriptive. Interrogation 2 : à rendre le Jeudi 18 novembre

Probabilités conditionnelles

Gestion des données avec R

3.2. Matlab/Simulink Généralités

TESTS D ÉVALUATION DU FRANÇAIS POUR L ADMISSION AU MASTER

Premiers Pas avec OneNote 2013

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Chapitre 6 Apprentissage des réseaux de neurones et régularisation

GUIDE D UTILISATION ODT

Why Software Projects Escalate: The Importance of Project Management Constructs

Amélioration de la fiabilité d inspection en CND grâce à la fusion d information : applications en rayons X et ultrasons

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

Une méthode de classification supervisée sans paramètre pour l apprentissage sur les grandes bases de données

TP2 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

Identification de nouveaux membres dans des familles d'interleukines

Competence Management System (Système de Gestion de Compétences)

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS. Odile PAPINI, LSIS. Université de Toulon et du Var. papini@univ-tln.

PROBABILITÉS CONDITIONNELLES

Tutoriel Prise en Main de la Plateforme MetaTrader 4. Mise à jour : 7/09/

Modélisation et étude d un système de trading directionnel diversifié sur 28 marchés à terme

SOLIDARITÉS. rsa, ce que je dois déclarer. pour éviter les trop-perçus LE DÉPARTEMENT, À VOS CÔTÉS, TOUS LES JOURS

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Logiciels de gestion FAC. Analyste AgExpert. Guide de démarrage rapide 2014

Calcul Formel et Numérique, Partie I

L entrepreneur autonome SES DROITS, OBLIGATIONS ET RESTRICTIONS. Pour dissiper la confusion générale à démêler

BACCALAURÉAT TECHNOLOGIQUE Sciences et Technologies de l Industrie et du Développement Durable ENSEIGNEMENTS TECHNOLOGIQUES TRANSVERSAUX

PROMI 500 Badges - Codes

Master Exploration Informatique des données Data Mining & Business Intelligence. Evelyne CHARIFOU Priscillia CASSANDRA

COMMENT MAITRISER LA GESTION DES APPROVISIONNEMENTS ET DES STOCKS DE MEDICAMENTS

Probabilités conditionnelles Loi binomiale

Découverte du tableur CellSheet

Le financement locatif

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Les cinq premiers pas pour devenir vraiment agile à XP Day Suisse 2009 par Pascal Van Cauwenberghe et Portia Tung: La Rétrospective

Une approche non paramétrique Bayesienne pour l estimation de densité conditionnelle sur les rangs

Management Stratégique. Saïd YAMI Maître de Conférences en Sciences de Gestion ERFI/ISEM Université Montpellier 1 Cours de Master 1.

La fonction Conformité dans l assurance

Raisonnement probabiliste

Chapitre 6. Le calcul du PIB, de l inflation et de la croissance économique. Objectifs d apprentissage. Objectifs d apprentissage (suite)

PHP 2 Pratique en santé publique fondée sur des données probantes

TP de réseaux : Domain Name Server.

La réforme des bourses a consacré de nouveaux droits pour tous les étudiants handicapés, boursiers ou non.

Calculs financiers (1) : intérêts simples, composés.

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Burkina Faso Profil pays EPT 2014

Baccalauréat ES Amérique du Nord 4 juin 2008

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

LES PARTENARIATS ISTIC - ENTREPRISES

Pérennisation de l entreprise. Participation au contrôle de gestion

PRÉSENTATION DU PROGRAMME. Le cœur à l école. PROGRAMME DE PRÉVENTION DE L ÉCHEC SCOLAIRE ET SOCIAL Volets préscolaire et 1 er cycle du primaire

Carré parfait et son côté

Programme détaillé. LES TABLEAUX DE BORD Formation en présentiel (21 h) accompagnée d un parcours e-learning Excel (5 h)

La méthode des scores, particulièrement de la Banque de France

VIPE CNAM 6 mars Frank Meyer Orange Labs / IMT / UCE / CRM-DA / PROF

La prévision de la faillite fondée sur l analyse financière de l entreprise : un état des lieux par Catherine REFAIT

Cartographie avec R. Baptiste Coulmont. 16 septembre 2010

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Transcription:

Master 2 MIMSE 2015-2016 Apprentissage automatique TP1 : les k plus proches voisins 1 Données synthétiques Récupérer les jeux de données synth_train.txt et synth_test.txt. On a Y 1, 2 et X R 2. On dispose de 100 données d apprentissage et 200 données test. 1. Charger le jeu de données d apprentissage dans R (soit avec la commande read.table, soit avec l outil d importation de Rstudio : Tools > Import Dataset). Afficher les données d apprentissage. 2. Représenter graphiquement les observations à l aide de la fonction plot. On pourra colorier les points en fonction de leur classe à l aide du paramètre col et modifier le symbole avec le paramètre pch (=point character) et rajouter une légende à l aide de la fonction legend. 3. Appliquer la fonction knn du package class avec k = 15 voisins pour prédire les points de coordonnées (0,0) et (-2,2). 4. Prédire les données de l ensemble d apprentissage avec ce classifieur et comparer avec les vraies classes. Calculer le taux d erreur empirique (nombre de fausses prédictions sur l échantillon d apprentissage divisé par taille de cet échantillon). Recommencer avec k = 1 voisin. 5. Représenter graphiquement la frontière de décision pour k = 15 voisins : commencer par construire une grille de points, prédire ces points, puis ajouter ces points sur le graphique en les coloriant en fonction de leur prédiction. Recommencer avec k = 1 voisin. 6. Charger le jeu de données test dans R. Afficher les données test. Prédire les données de l ensemble test avec k = 15 voisins puis avec k = 1 voisin. Calculer le taux d erreur empirique dans les deux cas. Comparer avec les taux d erreur des prédictions de l ensemble d apprentissage. 7. On choisit à partir de maintenant le classifieur knn avec k = 15 voisins. Calculer le taux de vrai positifs (TVP) et le taux de vrai négatif (TVN) de ce classifieur sur l échantillon test sachant que V P T V P = V P + F N et T V N = V N et que ici 1=positif et 2=négatif. V N + F P 8. On souhaite maintenant ( associer ) un coût 3 fois plus important aux faux negatifs. On utilise donc la 0 3 matrice de coût C = dans la règle de classification de Bayes. Les probabilités à posteriori 1 0 P(Y = 1 X = x) d une entrée x sont estimées par la fréquences de voisins de x appartenant à la classe 1. (a) Programmer une fonction prob_knn qui estime les probabilités P(Y = 1 X = x) d un ensemble de données d entrées. prob_knn <- function(x,y,xtest,k) K <- length(unique(y)) prob <- rep(na,nrow(xtest)) 1

for (i in 1:nrow(test)) x0 <- Xtest[i,] d <- apply(x,1,function(x)sum((x-x0)^2)) Nx0 <- sort(d,index.return=true)$ix[1:k] prob[i]<- sum(y[nx0]==1)/k return(prob) (b) Appliquer cette fonction aux données de l ensemble test. En déduire leur prédiction avec la règle de Bayes incluant les coûts. Vous pouvez utiliser la fonction I pour construire le code R. (c) Calculer le taux de vrai positifs (TVP) et le taux de vrai négatif (TVN). (d) Faire un petit bilan métodologique de cet exercice. 2 Données réelles Récuperer le jeu de données Desbois.rda. Les données concernent n = 1260 exploitations agricoles réparties en K = 2 groupes : le groupe des exploitations saines et le groupe des exploitations défaillantes. On veut construire un score de détection du risque financier applicable aux exploitations agricoles. Pour chaque exploitation agricole on a mesuré une batterie de critères économiques et financiers et finalement p = 4 ratios financiers on étés retenus pour construire le score : R2 : capitaux propres / capitaux permanents, R7 : dette à long et moyen terme / produit brut, R17 : frais financiers / dette totale, R32 : (excédent brut d exploitation - frais financiers) / produit brut. La variable qualitative à expliquer est donc la variable difficulté de paiement (0=sain et 1=défaillant). Voici les 5 premières lignes du tableau de données. DIFF R2 R14 R17 R32 1 saine 0.622 0.2320 0.0884 0.4313 2 saine 0.617 0.1497 0.0671 0.3989 3 saine 0.819 0.4847 0.0445 0.3187 4 saine 0.733 0.3735 0.0621 0.4313 5 saine 0.650 0.2563 0.0489 0.4313 1. Charger le jeu de données dans R avec la commande load. rm(list=ls()) # on efface tout ce qui est en memoire load("desbois.rda") dim(data) ## [1] 1260 5 2. On s intéresse d abord à la méthodologie du choix de k (a) Créer un jeu de données de données d apprentissage de taille 945 (75% des données) et un jeu de données test de taille 315 (25% des données) avec le code suivant. 2

set.seed(30) train <- data[tr,] (b) Cacluler les taux d erreur sur les données test pour k variant de 1 à 100. Avec la foncton plot, représenter ce taux d erreur test en fonction de k (contrôler que l abscisse du graphique part de 0). Avec la fonction which.min trouver le nombre de voisins qui donne la plus petite erreur test. (c) Recommencer avec un autre découpage aléatoire apprentissage/test et représenter la courbe d évolution du taux d erreur test sur le même graphique qu à la question précédente. (d) Executer le code suivant et faire un choix pour k. B<- 20 kmax <- 100 err_test <- matrix(na,kmax,b) for (b in 1:B) tr <- sample(1:nrow(data),900) train <- data[tr,] for (k in 1:kmax) pred <- knn(train[,-1],test[,-1],train$diff,k) err_test[k,b] <- sum(pred!=test$diff)/length(test$diff) mean_err_test <- apply(err_test,1,mean) lim <-c(0,max(err_test)) matplot(err_test,type="l",lty=2,col=2,ylim=lim, xlab="nombre de voisins",ylab="taux d'erreur") matpoints(mean_err_test,type="l",col=2,lwd=4) legend("bottomright", legend=c("erreur moyenne", "Erreurs conditionnelles"), lty=c(1,3),lwd=c(4,2),col=c(2,2)) 3

taux d'erreur 0.00 0.05 0.10 0.15 0.20 Erreur moyenne Erreurs conditionnelles 0 20 40 60 80 100 nombre de voisins which.min(mean_err_test) ## [1] 22 (e) Choisir maintenant le nombre k de voisin en utilisant par validation croisée (cross validation) leave-one-out (LOO) avec la fonction knn.cv. (f) Faire un petit bilan méthodologique concernant le choix du paramètre k. 3. On veut maintenant non seulement choisir k mais également avoir une idée de l erreur de prédiction de ce classifieur. Pour cela, il faut utiliser des données n ayant jamais été utilisées. Les données doivent donc être découpées en trois parties : apprentissage/validation/test (a) Couper aléatoirement les données deux parties : un ensemble "apprentissage-validation" de taille 945 (75 % des données) et un ensemble test de taille 315 (25% des données). set.seed(30) trainval <- data[tr,] (b) Utiliser la première approche pour choisir k sur l ensemble "apprentissage-validation" : i. Choisir k en découpant les 945 données de l ensemble "apprentissage-validation" en deux parties : une partie "apprentissage" de taille 630 (50% des données) et une partie "validation" de taille 315 (25 % des données). Choisir k qui minimise le taux d erreur moyen sur les ensembles de validations de B = 25 découpages. ii. Constuire le classifieur avec ce nombre de voisins sur l ensemble "apprentissage-validation" et calculer le taux d erreur des données test. 4

(c) Utiliser la seconde approche pour choisir k par validation croisée LOO sur l ensemble "apprentissagevalidation". Calculer ensuite le taux d erreur des données test. 4. Pour les courageux, on pourrait recommencer avec plusieurs découpages des données en deux parties "apprentissage-validation" et "test". Cela permettrait d avoir une erreur test moyenne, et une idée de sa variabilié. C est assez rapide à faire avec la méthode de LOO pour le choix de k : B <- 10 kmax <- 50 err_valid <- rep(na,kmax) err_test <- rep(na,b) for (b in 1:B) trainval <- data[tr,] for (k in 1:kmax) pred <- knn.cv(trainval[,-1],trainval$diff,k) err_valid[k] <- sum(pred!=trainval$diff)/length(trainval$diff) pred <- knn(trainval[,-1],test[,-1],trainval$diff,k=which.min(err_valid)) err_test[b] <- sum(pred!=test$diff)/length(test$diff) boxplot(err_test,main="erreurs test pour 50 decoupages") Erreurs test pour 50 decoupages 0.11 0.12 0.13 0.14 0.15 0.16 5