系列文章目录
第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression)
第四章【机器学习】【监督学习】- K-近邻算法 (K-NN)
第五章【机器学习】【监督学习】- 决策树 (Decision Trees)
第六章【机器学习】【监督学习】- 梯度提升机 (Gradient Boosting Machine, GBM)
第七章 【机器学习】【监督学习】-神经网络 (Neural Networks)
第十一章【机器学习】【监督学习】-局部加权线性回归 (Locally Weighted Linear Regression, LWLR)
第十二章【机器学习】【监督学习】- 岭回归 (Ridge Regression)
十三、【机器学习】【监督学习】- Lasso回归 (Least Absolute Shrinkage and Selection Operator)
十四、【机器学习】【监督学习】- 弹性网回归 (Elastic Net Regression)
十七、【机器学习】【非监督学习】- K-均值 (K-Means)
目录
二、DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
一、非监督学习
(一)、定义
非监督学习是一种机器学习方法,它处理的是没有标签的数据集。与监督学习不同,非监督学习算法不需要知道数据的正确分类或目标值。它的目标是通过数据内部的结构和模式来推断出有意义的信息,如数据的分布、聚类、降维或异常检测等。
(二)、训练流程
非监督学习的训练流程通常包含以下几个步骤:
-
数据准备:收集和预处理数据,可能包括数据清洗、缺失值处理、数据标准化或归一化等。
-
模型选择:根据问题的性质选择合适的非监督学习算法。
-
参数初始化:初始化模型的参数,这一步对于某些算法至关重要,如K-means聚类。
-
模型训练:使用无标签数据训练模型,寻找数据中的结构或模式。这一过程可能涉及到迭代优化,直到满足某个停止准则,如收敛或达到预定的迭代次数。
-
结果评估:评估模型的结果,这通常比监督学习更具有挑战性,因为没有明确的“正确答案”。评估可能基于内在指标(如聚类的紧凑度和分离度)或外在指标(如与已知分类的比较)。
-
应用模型:使用训练好的模型对新数据进行分析或预测,如对新数据进行聚类或降维。
(三)、基本算法分类
非监督学习算法可以大致分为以下几类:
-
聚类算法:用于将数据点分组到不同的簇中,常见的算法有K-means、层次聚类、DBSCAN、Gaussian Mixture Models等。
-
降维算法:用于减少数据的维度,同时尽可能保留数据的结构信息,常见的算法有PCA(主成分分析)、t-SNE(t-分布随机邻域嵌入)、自编码器等。
-
关联规则学习:用于发现数据集中项之间的关系,如Apriori算法和Eclat算法。
-
异常检测算法:用于识别数据集中的异常点或离群点,如Isolation Forest、Local Outlier Factor等。
-
自组织映射(SOM):一种神经网络模型,用于数据可视化和聚类,可以将高维数据映射到低维空间中。
-
生成模型:如变分自编码器(VAE)和生成对抗网络(GAN),它们可以生成类似训练数据的新样本。
非监督学习在很多场景中都有广泛应用,如客户细分、图像识别、自然语言处理、生物信息学和推荐系统等。由于其灵活性和在处理大量未标注数据时的优势,非监督学习是数据科学和人工智能领域的重要组成部分。
二、DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
(一)、定义
DBSCAN是一种基于密度的聚类算法,它能够在数据集中发现具有高密度的区域并将它们划分为簇,同时能够识别和标记低密度区域中的点作为噪声。与许多其他聚类算法不同,DBSCAN不需要提前指定簇的数量,而是根据数据的局部密度来确定簇的边界。
(二)、基本概念
-
邻域:对于数据集中的任意点p,以点p为中心,半径为ε的邻域内包含的所有点构成该点的邻域。ε是算法的一个参数,定义了邻域的大小。
-
核心点:如果一个点的邻域内至少含有MinPts个点(另一参数),则该点被称为核心点。
-
边界点:一个点的邻域内虽然不含有MinPts个点,但如果它位于某个核心点的邻域内,则该点被称为边界点。
-
噪声点:既不是核心点也不是边界点的数据点被视为噪声点。
(三)、训练过程
DBSCAN 是一种基于密度的聚类算法,它能够识别出数据集中高密度的区域并将其聚类,同时识别低密度区域的点作为噪声。以下是 DBSCAN 算法详细的训练步骤:
1. 参数设置
首先,需要确定两个重要的参数:
- ε (Epsilon):一个点的邻域半径,用来确定点的邻域内包含多少其他点。
- MinPts:一个点要成为“核心点”所需的邻域内最少点数。
2. 创建邻域
对于数据集中的每个点 P:
- 使用 ε 半径画一个圆,找到圆内所有的点,包括 P 自身,这些点构成 P 的邻域。
3. 核心点识别
遍历数据集中的每个点 P:
- 如果 P 的邻域内包含至少 MinPts 个点,则称 P 为“核心点”。
4. 边界点和噪声点识别
- 如果一个点 Q 的邻域内包含的点数少于 MinPts,但 Q 位于某个核心点的邻域内,则 Q 是“边界点”。
- 如果一个点既不是核心点也不是边界点,则它是“噪声点”。
5. 簇的扩展
从任意未处理的核心点 P 开始:
- 将 P 标记为已访问并将其添加到簇 C 中。
- 对于 P 的邻域内的每个点 Q:
- 如果 Q 还未被访问:
- 将 Q 标记为已访问。
- 如果 Q 也是核心点,那么将 Q 的邻域内所有点加入到待处理队列中。
- 如果 Q 还未被分配到任何簇中,将 Q 加入簇 C。
- 如果 Q 还未被访问:
- 重复以上步骤,直到队列为空,此时簇 C 已经完全扩展。
6. 处理下一个簇
- 重复步骤5,从数据集中尚未被分配到任何簇的下一个核心点开始,继续扩展新的簇,直到所有点都被处理。
7. 结束
当所有点都已经被处理过,且每个点都被标记为核心点、边界点或噪声点,算法结束。
8.注意事项
- 在处理数据时,DBSCAN 不会显式地创建簇的数目,而是根据数据的局部密度动态确定簇的边界。
- 算法对于参数 ε 和 MinPts 的选择非常敏感,不恰当的参数选择可能导致簇的过度分割或合并。
DBSCAN 的训练过程是一个迭代过程,它从核心点出发,逐步扩展簇的边界,直到覆盖所有相关联的高密度区域,同时识别出孤立点或低密度区域的噪声点。这种基于密度的聚类方法在处理具有不规则形状和大小的簇时尤其有效。
(四)、特点
- 自动确定簇的数量:DBSCAN不需要预先知道簇的数量,这使得它非常适合于未知数量簇的聚类任务。
- 发现任意形状的簇:DBSCAN能够检测到非球形和复杂形状的簇,这是因为它基于密度而非距离的固定阈值来定义簇。
- 噪声检测:DBSCAN能够识别并标记数据集中的噪声点,这对于数据清洗和异常检测非常有用。
- 参数敏感:ε和MinPts的选择对结果有显著影响,不当的选择可能导致簇的过度分割或合并。
(五)、适用场景
- 图像处理:在图像分割和目标识别中,DBSCAN可用于识别具有相似像素值的区域。
- 异常检测:在网络安全、金融交易等场景中,DBSCAN可以帮助识别异常活动。
- 地理空间数据:对于地理信息系统(GIS)数据,DBSCAN能够发现地理上的热点区域。
- 生物信息学:在基因表达数据中,DBSCAN可以用于识别基因表达的模式和异常。
(六)、扩展
- HDBSCAN:一种层次化的DBSCAN版本,能够提供更精细的聚类结果,并自动调整ε参数。
- OPTICS (Ordering Points To Identify the Clustering Structure):通过构建一个点的顺序列表来扩展DBSCAN的思想,可以可视化数据的密度分布,并从中发现簇。
- LOF (Local Outlier Factor):基于DBSCAN的密度概念来检测异常值,计算每个点的局部异常因子。
三、总结
DBSCAN及其扩展算法在处理具有复杂结构和噪声的数据集时提供了强大的工具,尤其是在数据探索和异常检测方面。
更多内容,请关注公众号获取!