Quels arguments dois-je transmettre à dbscan ou à optique afin de diviser les données d'une manière spécifique
-
02-11-2019 - |
Question
J'ai des milliers d'ensembles de données très similaires qui doivent être divisés de manière diagonale à deux groupes. par exemple:et
J'ai essayé de jouer avec l'argument de DBSCAN et Optic comme EPS et Minpoints et même métrique et aucun d'entre eux m'a aidé à diviser correctement les données en 2 groupes. Je réussit à diviser les données en utilisant DBSCAN si je supprime le bruit entre ces groupes pour en faire un 2 groupes séparés de 2 groupes, je l'ai fait en utilisant l'histogramme
j = 1
hist, bin_edges = np.histogram(data, bins=500)
max_bin = np.where(np.amax(hist) == hist)[0][0]
max_noise = bin_edges[max_bin+j]
filtered_indicies = data > max_noise
data = data[filtered_indicies]
Ces lignes suppriment le bruit des données, entre les groupes et aussi autour de lui lorsque
J> 1
et cela me faisait supprimer les données nécessaires que j'ai besoin de retraiter plus tard.
Alors je remonte à ma question principale, comment puis-je savoir quels EP, points min ou tout autre argument de DBSCAN peuvent m'aider à diviser correctement ces données? Ou y a-t-il peut-être un meilleur moyen que ce que j'ai présenté ici ci-dessus (histogramme) pour supprimer le bruit entre ces groupes sans supprimer les données nécessaires?
Pas de solution correcte