aida elmernissi
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # Rapport de SY19 - Projet 2 ## Bike rental ### Analyse exploratoire L'ensemble de données Bike_rental se compose de : - 9 variables qualitatives : instant, dteday, yr, season, mnth, workingday, holiday, weekday et weathersit, - 4 variables continues : temp, atemp, hum et windspeed, - 1 variable réponse cnt, discrète (comptage). L'une des particularités de cet ensemble de données est qu'il contient des séries temporelles. Nous verrons dans la suite de ce rapport de quelle façon nous avons décidé d'adresser cette spécificité. Tout d'abord, réalison une brèves analyse des prédicteurs quantitatifs qui s'offrent à nous. Les graphiques ci-dessous représentent des scatterplot entre la variable à prédire cnt et respectivement les variables temp et atemp. Les couleurs des points nous donnent une information sur la valeur de la variable weathersit. ![](https://i.imgur.com/QO7KxZY.png) La température (réelle ou ressentie) semble linéaire au nombre de vélos loués. On voit aussi que le temps influe sur le nombre de locations : on atteint les valeurs minimales lorsque la température est basse et le temps mauvais, et inversément lorsqu'il fait plus chaud et qu'il ne pleut pas. Les conditions météorologique donnent donc de bonnes indications sur la tendance du nombre de vélos loués sur une journée et une tendance concave semble se dessiner entre cnt et les variables temp et atemp. Voici un maintenant une série de diagramme en boîtes à moustache représentant la distribution du nombre de vélos loués en fonction de la saison : ![](https://i.imgur.com/Z0w6Yua.png) 1: printemps, 2: été, 3: automne, 4: hiver Pour éclairer le graphique ci-dessus, on peut analyser l'état de la météo (tel que décrit par weathersit) en fonction de chaque saison : ![](https://i.imgur.com/FdHXF73.png) L'observation de la distribution du nombre de locations en fonction de la saison montre que le plus grand nombre de location se fait plutôt en automne. Cependant, lorsque l'on examine la corrélation entre les saison et la situation météorologique, on voit que l'automne est la saison la plus pluvieuse. Cela vient donc contredire notre première conjecture disant que le nombre de vélos loués est grand seulement si le temps est calme. Néanmoins, lorsque l'on examine la relation entre les saisons et la température, on voit effectivement que l'automne est la saison où il fait le plus chaud : ![](https://i.imgur.com/fHxJ9ne.png) Le nombre de locations de vélos semble donc d'avantages corrélé à la température qu'à l'agitation météorologique. Remettons en perspectives nos observations de corrélation entre cnt et temp et atemp en y ajoutant une analyse des observations de la corrélation entre cnt et chacune des 4 variables quantitatives : ![](https://i.imgur.com/D3XNY26.png) On constate une relation linéaire entre les variables quantitatives liées à la météo et le nombre de vélos loués. On a donc : - Corrélation positive avec le température réelle et ressentie, - Corrélation légèrement négative pour l'humidité et semblant en cloche pour la vitesse du vent. Nous allons à présent essayer de répondre à la question : quelles sont les variables qui influent le plus sur le nombre de locations ? Pour cela, plusieurs méthodes peuvent être mises en oeuvre, dont notamment l'Analyse Factorielle de Données Mixtes (AFDM) ainsi qu'une série de tests de corrélation. #### AFDM ![](https://i.imgur.com/JpFMnWx.png) ![](https://i.imgur.com/t9BwPoD.png) ![](https://i.imgur.com/QkcEFG9.png) #### Corrélation entre la variable à prédire et les différents prédicateurs ##### Prédicteurs qualitatifs Un test de corrélation entre cnt et chacun des prédicteurs qualitatifs a été mené en utilisant le test de Kruskal-Wallis.Ce test a été choisi car il ne suppose pas la normalité des données. Voici un récapitulatif des résultats de : ```kruskal.test(cnt ~ X_i, data=data)``` | X_i | p-value | |:----------:| ---------:| | weathersit | 2.829e-09 | | season | <2.2e-16 | | mnth | <2.2e-16 | | workingday | 0.9843 | | holiday | 0.2896 | | weekday | 0.8593 | *dteday, yr et instant ne font pas partie de l'étude car ils affichent soit des valeurs uniques pour tout l'ensemble de données, soit une valeur constantes. Ils n'avancent donc en rien l'étude du nombre de location de vélos sur une seule année et servent plutôt, dans le cas de instant et de dteday, à identifier les individus.* Les résultats des différents tests de Kruskal-Wallis permettent d'affirmer avec une incertitude de 5% que : - weathersit, season et mnth ont respectivement un lien de dépendance avec cnt, - workingday, holiday et weekday n'ont pas de lien de dépendance avec cnt. Les variables les plus corrélées individuellement à la variable à prédire cnt sont donc weathersit, season et mnth. On réalise le test de Cramer pour estimer la corrélation entre les variables qualitatives mnth et season, mnth et weathersit et weathersit et season. On retrouve les résultats suivant : | Variable 1 | Variable 2 | Résultat | | ---------- | ---------- | -------- | | mnth | season | 0.897 | | mnth | weathersit | 0.223 | | weathersit | season | 0.127 | La situation météorologique n'est donc pas très corrélée au mois de l'année ou la saison. Elle joue néanmoins un rôle important dans la prédiction du nombre de locations de vélos, comme nous l'avons vu avec les tests de Kruskal-Wallis ci-dessus. ##### Prédicteurs quantitatifs Pour évaluer la corrélation entre la variable à prédire et chacun des prédicteurs quantitatifs, on peut calculer le coefficient de Pearson. Cependant, il est à noté que ce coefficient suppose que les deux variables à tester suivent au moins approximativement une loi normale bidimensionnelle. Voici les résultats recueillis : | Variable 1 | Variable 2 | Résultat | | ---------- | ---------- | -------- | | cnt | temp | 0.7712 | | cnt | atemp | 0.7753 | | cnt | hum | 0.0019 | | cnt | windspeed | -0.278 | ### Recherche du meilleur modèle de prédiction Afin de comparer la performance des différents modèles de régression à notre disposition, nous avons opté pour une validation croisée imbriquée sur une sous-partie de notre ensemble de données. Cette sous-partie est constituée des données relatives aux 11 premiers mois de l'année, le mois de décembre étant réservé comme ensemble de test permettant de donner la performance finale du modèle que l'on aura choisi. Nous avons choisi de ne pas faire de tirage aléatoire parmi les 365 jours de données pour séparer ensemble d'apprentissage et de test afin de respecter l'aspect temporel du problème qui se pose à nous avec bike_rental. On aurait pu également choisir de constituer nos différents ensembles en fonction des saisons, cependant cela ne nous aurait pas permis de faire autant de plis qu'une séparation par mois le permet lors de la validation croisée imbriquée. C'est donc une méthode de "chaînage ascendant par mois" qui a été mis en oeuvre pour réaliser la séparation des ensembles au cours de cette étude. Pour plus de détails sur cette méthode, voir la section "Day Forward-Chaining" de cette article : https://medium.com/@soumyachess1496/cross-validation-in-time-series-566ae4981ce4 De plus, nous avons pré-traité notre tableau individus-variables en transformant les colonnes des vairables qualitatives en facteurs (auparavant considérées comme vecteurs numériques). Nous avons pris en compte le fait que la variable weathersit ne prenait pas toutes les modalités dont elle dispose au cours de l'année d'étude et nous avons donc configuré notre nouveau tableau individu-variable afin qu'il prenne en compte le fait que cette variable possède bien 4 modalités au lieu de 3 comme l'on pourrait le croire d'après les observations à disposition. Avant de passer aux résultats de la validation croisée, la partie suivante apportera quelques explications sur les modèles mis à l'épreuve. #### Régression linéaire En premier lieu s'est posé la question de la mixité entre variables catégorielles et quantitatives dans l'ensemble des prédicteurs et son effet possible sur la régression linéaire. Une régression linéaire portant seulement sur les variables quantitatives ne semblait pas judicieuse au vu des liens de dépendance observés entre la variable à prédire et certaines variables qualitatives. Par ailleurs, *cnt* étant un entier, nous avons considérer l'idée qu'une régression linéaire basée sur une loi de Poisson serait plus judicieuse. Cependant, il s'est avéré que les données n'étaient pas propres à l'application d'une régression de Poisson. En effet, pour que l'on puisse appliquer une régression de Poisson, il faut vérifier les hypothèses suivantes : - les réponses sont indépendantes, - les réponses sont distribuées selon une loi de Poisson, de paramètre Lambda, - il n’existe pas de surdispersion dans les données. > d'après : https://delladata.fr/tutoriel-glm-sur-donnees-de-comptage-regression-de-poisson-avec-r/ On peut supposer l'indépendance des réponses vérifiée puisqu'à priori un nombre de locations de vélos un jour donné n'a pas de conséquence sur le nombre de locations le jour suivant. Pour vérifier que les réponses sont distribuées selon une loi de Poisson, on peut commencer par faire une petite visualisation comparant les valeurs théoriques (en rouge) d'une loi de poisson aux valeurs observées (en bleu). Le paramètre lambda a été fixé à la moyenne empirique des valeurs de *cnt* : ![](https://i.imgur.com/SwSIJUr.png) On voit que ces 2 distributions semblent très éloignées. Pour vérifier la troisième et dernière hypothèse (la surdispersion), on peut apprendre un modèle de régression linéaire de Poisson sur les données et faire le ratio **residual deviance/ddf** : ``` data.reg.lin <- data[,-2] formula.full <- cnt ~ .-instant-yr model.reg <- glm(formula.full, family = "poisson", data=data.reg.lin[idx.train,]) summary(model.reg) ``` On obtient un ratio de 44847/229 >> 1 ce qui exprime la présence d'une surdispersion. On vient d'infirmer 2 hypothèses sur 3 de la régression de Poisson ce qui ne nous permet pas d'appliquer ce modèle. On a donc préféré s'en tenir à la régression linéaire classique utilisant la famille de lois gaussiennes. #### Méthodes utilisant des arbres de régression Les arbres de régression constitue un modèle qui a l'avantage d'être assez interprétable. Néanmoins, il est reconnu pour avoir une variance importante. Pour remédier à cela, ne nous considérons que les deux extensions les plus connues de ce modèle, c'est-à-dire les forêts aléatoires et le bagging. #### SVM Les fonctions de kernlab permettant d'apprendre le modèle SVM ne permettent pas de traiter les prédicteurs qualitatifs. Nous avons remédié à cela en utilisant le one-hot encoding sur les variables season, mnth, weathersit, holiday, workingday et weekday. En retirant les prédicteur instant, dteday et yr, on se retrouve avec 35 prédicteurs. Il y a 2 types de modèles disponibles pour la fonction ksvm() de la library kernlab adaptées à la régression : eps-svr et nu-svr. La principale différence entre les modèles basés sur le paramètre nu ou la paramètre epsilon est que le premier permet de contrôler la complexité du modèle (le nombre de vecteurs support) tandis que le deuxième n'offre pas cette possibilité mais permet de limiter l'erreur du modèle. Ici nous souhaitons trouver le modèle offrant la meilleure performance, nous allons donc opter pour les types eps-svr. En ce qui concerne le choix d'un noyau, nous avons comparé les résultats des noyaux vanilladot, polydot, rbfdot et tanhdot par validation croisée imbriquée, afin de choisir à chaque itération le meilleur paramètre C. #### Splines Nous avons travaillé avec deux types de splines : splines de lissage et splines naturelles. Les autres types de splines ne peuvent pas être utilisées avec p>1 prédicteurs (modèles additifs généralisés). La fonction utilisée dans le cadre des splines de lissage est gam(), plus appropriée pour les modèles avec p>1 prédicteurs que smooth.spline(). La famille utilisée est celle fixée par défaut : gaussian() (cf. paragraphe sur le régression linéaire). ## Réseau de neurones Nous utilisons le package keras pour implémenter un réseau de neurones de la configuration suivante : | Couche | Nombre d'unités | Dropout | Fonction d'activation | |:---------------:|:---------------:|:-------:|:---------------------:| | 1ère | 50 | 0.8 | relu | | couche cachée 1 | 25 | 0.5 | relu | | couche cachée 2 | 25 | 0.5 | relu | | dernière couche | 1 | - | linear | Les données ont été pré-traitées par la technique du one-hot encoding pour les variables catégorielles (sauf instant, dteday et yr). Pour comparer ce modèle aux autres mentionnés ci-dessus, il a été testé lors d'une validation croisée imbriquée. On a régler le nombre d'epoch à 1000 après plusieurs exécution et l'examination des graphiques de coût tracés automatiquement lors de l'apprentissage du modèle. ### A propos de la régularisation Dans le cadre de ce projet, nous souhaitons obtenir le modèle le plus performant et pas forcément le moins complexe. Il n'apparaît donc pas nécessaire d'utiliser les procédés de régularisation tels que Ridge, Lasso ou Elastic-Net dans notre boucle de validation croisée imbriquée. ### Comparaison et choix du meilleur modèle En sortie de validation croisée imbriquées, nous obtenons les résultats suivants : | Modèle | MSE moyen | |:----------------------:| ------------:| | KNN | 13165510.6 | | Régression linéaire | 368023.0 | | Bagging | | | Forêts aléatoires | 363339.9 | | SVM-vanilladot | 13825150.4 | | SVM-rbfdot | 13825247.0 | | SVM-polydot | 13825150.4 | | SVM-tanhdot | 13825262.8 | | Splines naturelles | 365046.3 | | **Splines de lissage** | **325905.9** | | Réseau de neurones | 634959.8 | Voici la représentation graphique de ces résultats, avec les écarts-types pour chaque valeur de MSE également : ![](https://i.imgur.com/bR9Tsbs.png) Les modèles qui offrent les meilleurs performances sont la régression linéaire, l'arbre de régression, les forêts aléatoires, les splines naturelles, les splines de lissage et le réseau de neurones. Si on choisit de zoomer sur ces modèles, on obtient : ![](https://i.imgur.com/hoFn9D5.png) Ainsi, c'est le modèle de splines de lissage qui l'emporte avec une étendue d'écart-type raisonnables. ## questions - Pas la peine de régularizer, on veut garder toute l'info à dispo pour garder les meilleures perf ? - Bug avec splines naturelles -> envoyer par mail - Comment tuner réseau de neurones ? Nombre de couches, nombre de neurones, regularisation pour éviter overfitting (voir aspect courbe train et validation) => regularisation dropout - Que veut dire le batch ? comment choisir la fonction d'activation ? epoch = parcours toutes les donnees d'entrainement, le batch choisit n données aléatoirement parmi le nombre de données totale puis il le fait jusque ce qu'il rencontre au moins une fois chaque donnée = 1 epoch Bcp/peu données peut nous mettre coincé dans un minima local (ex: 100 obs -> 20/25 batch c'est bien) - Garder les 3 séparations ou en choisir une une bonne fois pour toutes? https://medium.com/@soumyachess1496/cross-validation-in-time-series-566ae4981ce4 soit on entraîne de janv à nov et on test avec dec, etc. - Garder family = gaussian car poisson pas très concluant, toujours valable? OK, on peut même transformer cnt en log (puis en exp) ## Phonemes ### Contenu du jeu de données Le jeu de données *Phonemes* comprend 256 colonnes étiquetées *X1-X256* de 2250 individus, la dernière colonne *y* est une colonne de réponse qui indique le type de phonème de cet individu (*aa*, *ao*, *dcl*, *iy* ou *sh*). La figure ci-dessous présente la répartition des individus de phonèmes différents. ![](https://i.imgur.com/DEbxhv6.png =x400) ### Pré-traitement Avant de passer à l’application des méthodes de classification et construire des modèles de prédiction de phonemes, il est nécessaire d’effectuer des traitements préliminaires sur nos données, afin d’améliorerles les performances des apprentissages faits dessus par la suite. #### Mise à l’échelle Avant de passer à la sélection de variables, il faut commencer par mettre les variables à l'échelle. Ici, nous allons utiliser une misée à l’échelle populaire: *Standardization (Z-score Normalization)* #### Feature extraction On se retrouve dans une situation où il y a trop de features, la méthode de feature extraction qui diminue la dimension des données, permet de gérer le fléau de la dimension et accéléré l'application des méthodes de classification. Ce jeu de données ne comporte que des variables quantitatives, on décide d'utiliser la méthode PCA sur les données normalisées. La figure ci-dessous présente les résultats lors de l'application de cette méthode. ![](https://i.imgur.com/8QwVrhQ.png) On peut remarquer que les 40 premiers axes factoriels permettent d’expliquer 90% d'informations de nos données. On pourrait supprimer 216 axes factoriels. On a donc un jeu de données de dimension beaucoup plus faible. ### Implémentation des méthodes de classification Pour comparer des modèles différents, on utilise la technique Nested Cross validation qui imbrique la validation croisée et le réglage des hyperparamètres. Il permet d'évaluer les performances d'un algorithme et estime également l'erreur de généralisation du modèle sous-jacent et sa recherche par hyperparamètres. Nous inplémentons les 13 différentes méthodes d'apprentissage supervisé par Nested Cross validation (10 folds) et les résultats sont présentés par le table ci-dessous. | Modèle | Taux d'erreur moyens Nested-CV | | -----------| ------------------------------- | | __LDA__ | __7.977748__ | | __SVM_linear__| __7.340847__ | | __SVM_gauss__ | __7.626371__ | | __RDA__ | __7.948089__ | |__LR_Lasso__| __7.984293__ | | __NN_3c__ | __8.073167__ | | QDA | 9.719392 | | NB | 9.100021 | | KNN | 8.873631 | | Logi Reg | 8.406623 | | LR_Ridge | 8.344867 | | GAM_NatureSpline| 8.20826 | | TREE | 12.90158 | | Bagging | 9.873144 | | RF | 11.37196 | Les taux d'erreur moyens et ses intervalles de confiance (le niveau de confiance de 90%) est représentés par le graphe ci-dessous. ![](https://i.imgur.com/1RdmohG.png) On a 5 modèles de classification qui sont les plus performants(taux d'erreur ≤ 8%). Il sont respectivement le modèle lda, régression logistique (lasso), RDA, SVM (noyau gaussien et linéaire) et réseau de neurones avec 3 couches cachées. Ensuite, on applique la technique de cross validation (10 folds et 20% de données de test) sur ces 5 meilleurs modèles pour chercher ses hyperparamètres optimaux et évaluer ses performances. On peut ensuite selectionner un modèle le plus performant parmi eux. Les résultats sont présentés ci-dessous. | Modèle | Hyperparamètres optimaux | Accuracy | |----------- | --------------------------- | ---------| | LDA | \ |89.11111 | | RDA | gamma=0.42, lambda =0.155 |90.88889 | | LR_Lasso | lambda.1se= 0.022337 |89.11111 | | SVM_linear | C=0.1 |88.66667 | | SVM_gauss | C=1 |88 | | NN_3couche | units=200/150/40, dropout=0.5/0.3/0.2, l2=0.1/0.1/-|91.02222| On peut constater que le meilleur modèle: le reseau de neurons de 3 couches avec 200, 150, 40 neurons de chaque couches, 0.5, 0.3 et 0.2 pour les taux de dropout, et les paramètres de régularisation (l2) de la 2 permières couches égales à 0.1. # Letter recognition Ce dataset contient 16 variables $X1-X16$ et un $Y$. Les $X$ sont quantitatives et $Y$ est une lettre dans $A-Z$. C'est typiquement un problème de classification dont le nombre de classes est 26. Vu que les classes sont nombreuses, on décide d'effectuer KNN, Classifieur de Bayes, decision tree et SVM pour trouver le meilleur modèle. ### K plus proches voisins En reconnaissance de forme, l'algorithme des k plus proches voisins (k-NN) est une méthode non paramétrique utilisée pour la classification et la régression. Dans les deux cas, il s'agit de classer l'entrée dans la catégorie à laquelle appartient les k plus proches voisins dans l'espace des caractéristiques identifiées par apprentissage. En classification k-NN, le résultat est une classe d'appartenance. Un objet d'entrée est classifié selon le résultat majoritaire des statistiques de classes d'appartenance de ses k plus proches voisins, (k est un nombre entier positif généralement petit). Si k = 1, alors l'objet est affecté à la classe d'appartenance de son proche voisin. On suppose des couple de données $(X_1, Y_1), (X_2, Y_2),...,(X_n, Y_n)$ prenant leur valeur dans l'ensemble $R^d$, où $Y$ est la classe de labellisation de $X$. L'algorithme nécessite de connaître k, le nombre de voisins à considérer. On effectue la méthode cross-validation pour avoir cette valeur. ![Le taux d'erreur moyen en fonction de valeur K](https://i.imgur.com/Tesu9YV.png) Dans la Figure 1, nous pouvons constater qu'en terme du taux d'erreur, la méthode KNN est plus précise avec $k=1$. ### LDA / QDA / Bayes naïf Analyse discriminante linéaire est un résumé de la méthode de discrimination linéaire de Fisher. Cette méthode utilise des méthodes de statistiques, de reconnaissance de formes et d'apprentissage automatique pour essayer de trouver une combinaison linéaire des caractéristiques de deux types d'objets ou d'événements afin de pouvoir caractériser ou distinguer. La combinaison résultante peut être utilisée comme classificateur linéaire ou, plus couramment, pour la réduction de dimensionnalité pour une classification ultérieure. Semblable à LDA, QDA est un autre algorithme d'analyse discriminante linéaire. La différence est : La frontière de décision peut être une courbe, pas seulement une ligne droite. Un modèle avec plus de paramètres peut rendre le modèle d'apprentissage plus adapté à la distribution des données afin d'obtenie une meilleure capacité de généralisation. Dans les méthodes LDA et QDA, nous utilisons deux formules, l'une est la formule ordinaire et la seconde est avec l'interaction des variables. ![Le taux d'erreur moyen en fonction de méthodes](https://i.imgur.com/DdyPfEQ.png) Par rapport à la Figure 2, nous constatons que la méthodes QDA avec les interactions de variables est la plus précise entre eux. ### Decision tree learning L'apprentissage par arbre de décision désigne une méthode basée sur l'utilisation d'un arbre de décision comme modèle prédictif. On l'utilise notamment en fouille de données et en apprentissage automatique. Dans ces structures d'arbre, les feuilles représentent les valeurs de la variable-cible et les embranchements correspondent à des combinaisons de variables d'entrée qui mènent à ces valeurs. En analyse de décision, un arbre de décision peut être utilisé pour représenter de manière explicite les décisions réalisées et les processus qui les amènent. Le pruning est la méthode principale de l'apprentissage de l'arbre de décision pour éviter overfitting. Dans l'apprentissage de l'arbre de décision, afin de classer les échantillons d'apprentissage aussi précisément que possible, le processus de division des nœuds sera répété en continu, ce qui entraîne parfois trop de branches de l'arbre de décision, ce qui conduit à un overfitting. Par conséquent, le risque de surajustement peut être réduit en supprimant certaines branches. On choisit la valeur CP aver une erreur de validation croisée minimale. ![Le taux d'erreur moyen en fonction de méthodes decision tree](https://i.imgur.com/vJ0dfWM.png) Bagging (Bootstrap aggregating) est un meta-algorithme d'apprentissage ensembliste conçu pour améliorer la stabilité et la précision des algorithmes d'apprentissage automatique. Il réduit la variance et permet d'éviter le surapprentissage. Bien qu'il soit généralement appliqué aux méthodes d'arbres de décision, il peut être utilisé avec n'importe quel type de méthode. Un random forest est un classificateur contenant plusieurs arbres de décision, et la catégorie de sortie est déterminée par le mode de la catégorie sortie par les arbres individuels. ![Le taux d'erreur moyen en fonction de méthodes decision tree](https://i.imgur.com/iwwmm4P.png) Le modèle random forest a la meilleure performance dans les méthodes de l'arbre de décision. ### Support Vector Machine Les machines à vecteurs de support sont une méthode d'apprentissage supervisé destinées à résoudre des problèmes de discrimination et de régression. Les SVM sont une généralisation des classifieurs linéaires. Dans les fonction kernal, on a choisit "rbfdot" qui représente **Radial Basis kernel "Gaussian"**. Car elle est plus convenable pour notre sujet de classification. On doit d'abord trouver l'hyperparamètre C qui représente **cost of constraints violation**. Par rapport à la Figure 5, la meilleure valeur de C est 100. ![CV erreur en fonction de valeur C](https://i.imgur.com/obPikgc.png) ### Conclusion La Figure suivante montre les taux d'erreur de chaque modèle, on a constaté que Random forest et SVM ont autant de médian minimal. On compare donc leurs variances pour voir leur stabilité. On a constaté que **SVM** est la méthode qui a moins de variance qui représente qu'il est plus stable entre eux. ![Les taux d'erreur en fonction de methodes](https://i.imgur.com/P2Qh2B5.png) ![Les taux d'erreur en fonction de methodes](https://i.imgur.com/OGYRfaD.png)

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully