dimanche, décembre 13, 2020

Data Preparation for Machine Learning - Part I, II, III - Jason Brownlee

 Preamble


Chapter 4: Data Preparation Without Data Leakage

  • Naive application of data preparation methods to the whole dataset results in data leakage that causes incorrect estimates of model performance.
  • Data preparation must be prepared on the training set only in order to avoid data leakage.
  • Normalize data: scale input variables to the range 0-1
  • Standardization estimates the mean and standard deviation values from the domain in order to scale the variables.
  • The k-fold cross-validation procedure generally gives a more reliable estimate of model performance than a train-test split.

Part III: Data Cleaning

Chapter 5: Basic Data Cleaning

Chapter 6: Outlier Identification and Removal

  • Standard Deviation Method
    • 1 standard deviation from the mean covers 68% of data
    • 2 standard deviations from the mean covers 95 percent of data
    • 3 standard deviations from the mean covers 99,7% of data
  • Three standard deviations from the mean is a common cut-off in practice for identifying outliers in a Gaussian or Gaussian-like distribution.
  • Interquartile Range Method
    • Not all data is normal or normal enough to treat it as being drawn from a Gaussian distribution. A good statistic for summarizing a non-Gaussian distribution sample of data is the interquartile Range or IQR. The IQR is calculated as the difference between the 75th and 35th percentiles of the data and defines the box in a box and whisker plot.
    • We can calculate the percentiles of a dataset using the percentile() NumPy function.
  • Automatic Outlier Detection
    • Each example is assigned a scoring of how isolated or how likely it is to be outliers based on the size of its local neighborhood.
    • The scikit-learn library provides an implementation of this approach in the LocalOutlierFactor class.
  • Standard deviation and interquartile range are used to identify and remove outliers from a data sample.

Chapter 7: How to Mark and Remove Missing Data

  • Pandas provides the dropna() function that can be used to drop either columns or rows with missing data.

Chapter 8: How to Use Statistical Imputation

  • Datasets may have missing values, and this can cause problems fro many machine learning algorithms. As such, it is good practice to identify and replace missing values for each column in your input data prior to modeling your prediction task. This is called missing data imputation, or imputing for short. A popular approach for data imputation is to calculate a statistical value for each column (such as a mean) and replace all missing values for that column with the statistic.
  • Missing values must be marked with NaN values and can be replaced with statistical measures to calculate the column of values.
  • The scikit-learn machine learning library provides the SimpleImputer class that supports statistical imputation.
  • To correctly apply statistical missing data imputation and avoid data leakage, it is required that the statistics calculated for each column are calculated on the train dataset only, then applied to the train and test sets for each fold in the dataset. This can be achieved by creating a modeling pipeline where the first step is the statistical imputation, then the second step is the model. This can be achieved using the Pipeline class.
  • Testing different imputed strategies. The author proposes to test different strategies when replacing data by comparing the mean, the median, the mode (most frequent) and constant(0) strategies. 
Box and Whisper plot of different imputation strategies
  • We can see that the distribution of accuracy scores for the constant strategy may be better than the other strategies.

Chapter 9: How to Use KNN Imputation

  • Although any one among a range of different models can be used to predict the missing values, the k-nearest neighbor (KNN) algorithm has proven to be generally effective, often referred to as nearest neighbor imputation.
  • Missing values must be marked with NaN values and can be replaced with nearest neighbor estimated values.
  • An effective approach to data imputing is to use a model to predict the missing values.
  • One popular technique for imputation is a K-nearest neighbor model. A new sample is imputed by finding the samples in the training set "closest" to it and averages these nearby points to fill in the value.
  • The use of a KNN model to predict or fill missing values is referred to as Nearest Neighbor Imputation or KNN imputation.
  • The scikit-learn machine learning library provides the KNNImputer class that supports nearest neighbor imputation.
  • The KNNImputer is a data transform that is first configured based on the method used to estimate the missing values.

Chapter 10: How to Use Iterative Imputation

  • Missing values must be marked with NaN values and can be replaced with iteratively estimated values.
  • It is common to identify missing values in a dataset and replace them with a numeric value. This is called data imputing, or missing data imputation. One approach to imputing missing values is to use an iterative imputation model.
  • It is called iterative because the process is repeated multiple times, allowing ever improved estimates of missing values to be calculated as missing values across all features are estimated. This approach may be generally referred to as fully conditional specification (FCS) or multivariate imputation by chained equations (MICE).
  • Different regression algorithms can be used to estimate the missing values for each feature, although linear methods are often used for simplicity.
  • The scikit-learn machine learning library provides the IterativeImputer class that supports iterative imputation.

