[PYTHON] DBSCAN (clustering) avec scikit-learn

À propos de la présentation de DBSCAN, l'un des algorithmes de clustering et de réglage simple des paramètres Je ne semblais pas avoir d'article japonais complet, alors je l'ai écrit. Veuillez noter que le plan de DBSCAN est une traduction japonaise (approximative) de wikipedia.

Qu'est-ce que DBSCAN

Aperçu de l'algorithme

[D'après la figure wikipedia]

Avantages

Désavantages

Différence par rapport aux autres algorithmes

Il s'agit d'une comparaison de chaque méthode dans la page de démonstration scikit-learn, mais la seconde en partant de la droite est DBSCAN. Vous pouvez voir intuitivement qu'ils sont regroupés en fonction de la densité. sphx_glr_plot_cluster_comparison_001.png

Réglage de ε et minPts

S'il est bidimensionnel, il peut être visualisé pour déterminer s'il est bien classé, mais s'il est tridimensionnel ou plus, il est difficile à visualiser et à juger. J'ai débogué et ajusté la prise et le nombre de clusters comme suit. (Utilisation de scikit-learn)

from sklearn.cluster import DBSCAN

for eps in range(0.1,3,0.1):
    for minPts in range(1,20):
        dbscan = DBSCAN(eps=eps,min_samples=minPts).fit(X)
        y_dbscan = dbscan.labels_
        print("eps:",eps,",minPts:", minPts)
        #nombre de valeurs aberrantes
        print(len(np.where(y_dbscan ==-1)[0]))
        #Nombre de clusters
        print(np.max(y_dbscan)))
        #Nombre de points dans le cluster 1
        print(len(np.where(y_dbscan ==0)[0]))
        #Nombre de points dans le cluster 2
        print(len(np.where(y_dbscan ==1)[0]))



Liens reliés à DBSCAN

Postscript

La version japonaise de Wikipedia a été mise à jour avec des descriptions supplémentaires. C'est facile à comprendre.

Recommended Posts

Clustering avec scikit-learn + DBSCAN
DBSCAN (clustering) avec scikit-learn
DBSCAN avec scikit-learn
Clustering avec scikit-learn (1)
Clustering avec scikit-learn (2)
Segmentation et regroupement de photos avec DBSCAN
Isomap avec Scikit-learn
Clustering avec python-louvain
kmeans ++ avec scikit-learn
L'analyse de clustering la plus basique avec scikit-learn
Validation croisée avec scikit-learn
Apprentissage Scikit-Learn avec la chimioinfomatique
Algorithme DBSCAN (clustering de données)
Installez scikit.learn avec pip
Calculer tf-idf avec scikit-learn
Essayez d'utiliser scikit-learn (1) - Clustering K par méthode moyenne
Réseau de neurones avec Python (scikit-learn)
J'ai essayé le clustering avec PyCaret
Traitement parallèle avec Parallel de scikit-learn
[Python] Régression linéaire avec scicit-learn
Clustering embarqué profond avec Chainer 2.0
Régression linéaire robuste avec scikit-learn
Effectuer (Visualisation> Clustering> Description des fonctionnalités) avec (t-SNE, DBSCAN, Arbre de décision)
Recherche en grille d'hyper paramètres avec Scikit-learn
Créer un arbre déterminé avec scikit-learn
Segmentation d'image avec scikit-image et scikit-learn
Identifiez les valeurs aberrantes avec le classificateur de forêt aléatoire de scikit-learn
Cartes propres laplaciennes avec Scikit-learn (notes personnelles)
Factorisation matricielle non négative (NMF) avec scikit-learn
SVM essayant l'apprentissage automatique avec scikit-learn
Scikit-learn DecisionTreeClassifier avec des valeurs de type datetime
100 traitement du langage knock-97 (en utilisant scicit-learn): clustering k-means
[Scikit-learn] J'ai joué avec la courbe ROC
Essayez SVM avec scikit-learn sur Jupyter Notebook
Classification multi-étiquettes par forêt aléatoire avec scikit-learn
Implémentez un estimateur auto-créé minimal avec scikit-learn
Remplissez les valeurs manquantes avec Scikit-learn impute
Clustering des livres d'Aozora Bunko avec Doc2Vec
Visualisez l'arbre de décision scikit-learn avec Treemap de Plotly