-1
votes

Teste-t-il l'algorithme de clustering de DBSCAN possible? Et si oui, comment?

Je veux utiliser l'algorithme de clustering dbscan afin de détecter des valeurs aberrantes dans mon jeu de données. Comme il s'agit d'une approche d'apprentissage non supervisée, dois-je faire scinder mon jeu de données dans la formation et les données de test ou tester l'algorithme dbscan tout simplement pas possible? Pour des raisons de détection des valeurs aberrantes, devrais-je alimenter le modèle dbscan avec tout mon jeu de données?

Dans le cas Test DBSCAN est possible, pouvez-vous suggérer des moyens de le faire avec Python?


0 commentaires

3 Réponses :


1
votes

Vous n'avez pas besoin de diviser vos données en test et en train. Cependant, vous devez avoir un échantillon de données étiquetées de vos données d'origine si vous souhaitez évaluer votre modèle. Il existe également d'autres moyens sans surveillance, mais ils comparent quelle méthode de clustering fonctionne mieux par rapport à d'autres méthodes que vous essayez (algorithmes ou hyperparamètres différents).

Je suggérerais de lire - https://scikit-learn.org/stable/ modules / clustering.html La section 2.3.10 montre les différentes méthodes d'évaluation de vos modèles de clustering et l'API Sklearn devait les mettre en œuvre.

Vous pouvez choisir lequel convient le mieux à votre exigence sur la base de votre relevé de problème.


1 commentaires

Merci! Le lien avec la vue d'ensemble des algorithmes de clustering est super utile! Aura un examen plus profond dans les méthodes d'évaluation suggérées.



0
votes

Permettez-moi d'ajouter un autre point important ici:

Vous ne pouvez pas tester des méthodes d'apprentissage non surveillées. L'idée principale des méthodes d'apprentissage non supervisées est de définir une cible non prédéfinienne.

Méthodes d'apprentissage supervisées dans l'apprentissage de la machine -> Train / Test ou Train / Dev / Test Split

Apprentissage non supervisé -> Pas de scission

Selon votre ensemble de données pour les valeurs aberrantes, il existe également d'autres méthodes statistiques pour identifier les valeurs aberrantes:

Quantiles

z-score


4 commentaires

Merci! Oui, donc les modèles d'apprentissage fondamentalement non surveillés ne peuvent pas être testés, mais évalués, par ex. Comment sont définis les grappes.


J'ai un espace de fonctionnalité en deux dimensions, j'ai donc choisi de détecter des valeurs aberrantes avec DBSCAN. Dans des cas unidimensionnels, j'ai calculé z scores.


Pour deux dimensions, une parcelle de dispersion est également intéressante


Déjà fait ça :) Mais dans l'intrigue de dispersion, il y avait des régions qui n'étaient pas faciles à identifier visuellement les valeurs aberrantes.



1
votes

Pour la détection des valeurs aberrantes, utilisez un algorithme de détection réel au lieu de DBSCAN.

bruit tel que détecté par DBSCAN est pas identique à des valeurs aberrantes . Pour des exemples Si vos données sont toutes des données aléatoires uniformes, cela devrait être considéré comme «bruit», mais aucun d'entre eux ne sera des valeurs aberrantes. Toutes les données sont le bruit normal.


2 commentaires

Et quel algorithme de détection d'impératif suggéreriez-vous? Beaucoup de sources suggèrent que des données plus dimensionnelles Dossiers DBSCAN et une forêt d'isolation pour détecter des valeurs aberrantes ...


Je ne suis pas un fan de forêts d'isolation. Si vous voulez quelque chose de similaire à DBSCAN, utilisez par exemple LOF ou BOOP du même groupe.