Conclusion

  • In this first three parts of the Data preparation for Machine Learning Book, we review the main data cleaning possibilities.
  • The following part will be related to "Feature Selection".

samedi, décembre 05, 2020

Comment décider - Annie Duke

Préambule

  • Ce post se veut un résumé des meilleurs extraits du livre de Annie Duke, "How to Decide".

Introduction

  • Un bon outil d'aide à la decision cherche à réduire le rôle des biais cognitifs. (tel que l'excès de confiance, le biais rétrospectif ou le biais de confirmation).
  • Une liste de "pour" et "contre" à tendance à amplifier le rôle des biais. 
  • Evaluer si une décision est bonne ou mauvaise revient à examiner les croyances qui ont informé la décision, les différentes options, et comment le futur pourrait se dérouler en fonction des choix.
  • Il faut éviter les pièges de la prise de décision en équipe, et spécialement la pensée de groupe.

Chapitre 1 : Le biais du résultat

  • Le biais de résultat (resulting bias) est un raccourci que l'on prend pour juger de la qualité d'une décision en fonction de la qualité du résultat.
  • L'expérience est supposée être notre meilleur professeur, mais parfois nous lions trop directement la qualité d'un résultat à la qualité de la décision.
  • Prendre de meilleures décisions signifie faire une meilleure prévision des différents scénarios.
  • On a tendance à remarquer lorsqu'on pas de chance et à oublier lorsque c'est un coup de bol.

  • Le biais de résultat fait que nous manquons de compassion pour nous-même et pour les autres.
  • On se flagelle lorsque les choses ne fonctionnent pas comme on l'aurait espéré.
  • La chance est ce qui intervient entre ta décision et le résultat. Le biais de résultat enlève la perception de la chance.
  • Quand tu prends une décision, tu peux rarement prédire un bon résultat. L'objectif est de choisir l'option qui va conduire à un ensemble de résultats potentiellement positif.
  • Tu prends une décision basée sur un nombre d'informations insuffisantes.

Chapitre 2 : Le biais rétrospectif

  • Afin d'évaluer la qualité d'une décision et d'en apprendre les leçons, tu as besoin d'évaluer ton état d'esprit honnêtement et te rappeler qu'est-ce que tu savais et qu'est-ce que tu ne savais pas avant la décision.
  • Les faits influent sur ta mémoire de ce que tu savais avant les faits.
  • Nous sommes généralement très prompts à critiquer celui qui a pris la décision, en négligeant de se mettre nous-mêmes dans la peau du décideur au moment de la décision.
  • Le biais rétrospectif ("hindsight bias") est la tendance à croire que le résultat était prévisible ou inéluctable.
  • Le biais rétrospectif, comme le biais du résultat, se manifeste par une influence trop importante du résultat. Le résultat vous empêche de voir ce que tu savais au moment de la décision.
  • L'extension dans votre mémoire ("memory creep") est le fait que les faits envahissent votre mémoire de ce que vous saviez avant la décision.

Chapitre 3 : La décision qui ouvre des univers multiple

  • La checklist décisionnelle t'aidera à qualifier la qualité de la décision en créant un arbre de décision. Pour cela il faut :
    1. Identifier la décision
    2. Identifier le résultat actuel
    3. Avec le résultat, créer un arbre avec les autres résultats qui étaient possibles au moment de la décision.
    4. Analyser les autres résultats afin de mieux comprendre qu'est-ce qu'il faut retenir du résultat actuel.
  • Le résultat seul ne te permet pas de dire si une décision était bonne ou mauvaise.
  • Il y a une asymétrie dans notre volonté de remettre les résultats dans leur contexte : on le fait plus facilement lorsqu'on échoue que lorsqu'on réussit.
  • Tu ne peux pas complètement apprendre d'un résultat sans comprendre les autres évènements qui auraient pu se produire.
  • Et si ? Un résultat possible d'une décision est un résultat qui ne sait pas produit. Une imagination.

