zoukankan      html  css  js  c++  java
  • 无监督学习(Unsupervised Learning)

    无监督学习(Unsupervised Learning)

    聚类无监督学习

    特点

    • 只给出了样本, 但是没有提供标签
    • 通过无监督学习算法给出的样本分成几个族(cluster), 分出来的类别不是我们自己规定的, 而是无监督学习算法自己计算出来的

    K-means 聚类算法

    规定

    • (c^{(i)}): 表示(x^{(i)})属于哪个cluster, 如(x^{(1)})属于(c^{(1)})簇, 如果(c^{(1)}=1), 则(x^{(1)})划分在第1个类别
    • (mu_k): 表示第k簇的聚类中心样本点
    • (mu_{c^{(i)}}): 表示样本(x^{(i)})所在的聚类(c^{(i)})的聚类中心
    • (m): 样本的数量
    • (n): 特征的数量

    步骤

    1. 从现有的样本中调出K个样本作为聚类中心(采用随机初始化的方式选择样本)
    2. 计算其余样本分别到这K个样本的欧拉距离
    3. 某个样本距离这K个聚类中心的哪个最近, 就把这个样本归为那个类别, 以此类推, 将所有的样本进行归类
    4. 在已经分好类的基础上, 计算出每一个类别的均值(中心), 再重复2和3步骤, 知道损失函数达到最优点(可能仅仅是达到了局部最优点(local optima), K-means算法最终聚类的结果与第1步中K的随机初始化的值后很大的关系, 因为在结束了K-means算法之后我们应该重复1-4步多次, 得到损失函数最小), 结束K-means算法
    5. 注意: K值的选择需要人工调整

    理性的认识

    • 在K-means中主要就是要(min_{c^{(i)},mu^{(j)}}J(c^{(1)},c^{(2)},...,c^{(m)},mu^{(1)},mu^{(2)},...,mu^{(k)}))
    1. 随机初始化K, K要小于m
    2. 在for循环中一个一个的取出样本计算出所有样本到最近的中心的距离, 保证J最小
    3. 在另外一个for循环中取出中心点, 移动中心点
    4. 重复1-3步骤

    如何选择K的值

    • elbow method: 画出K与J的图像, 找出凸出点, 那个就是期望的K值
    • 根据实际需求划分
  • 相关阅读:
    基于Python的接口测试框架
    接口自动化之Postman+Newman
    UIAutomator定位Android控件的方法
    HTTP接口功能自动化测试入门
    前端基础:HTML标签(上)
    Python 面向对象进阶
    Python 断言和异常
    Linux 文件上传Linux服务器
    Python 运算符
    Python 基本数据类型
  • 原文地址:https://www.cnblogs.com/megachen/p/10030823.html
Copyright © 2011-2022 走看看