Python与机器学习(二)
无监督学习
- 无监督学习
- 概念:利用无标签的数据学习数据的分布或数据与数据之间的关系被称为无监督学习。
- 有监督学习和无监督学习的最大区别:数据是否有标签
- 无监督学习最常应用的场景:聚类和降维
- 聚类:
- 就是根据数据的”相似性”将数据分为多类的过程。
- sklearn库提供的常用聚类算法函数包含在sklearn.cluster这个模块中,如:K-Means,近邻传播算法,DBSCAN算法等
- 降维
- 降维就是在保证数据所具有的代表性特性或者分布的情况下,将高维数据转化为低维数据的过程。
- 用途
- 数据可视化
- 精简数据
- 聚类和分类是无监督学习的典型任务
聚类
- K-means聚类算法
- 概念:K-means算法以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。
- 过程:
- 随机选择k个点作为初始的聚类中心
- 对剩下的点,根据其与聚类中心的距离,将其归入最近的簇
- 对每个簇,计算所有点的均值作为新的聚类中心
- 重复2、3直到聚类中心不再发生改变
- 随机选择k个点作为初始的聚类中心
- DBSCAN聚类算法
- 定位:DBSCAN算法是一种基于密度的聚类算法
- 聚类的时候不需要预先指定簇的个数
- 最终的簇的个数不定
- DBSCAN算法讲数据点分为三类:
- 核心点:在半径Eps内含有超过MinPts数据的点
- 边界点:在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内
- 噪音点:既不是核心点也不是边界点的点
- DBSCAN算法流程
- 将所有点标记为核心点、边界点或噪声点
- 删除噪声点
- 为距离在Eps之内的所有核心点之间赋予一条边
- 每组联通的核心点形成一个簇
- 将每个边界点指派到一个与之关联的核心点的簇中
- 定位:DBSCAN算法是一种基于密度的聚类算法
降维
- 主成分分析(PCA)
- 地位:主成分分析是最常用的一种降维方法,通常用于高维数据集的探索和可视化,还可用作数据压缩和预处理
- 主成分:
- PCA可以把具有相关性的高维变量合成为线性无关的低维变量,称为主成分。
- 主成分能够尽可能保留原始数据的信息。
- 主成分分析的原理:
- 矩阵的主成分就是其协方差矩阵对应的特征向量,按照对应的特征值大小进行排序,最大的特征值就是第一主成分,其次是第二主成分。。。
- 非负矩阵分解方法(NMF)
- 使用条件
- 非负矩阵分解是在矩阵中所有元素均为非负约束条件下的矩阵分解方法
- 基本思想
- 给定一个非负矩阵V,NMF能够找到一个非负矩阵W和一个非负矩阵H,使得矩阵W和H的乘积近似等于矩阵V中的值。
- 应用领域
- NMF广泛应用于图像分析、文本挖掘和语音处理等领域
- 使用条件