Chapitre 4 : Préférences, bénéfices et probabilités

  • Six étapes pour une meilleure prise de décision
    1. Identifier le jeu des résultats, des issues possibles.
    2. Identifier vos préférences par association des bénéfices pour chaque résultat, issue ou objectif. Jusqu'à quel niveau de satisfaction vous appréciez le résultat en fonction de vos valeurs.
    3. Estimer la probabilité de chaque réalisation potentielle.
    4. Estimer la probabilité du résultat que vous aimez et que vous n'aimez pas pour l'option considérée.
    5. Répéter les étapes 1 à 4 pour les autres options.
    6. Comparer les options entre elles
  • Identifier l'ensemble des résultats possibles pour une prise de décision est déjà une amélioration énorme par rapport à une décision prise sur le résultat d'une décision passée.
  • La poubelle d'une personne est le trésor d'une autre personne.
  • Demander l'avis est un excellent outil décisionnel tant que tu es explicite sur tes objectifs et tes valeurs.
  • La taille du bénéfice est importante.
    • Si tu fais un investissement qui te rapporte de l'argent, c'est un gain. Si tu perds de l'argent, c'est une perte.
    • Le bénéfice peut être non monétaire : bonheur, temps, amélioration personnelle, estime de soi, santé, gentillesse
    • Evaluer la qualité d'une décision consiste à comprendre si les avantages sont valables par rapport aux risques des inconvénients.
  • Un des plus gros obstacles à une bonne prise de décision est de croire que la décision est bonne ou mauvaise et qu'il n'y a rien entre ces deux choix.
  • Une bonne prise de décision passe par la volonté de deviner.
  • Tu sais forcément quelque chose, et ce quelque chose est mieux que rien.
  • Qu'est-ce que je sais déjà et qui rendra mon estimation plus étayée ?
  • Qu'est-ce que je peux trouver qui m'aidera dans ma prise de décision ?
  • Ton choix est toujours une estimation des différents scénarios possibles.
  • Pour beaucoup de décisions, il y a souvent un aspect très particulier qui vous intéresse.
  • Ajouter des probabilités à un arbre décisionnel va améliorer de manière significative la qualité de vos décisions par rapport à simplement identifier les possibilités à vos préférences.
  • Si tu ne poses pas la question, tu n'auras pas la réponse.
  • Tu peux obtenir un certain contrôle sur l'incertitude qui se cache derrière l'imperfection de l'information.

Chapitre 5: Le pouvoir de la précision

  • Beaucoup de choses que tu ne connais pas se trouvent dans la tête d'autres personnes. Aussi obtenir du feedback des autres sur les choses que tu crois et les décisions que tu prends sera le meilleur outil pour extraire la connaissance du monde.
  • Pour avoir un feedback de qualité sur tes décisions et tes croyances, tu dois parler le même langage que la personne qui te donne le feedback.
  • Si tu crois qu'un évènement à 30% de chances de se passer et que tu parles avec quelqu'un qui a une information fiable que cet évènement se déroulera avec 70% de chances, cela te sera utile pour lever le désaccord.
  • La précision enlève le désaccord.
  • La précision est importante.
  • Qu'est-ce que je sais, et qu'est-ce que je peux apprendre ? 
  • Quand tu exprimes quelque chose avec certitude, les autres seront moins enclins à te contredire. Soit parce que ils pensent qu'ils ont torts et ne veulent pas s'embêter en partageant ce qu'ils pensent, ou ils pensent que tu as tort et ils ne veulent pas te mettre dans l'embarras. Ceci est un problème si tu as un rôle de leader.
  • Quand tu crées une limite inférieure et une limite supérieure, tu exprimes que tu te trouves quelque part entre pas de connaissance et une connaissance parfaite. Si tu laisses comprendre à celui qui t'écoute que tu n'est pas sûr fera que cette personne sera plus enclin à te partager de l'information utile parce que tu as demandé de l'aide.
  • Approche la qualité de ton information avec plus de scepticisme. Ce scepticisme te rendra plus curieux à questionner tes propres certitudes et plus enclin à chercher ce que les autres savent. Et ceci améliorera la qualité de tes décisions.
  • Fais en une habitude de te questionner toi même : si je me trompais, quelle serait l'alternative ?
  • Utilise la méthode du choc test pour savoir si tes limites inférieures et supérieures sont raisonnables.  Est-ce que tu serais vraiment choqué si la réponse correcte était en dehors des limites ?
  • Etre trop confiant en soi contrarie la prise de décision.

