J'ai un jeu de données similaire à celui illustré ci-dessous, qui forme clairement des lignes de mon point de vue. Au lieu de dessiner des marqueurs, je veux connecter les marqueurs dans chaque courbe par une ligne. Je suis curieux, dans ce cas, quel type d'algorithmes de cluster serait un bon?Extraction de grappes sous la forme de lignes à partir d'un ensemble de données
import numpy as np
import matplotlib.pyplot as plt
np.random.seed = 42
#Generate (x,y) data
x = np.linspace(0.1,0.9,50)
y = x%1
x += np.sin(2*x%1)
y = y%0.2
#Shuffle (x,y) data
ns = list(range(len(x)))
np.random.shuffle(ns)
x = x[ns]
y = y[ns]
#Plot
fig, axs = plt.subplots(1,2)
axs[0].scatter(x,y)
axs[1].plot(x,y)
plt.savefig("markers vs lines.pdf")
Figure - Gauche: Marqueurs, à droite: Les points de données reliés par des lignes.
Excellent, DBSCAN fait exactement ce que je cherchais. Je vous remercie. – physicsGuy