是否可以测试 DBSCAN 聚类算法?如果是,怎么办?
Is Testing the DBSCAN clustering algorithm possible? And if yes, how?
我想使用 DBSCAN clustering algorithm
来检测数据集中的异常值。由于这是一种无监督学习方法,我是否需要将我的数据集拆分为训练数据和测试数据,或者测试 DBSCAN algorithm
是不可能的?出于离群值检测的原因,我应该将整个数据集提供给 DBSCAN model
吗?
如果可以测试 DBSCAN
,您能否建议使用 Python 进行测试的方法?
您不需要将数据拆分为测试和训练。但是,如果您希望评估您的模型,您应该从原始数据中获得标记数据样本。还有其他无监督方法,但它们会比较哪种聚类方法相对于您尝试的其他方法(算法或不同的超参数)表现更好。
我建议阅读 - https://scikit-learn.org/stable/modules/clustering.html
2.3.10 节展示了评估聚类模型的各种方法,以及实现它们所需的 sklearn API。
您可以根据您的问题陈述选择最适合您的要求。
让我在这里补充一个重点:
您无法测试无监督学习方法。无监督学习方法的主要思想是定义一个非预定义目标。
机器学习中的监督学习方法 --> train/test or train/dev/test split
无监督学习 --> 无分割
根据您的异常值数据集,还有其他统计方法可以识别异常值:
数量
z 分数
对于离群值检测,使用实际的离群值检测算法而不是 DBSCAN。
DBSCAN 检测到的噪声与异常值不同。例如,如果你的数据都是均匀的随机数据,这应该被认为是 "noise",但其中 none 将是异常值。所有数据均为正常噪声。
我想使用 DBSCAN clustering algorithm
来检测数据集中的异常值。由于这是一种无监督学习方法,我是否需要将我的数据集拆分为训练数据和测试数据,或者测试 DBSCAN algorithm
是不可能的?出于离群值检测的原因,我应该将整个数据集提供给 DBSCAN model
吗?
如果可以测试 DBSCAN
,您能否建议使用 Python 进行测试的方法?
您不需要将数据拆分为测试和训练。但是,如果您希望评估您的模型,您应该从原始数据中获得标记数据样本。还有其他无监督方法,但它们会比较哪种聚类方法相对于您尝试的其他方法(算法或不同的超参数)表现更好。
我建议阅读 - https://scikit-learn.org/stable/modules/clustering.html 2.3.10 节展示了评估聚类模型的各种方法,以及实现它们所需的 sklearn API。
您可以根据您的问题陈述选择最适合您的要求。
让我在这里补充一个重点:
您无法测试无监督学习方法。无监督学习方法的主要思想是定义一个非预定义目标。
机器学习中的监督学习方法 --> train/test or train/dev/test split
无监督学习 --> 无分割
根据您的异常值数据集,还有其他统计方法可以识别异常值:
数量
z 分数
对于离群值检测,使用实际的离群值检测算法而不是 DBSCAN。
DBSCAN 检测到的噪声与异常值不同。例如,如果你的数据都是均匀的随机数据,这应该被认为是 "noise",但其中 none 将是异常值。所有数据均为正常噪声。