我有数千个非常相似的数据集,需要以对角线方式分成两组。例如:
和

我尝试使用 dbscan 和 optic 的参数作为 epsilon 和 minPoints 甚至 metric,但它们都没有帮助我将数据正确地划分为 2 组。
我只成功地使用 dbscan 划分数据。如果我消除这些组之间的噪音以使它们成为完全独立的 2 组,我使用直方图来完成
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]
这些线消除了数据中、组之间以及周围的噪声
j > 1
这导致我删除了以后需要重新处理的必要数据。
所以,我要回到我的主要问题,我怎么知道哪个 epsilon、minPoints 或 dbscan 的其他参数可以帮助我正确划分这些数据?或者有没有比我上面介绍的(直方图)更好的方法来消除这些组之间的噪音而不删除必要的数据?