Chapitre 6 : prendre des décisions avec l'aide de l'extérieur

  • Ce que tu vois très clairement chez les autres est difficile de voir pour soi-même.
  • Votre perspective n'est pas si bonne quand tu es au centre.
  • Tes croyances créent un embouteillage pour la bonne prise de décision.
  • C'est très dur pour nous de voir le monde d'un point de vue extérieur.
  • Biais de confirmation : notre tendance à noter, interpréter et chercher de l'information qui confirme nos croyances.
  • Biais de non confirmation : notre tendance à appliquer plus d'importance à une information qui contredit nos croyances par rapport à une information qui confirme nos croyances.
  • Surconfiance : surestimation de nos compétences qui interfèrent avec notre capacité de prendre des décisions en se basant sur ces estimations.
  • Biais de fréquence : la tendance à sur estimer la fréquence de certains évènements  qu'il est facile de se rappeler parce qu'ils sont vivaces ou parce que nous les avons vécus plusieurs fois.
  • Biais du récent : croire que les évènements récents sont plus susceptibles de se reproduire qu'ils ne le sont réellement.
  • Biais de l'illusion du contrôle : surestimation de notre capacité à contrôler les évènements. En d'autres termes, sous-estimer l'influence de la chance.  
  • L'intérêt d'avoir le point de vue des autres est que même s' ils disposent des mêmes faits, ils peuvent voir les choses de manière différente.
  • Si tu veux te créer un outil d'aide à la décision qui amplifie les biais , cela devrait ressembler à une list de pour et de contre.
  • Si tu n'as pas une vue précise de tes compétences, tu peux prendre de très mauvaises décisions.
  • C'est inconfortable de penser à l'échec, mais cela vaut le coup de vivre dans cet inconfort parce que tu seras mieux préparé si les choses ne se passent pas comme dans ton idéal.
  • Les gens brillants sont meilleurs pour construire des arguments convaincants qui soutiennent leurs point de vue et qui renforcent les choses auxquelles ils croient.
  • La personne que tu as le plus de chance d'induire en erreur est toi-même. Et tu ne t'en rends pas compte parce que tu le vis de l'intérieur.
  • Remercie les gens qui, de bonne foi, sont en désaccord avec toi car c'est une action aimable de leur part.
  • Cherche le point de vue extérieur avec un esprit ouvert. 

Chapitre 7 : casser la paralysie de l'analyse ou comment optimiser le temps de votre prise de décision 

  • Le temps est une ressource limitée que tu dois dépenser avec sagesse.
  • La capacité de savoir quand il faut décider rapidement, ou quand il faut ralentir est une compétence cruciale à développer.
  • Tu dois être concentré sur les façons d'extraire les informations du monde afin de transformer l'univers de ce que tu ne connais pas dans quelque chose que tu connais.
  • Plus tu connais tes préférences, plus il te sera facile de prendre des décisions.
  • Le test du bonheur : demande toi si la décision que tu prends, bonne ou mauvaise, aura des chances significative sur ton bonheur dans un an. Si la réponse est non, la décision passe le test, ce qui signifie que tu peux prendre ta décision rapidement.
  • Les choix qui se répètent aident à diminuer le regret.
  • Lorsque le même type de décision revient couramment, tu as donc des chances répétées de faire ton choix, en y incluant même des choix que tu as rejeté dans le passé.
  • Freeroll : une situation dans laquelle il y a une asymétrie entre les avantages et les inconvénients car les pertes potentielles sont insignifiantes.
  • Le concept de freeroll est un modèle mental utile pour cibler des opportunités à saisir rapidement.
  • Plus tu t'engages rapidement et moins l'opportunité à des chances de disparaître.
  • L'impact de la décision obscurcit le freeroll.
  • La peur de l'échec ou du rejet peut vous paralyser.
  • Quelque soit l'option que je prends, quelle sera ma plus grande perte ?
  • Plus tu as un grand nombre d'options, plus il y a de chances qu'une de ces options te semble intéressante. Plus tu auras des options qui te semblent intéressantes, plus tu passeras ton temps dans la paralyse de l'analyse.
  • C'est le paradoxe : plus de choix signifie plus d'anxiété.
  • Pour toute décision, passe ton temps à départager les choses que tu aimes de celles que tu n'aimes pas.
  • Le coût de l'opportunité : quand tu choisis une option, tu perds le gain potentiel associé aux options que tu ne choisies pas.
  • Plus les gains associés aux options que tu ne choisies pas sont grands, plus le coût de l'opportunité est grand.
  • Si je prends cette option, qu'est-ce qu'il m'en coutera de l'abandonner ?

