> Modules non standards > Scikit-Learn > UMAP
UMAP
C'est le package umap-learn qui n'est inclus dans scikit-learn, mais suit la même philosophie (API)
Paramètres de UMAP() :
- n_components : le nombre de coordonnées après réduction de dimension, 2 par défaut (UMAP(n_components = 3) par exemple)
- random_state = 4 : pour initialiser le générateur random pour avoir toujours les mêmes résultats.
- n_neighbors = 15 : le nombre de voisins à considérer, par défaut 15. Plus il est élevé, plus UMAP sortira une vision globale au détriment du local, et plus il est petit, plus c'est la vision locale qui sera avantagé.
- min_dist = 0.1 : distance minimum entre 2 points, par défaut 0.1. Peut prendre des valeurs entre 0 et 1, et plus la valeur est grande moins les points peuvent être collés ensemble.
- metric = 'euclidean' : distance utilisée, par défaut euclidean. Peut aussi être manhattan, cosine, correlation, ... (beaucoup de choix).
Utilisation de UMAP :
- on peut utiliser UMAP pour réduire à beaucoup plus que 2 dimensions (par exemple 50, comme alternative à la PCA)
- on peut se servir de UMAP comme d'un transformer sklearn avant de faire de classification :
- fitter un modèle UMAP avec des données de training (fit, transform)
- puis utiliser un algorithme d'apprentissage sur les données de training transformées.
- puis transformer les données de test avec le même modèle UMAP (transform seulement !)
- puis utiliser l'algorithme d'apprentissage entrainé sur les données de test transformées.
- si on a les classes, de 1 à n, on peut les donner à UMAP, ça peut améliorer énormément la représentation : mapper.fit(X, y = myClasses)
- en fait, on peut faire du UMAP semi-supervisé où l'on donne les classes seulement pour certains éléments : mettre à -1 les valeurs dans myClasses quand on ne connaît pas la classe.
- on peut aussi fitter un modèle UMAP avec des données de training en fournissant le label, puis faire de l'apprentissage sur les données transformées, puis utiliser le modèle UMAP sur des données de test (sans le label !) puis faire l'apprentissage sur les données transformées.
- on peut aussi utiliser UMAP comme première étape avant un clustering basé sur la densité (comme k-means), mais cela peut être dangereux car UMAP ne respecte pas toujours les densités (augmenter probablement n_neighbors et diminuer min_dist, en conservant bien sûr suffisamment de dimensions)
Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert