课程3:非监督学习 | |
lesson 1 | 聚类 |
|
K-均值分为两步:1.分配 2.优化(移动自由聚类中心,使自由聚类中心到点的二次距离降到最小) 可在此处亲自尝试 K-均值聚类:http://www.naftaliharris.com/blog/visualizing-k-means-clustering/ K-均值既是爬山算法,非常依赖初始聚类中心所处的位置。
|
lesson 2 | 聚类迷你项目 |
电影评分项目 | 项目大部分数据预处理过程都隐藏在了辅助函数中,并重点研究聚类概念。在完成此 notebook 后,建议快速浏览下 helper.py,了解这些辅助函数是如何实现的。
我们可以将数据点拆分为任何数量的聚类。对于此数据集来说,正确的聚类数量是多少? 可以通过多种方式选择聚类 k。我们将研究一种简单的方式,叫做“肘部方法”。肘部方法会绘制 k 的上升值与使用该 k 值计算的总误差分布情况。 如何计算总误差? 一种方法是计算平方误差。假设我们要计算 k=2 时的误差。有两个聚类,每个聚类有一个“图心”点。对于数据集中的每个点,我们将其坐标减去所属聚类的图心。然后将差值结果取平方(以便消除负值),并对结果求和。这样就可以获得每个点的误差值。如果将这些误差值求和,就会获得 k=2 时所有点的总误差。 现在的一个任务是对每个 k(介于 1 到数据集中的元素数量之间)执行相同的操作。 |
lesson 3 | 层次聚类法与密度聚类 |
|
单连接聚类法(scikit-learn中没有这个,是查看与聚类最近的点);scikit-learn中有凝聚聚类法(包含全连接聚类,衡量距离的方法是两类中最远的两点之间的距离,与单连接聚类法相反,其中离差平方和法确实会最小化在每个合并步骤中的方差。) 优点:得到的层次表达信息丰富,帮我们把数据集的聚类结构视觉化,特别是当数据内部有层次关系时; 缺点:对噪音和离群值很敏感,要提前清理数据集中的噪音和离群值;数据计算慢
数据集标准化:在数据集中,当某列值比其他值小,它的方差对聚类处理流程会有影响(因为聚类是基于距离),对数据可进行标准化,使维度都位于0到1之间,以便市每列数据有相等的权重,方法是让每列减去最小值,然后除以范围,sklearn中提供了 preprocessing.normalize()方法
DBSCAN(具有噪声的基于密度的空间聚类,使用该方法一定要传递的参数:Epsilon-定义每一点近邻的距离,MinPts-在一点被视为核心点的邻域中的点数):不会把所有点归为类,对处理有噪声的数据集很有用。 优点:不需要指明类的数量,DBSCAN能根据点的分布密度,以及我们设置的参数,从而找到类;能灵活找到并分离各种形状和大小的类;能够很好的处理数据集中的噪声和离群值。 缺点:找到不同密度的类方面有一定困难,可以利用DBSCAN的变体HDBSCAN解决该问题
文献: Traffic Classification Using Clustering Algorithms 论文研究的是网络流量,试图用聚类算法将其分类,假如你是一个网络管理员,发现人们在你的网络上运行比特流,你想对流量进行分类,一类是比特流,一类是常规网络流量,特别是你没有办法看到实际的包从而得到判断。这篇论文比较了在这个分类下K-均值聚类法和DBSCAN,即网络流量的非监督分类。这篇论文用完整的思维过程,从头到尾完整地展示了聚类方法的流程。 Anomaly detection in temperature data using dbscan algorithm 这篇论文利用DBSCAN对温度数据做一场检测,方法是设定点的最小数量以及邻域值,从而让数据集中的大多数数据能分成一个或几个类,对于被标记为噪声的点,我们把它看作离群值或异常,通过改变点的最小数量和邻域值,能够改变这个异常检测的许可度或攻击性。 |
lesson 4 | 高斯混合模型与聚类验证 |
一种温和的聚类算法,可以检查到所有点,以隶属度区分彼此。 |
优点:提供软聚类,软聚类时多个聚类的实例性隶属度,比如对文档分类,希望文档可以属于多个类别,GMM聚类对于这种场景很有用。 缺点:GMM聚类对初始化值很敏感,可能收敛到局部最优,但收敛速度慢
相关文献: Nonparametric discovery of human routines from sensor data
Adaptive background mixture models for real-time tracking Application of the Gaussian mixture model in pulsar astronomy
Speaker Verification Using Adapted Gaussian Mixture Models https://www.youtube.com/watch?v=lLt9H6RFO6A
用于GMM聚类的期望最大化算法:1.初始化高斯分布(K均值);2.对数据集进行软聚类,期望步骤,算出所有点的隶属度;3. 利用软聚类来估计新的高斯模型;4.评估对数似然,值越大越好
三种指数: 外部指标:处理有标签数据时使用的评分;调整兰德系数的计算: 调整兰德系数并不关心实际标签是否匹配。 它只关心聚类结果中聚集在一起的点一起保留在聚类中,而不管聚类算法是否给这个聚类标记为'0' 或 '1'。 内部指标:数据集没标签时,仅使用数据来衡量数据和结构之间的吻合度 finding K (轮廓系数, 我们可以计算每个点的轮廓系数,我们也可以计算它们在一个聚类或整个数据集中的平均值。) 相对指标:表明两个聚类结构中哪一个在某种意义上更好 |
lesson 5 | 特征缩放 |
特征缩放是执行非监督式学习时的一个重要预处理步骤,以允许同时(平等地)分析多个特征。 |
MinMaxScalser缩放器(sklearn导入)
|
leeson 6 | PCA(主成成分分析) |
PCA是一套全面应用于各类数据分析的分析方法(包括特征集压缩) |
项目: https://github.com/udacity/ud120-projects/blob/master/pca/eigenfaces.py 数据: https://scikit-learn.org/0.15/auto_examples/applications/face_recognition.html |
lesson 7 | 随机投影与ICA |
降维的方法 |
相关论文: https://s3.cn-north-1.amazonaws.com.cn/static-documents/nd101/MLND+documents/10.1.1.322.679.pdf ICA应用:医学扫描仪、财务数据(尝试) |
总结Summary | |
|