Chapitre 8 : la puissance de la pensée négative

  • Pensez positivement, mais planifiez négativement.
  • Ne confonds pas la destination avec la route.
  • Si cela devait mal se passer, de quelle manière cela se passerait-il ?
  • Lorsqu'il s'agit de navigation, la pensée négative vous permet d'arriver à destination de manière plus sûre.
  • Le contraste mental est le processus d'imagination des obstacles qui pourraient surgir sur la route de votre destination. 
  • La douleur mentale vous conduit aux gains réels.
  • Le biais du statu quo : la tendance à croire que les choses d'aujourd'hui seront les mêmes demain.
  • Analyse pré-mortem : tu t'imagines quelque part dans le futur après avoir échoué sur un objectif, et tu regardes derrière toi sur comment tu en es arrivé là.
  • Plus tu auras une vue large et complète sur ton futur, plus facile sera ta décision.
  • La valeur ajoutée de l'analyse pré-mortem pour les groupes : tu ajoutes plus de matière grise.
  • De manière intuitive, nous pensons que plusieurs cerveaux sont meilleurs qu'un seul pour la prise de décision.
  • Les analyses pré-mortem de groupe permettent d'exposer et encouragent les différents points de vue.
  • De même que la précision se trouve à l'intersection entre la vue externe et la vue interne, la vue la plus précise du futur se trouve à l'intersection entre l'analyse pré-mortem et le "backcasting".
  • La vue externe permet de discipliner les biais cognitifs qui résident dans la vue interne.
  • La table d'exploration de la décision.

  • La première chose que tu devrais considérer après un travail pré-mortem et un backcasting est de savoir si tu modifies ton objectif ou si tu changes de décision.
  • Rechercher les manières de mitiger l'impact des mauvaises surprises si elles arrivent.
  • De même qu'Ulysse, tu peux physiquement t'empêcher de prendre des mauvaises décisions.
  • Combien de fois j'ai fait exception à la règle récemment ?
  • Lors de l'occurence d'un mauvais résultat, il est difficile de voir la situation de façon rationnelle.
  • Vous compromettez la qualité de votre décision lorsque votre état émotionnel est intense suite à un mauvais résultat.
  • Est-ce que tu prends les choses de manière personnelle ? ou est-ce que tu entres dans la confrontation ? ou est-ce que tu utilises un langage particulier ? ou est-ce que tu t'engages dans des chemins de pensée lorsque tu es guidé par l'émotion ? Si oui alors tu es dans le mode "Tilt"

Chapitre 9 : l'hygiène de la décision. 

  • Le problème lorsque vous proposez d'abord votre opinion lorsque vous demandez un conseil à quelqu'un est que cela augmente de manière significative le fait qu'il exprimera la même opinion que vous. (Salomon Asch)
  • Un des meilleurs outils pour améliorer ta prise de décision est de demander le point de vue des autres. Mais tu ne peux le faire que si tu demandes leur vrai point de vue au lieu de voir votre perspective renvoyée.
  • Quand vient le moment de la décision, il est plus intéressant d'avoir plus de cerveaux qu'un seul. 
  • Si tu proposes d'abord ton avis, l'opinion de celui qui répond peut changer, ou la personne peut ne pas vouloir dire sa vraie pensée, ou elle peut penser qu'elle à tort.
  • Il est impossible de tomber dans le piège du biais rétrospectif si tu ne connais pas le résultat.
  • Si tu connais le résultat cela détruit le feedback.
  • Le fait que tu ne communiques pas le résultat et tes croyances avant de demander le feedback à une personne fait que cette personne se trouve dans les mêmes conditions que toi au moment de la décision.
  • Il faut solliciter le feedback de manière indépendante.
  • Eliciter le feedback de manière indépendante et partager le avec le groupe avant le meeting.
  • Il faut rendre anonyme le feedback.
  • L'effet de halo est un biais cognitif dans lequel une impression positive sur une personne dans un domaine vous fera aussi donner une une opinion positive de cette personne sur un problème tout autre.
  • La qualité de l'information que vous donnez avant la demande de feedback est très importante. Vous devrez préciser vos objectifs, ce qui pour vous à de la valeur et vos ressources.