学习目标

  • 掌握聚类算法实现过程
  • 知道K-means算法原理
  • 知道聚类算法中的评估模型
  • 说明K-means的优缺点
  • 了解聚类中的算法优化方式
  • 应用Kmeans实现聚类任务

    纪要

    6.1 聚类算法简介

    1.聚类算法分类

    1. 粗聚类<br /> 细聚类

    2.定义

    1. 一种典型的无监督学习算法,<br /> 主要用于将相似的样本自动归到一个类别中<br /> 计算样本和样本之间的相似性,一般使用欧式距离

    6.2 聚类算法api初步使用

    1.api

    1. sklearn.cluster.KMeans(n_clusters=8)<br /> 参数:<br /> n_clusters:开始的聚类中心数量

    6.3 聚类算法实现流程【*

    k-means其实包含两层内容:

    1. k -- 选几个中心店<br /> means -- 均值计算

    流程

    1. 1、随机设置K个特征空间内的点作为初始的聚类中心<br /> 2、对于其他每个点计算到K个中心的距离,未知的点选择最近的一个聚类中心点作为标记类别<br /> 3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平均值)<br /> 4、如果计算得出的新中心点与原中心点一样(质心不再移动),那么结束,否则重新进行第二步过程

    kmeans小结

    1. kmeans由于要计算质心到每一个样本的距离,所以其收敛速度比较慢

    6.4 模型评估【**】

    0.sse

    1. 误差平方和<br /> 值越小越好

    1. 肘部法

    1. 下降率突然变缓时即认为是最佳的k

    2. SC系数

    1. 取值为[-1, 1],其值越大越好

    3. CH系数

    1. 分数s高则聚类效果越好<br /> CH需要达到的目的:<br /> 用尽量少的类别聚类尽量多的样本,同时获得较好的聚类效果。

    6.5 算法优化【*

    1.k_means

    1. 优点:<br /> 简单,容易理解<br /> 缺点:<br /> 特别人容易陷入到局部最优解

    2.Canopy

    1. 通过绘制同心圆,进行k值选择筛选<br /> 需要确定同心圆的半径t1,t2

    3.K-means++

    1. 距离平方进行求解<br /> 保证下一个质心到当前质心,距离最远

    4.二分k-means

    1. 通过误差平方和,设置阈值,然后进行划分

    5.k-medoids

    1. kmeans选取中心点的方式不同<br /> 通过从当前点选择中心点(质心)进行判断

    6.kernel kmeans【了解】

    1. 映射到高维空间

    7.ISODATA【了解】

    1. 动态聚类<br /> 可以更改k值的大小

    8.Mini-batch K-Means【了解】

    1. 大数据集分批聚类

    6.6 特征降维【*

    1.定义

    1. 就是改变特征值,选择哪列保留,哪列删除<br /> 目标是得到一组”不相关“的主变量

    2.降维的两种方式

    1. 特征选择<br /> 主成分分析(可以理解一种特征提取的方式)

    3.特征选择

    1. 定义:提出数据中的冗余变量<br /> 方法:<br /> Filter(过滤式):主要探究特征本身特点、特征与特征和目标值之间关联<br /> 方差选择法:低方差特征过滤<br /> 相关系数<br /> Embedded (嵌入式):算法自动选择特征(特征与目标值之间的关联)<br /> 决策树:信息熵、信息增益<br /> 正则化:L1L2<br /> 深度学习:卷积等

    4.低方差特征过滤

    1. 把方差比较小的某一列进行剔除<br /> api:<br /> sklearn.feature_selection.VarianceThreshold(threshold = 0.0)<br /> 删除所有低方差特征<br /> 注意,参数threshold一定要进行值的指定

    5.相关系数

    1. 主要实现方式:<br /> 皮尔逊相关系数<br /> 斯皮尔曼相关系数<br /> 5.1 皮尔逊相关系数<br /> 通过具体值的大小进行计算<br /> 相对复杂<br /> api:<br /> from scipy.stats import pearsonr<br /> 返回值,越接近|1|,相关性越强;越接近0,相关性越弱<br /> 5.2 斯皮尔曼相关系数<br /> 通过等级差进行计算<br /> 比上一个简单<br /> api:<br /> from scipy.stats import spearmanr<br /> 返回值,越接近|1|,相关性越强;越接近0,相关性越弱

    6.pca

    1. 定义:<br /> 高维数据转换为低维数据,然后产生了新的变量<br /> api:<br /> sklearn.decomposition.PCA(n_components=None)<br /> n_components<br /> 整数 -- 表示降低到几维<br /> 小数 -- 保留百分之多少的信息

    6.7 案例:探究用户对物品类别的喜好【*

    1.获取数据
    2.数据基本处理
    2.1 合并表格
    2.2 交叉表合并
    2.3 数据截取
    3.特征工程 — pca
    4.机器学习(k-means)
    5.模型评估