Galleries#

Notebooks Coverage

Le petit coin des data scientists#

Ce sont quelques notebooks sur des points particuliers qui surgissent au quotidien quand on traite des données.

_images/classification_multiple.thumb.png

Classification multiple

Explorations autour d’un problème de classification multiple.

_images/correlation_non_lineaire.thumb.png

Corrélations non linéaires

Les corrélations indiquent si deux variables sont linéairement équivalentes. Comment étendre cette notion à des variables liées mais pas de façon linéaire.

_images/file_dattente_ex.thumb.png

File d’attente, un exemple simple

Cet exemple vient illustrer le paragraphe sur les files d’attente et l’espérance de vie des ampoules.

_images/discret_gradient.thumb.png

Le gradient et le discret

Les méthodes d’optimisation à base de gradient s’appuie sur une fonction d’erreur dérivable qu’on devrait appliquer de préférence sur des variables aléatoires réelles. Ce notebook explore quelques idées.

_images/regression_lineaire.thumb.png

Régression linéaire

Ce notebook s’intéresse à la façon d’interpréter les résultats d’une régression linéaire lorsque les variables sont corrélées puis il explore une façon d’associer arbre de décision et régression linéaire pour construire une régression linéaire par morceaux.

_images/quantile_regression_example.thumb.png

Régression quantile illustrée

La régression quantile est moins sensible aux points aberrants. Elle peut être définie comme une régression avec une norme L1 (une valeur absolue). Ce notebook explore des régressions avec des quantiles différents.

_images/split_train_test.thumb.png

Répartir en base d’apprentissage et de test

C’est un problème plutôt facile puisqu’il s’agit de répartir aléatoirement les lignes d’une base de données d’un côté ou de l’autre. Lorsque le problème de machine learning à résoudre est un problème de classification, il faut s’assurer que chaque côté contient une proportion raisonnable de chaque classe.

Images#

_images/segment_detection.thumb.png

Détection de segments dans une image

C’est une technique assez vieille et qui consiste à détecter des segments comme des anomalies : l’alignement de points est un événement assez rare dans un nuage de points mais rare comment ? Cette idée mène à la probabilisation d’une image pour quantifier ce qu’est un alignement de points nécessairement rare.

Métriques#

_images/roc_example.thumb.png

ROC

A few graphs about ROC on the iris datasets.

_images/pvalues_examples.thumb.png

p-values

Compute p-values and heavy tails estimators.

Machine Learning#

_images/survival.thumb.png

Analyse de survie

_images/benchmark.thumb.png

Benchmark

Ce notebook compare différents modèles depuis un notebook.

_images/mf_acp.thumb.png

Factorisation et matrice et ACP

Un exemple pour montrer l’équivalence entre l’ACP et une factorisation de matrice.

_images/neural_tree_onnx.thumb.png

NeuralTreeNet et ONNX

La conversion d’un arbre de décision au format ONNX peut créer des différences entre le modèle original et le modèle converti (voir Issues when switching to float. Le problème vient d’un changement de type, les seuils de décisions sont arrondis au float32 le plus proche de leur valeur en float64 (double). Qu’advient-il si l’arbre de décision est converti en réseau de neurones d’abord.

_images/neural_tree_cost.thumb.png

NeuralTreeNet et coût

La classe NeuralTreeNet convertit un arbre de décision en réseau de neurones. Si la conversion n’est pas exacte mais elle permet d’obtenir un modèle différentiable et apprenable avec un algorithme d’optimisation à base de gradient. Ce notebook compare le temps d’éxécution entre un arbre et le réseau de neurones.

_images/piecewise_linear_regression.thumb.png

Régression linéaire par morceaux

La régression linéaire par morceaux a l’avantage de produire un modèle localement interprétable. Mais ce n’est pas évident d’estimer un tel modèle quand on ne connaît pas les morceaux par avance.

_images/regression_no_inversion.thumb.png

Régression sans inversion

Ce notebook mesure le temps de calcul dans deux algorithmes pour résoudre une régression linéaire, le premier inverse un matrice, le second le fait sans inverser une matrice, le troisième reprend l’idée du second mais utilise une décomposition QR puis inverse la matrice R.

_images/reseau_neurones.thumb.png

Réseaux de neurones

Réseaux de neurones avec scikit-learn.

_images/neural_tree.thumb.png

Un arbre de décision en réseaux de neurones

L’idée est de convertir sous la forme d’un réseaux de neurones un arbre de décision puis de continuer l’apprentissage de façon à obtenir un assemblage de régression logistique plutôt que de décision binaire.

_images/valeurs_manquantes_mf.thumb.png

Valeurs manquantes et factorisation de matrices

Réflexion autour des valeur manquantes et de la factorisation de matrice positive.

_images/logreg_voronoi.thumb.png

Voronoï et régression logistique

Le notebook étudie la pertinence d’un modèle de régression logistique dans certaines configurations. Il regarde aussi le diagramme de Voronoï associé à une régression logistique à trois classes. Il donne quelques intuitions sur les modèles que la régression logistique peut résoudre.

NLP - Natural Language Processing#

_images/completion_trie_long.thumb.png

Completion Trie and metrics

Evaluation of a completion system on wikpedia pages.

_images/completion_profiling.thumb.png

Completion profiling

Profiling avec cProfile, memory_profiler, pyinstrument, snakeviz.

_images/completion_trie.thumb.png

Complétion

Comparaion de plusieurs algorithmes pour implémenter un système de complétion.

_images/completion_simple.thumb.png

Complétion Simple

Evaluation d’une métrique pour un système de complétion sur quelques cas simples.