zoukankan      html  css  js  c++  java
  • K-means: optimization objective(最小化cost function来求相应的参数)

    类似于linear regression,K-means算法也optimization objective或者是试图使cost function求最小值。

    了解K-means算法的optimization objective有助于我们(1)调试算法时,看算法是否运行正确(在本节中可以看到)(2)使算法找到更好的cluster,避免局部最优解(在下节中会讲)

    K-means optimization objective

    uc(i):表示x(i)分给的那个cluster的cluster centroid

    K表示有K个cluster,k表示cluster centoid的index.

    cost function为x(i)到属于它的cluster的cluster centroid的距离的平方的累加

    通过求cost function的最小值来求得参数c与u.

    这个cost function有时也称为distortion cost function(失真代价函数)

    K-means算法

    wrt: with respect to(关于)

    Cluster assignment step:就是将u固定,C做为参数来求cost function J(C)的最小值时的C值

    move centroid step: C固定,u做为参数来求cost function J(u)的最小值时的u值

    通过循环来收敛求得最后的C与u

    所以我们可以通过迭代次数与cost function之间的函数的关系来看程序是否是正确运行。正确运行的程序应该是随着迭代次数的增加,cost function递减而收敛

    总结

    1. K-means算法的过程就是最小化cost function J来求最优化参数的过程
    2. 通过cost function是否随着迭代次数的增加而收敛来判断算法是否正确运行
  • 相关阅读:
    bind函数(c++11)
    谓词
    lambda表达式(c++11)
    重载运算符
    sizeof新用法(c++11)
    引用限定符(c++11)
    this指针和const成员函数
    JavaScript for循环元素取下标问题
    Hbuider sass配置 webstorm scss配置
    检测对象是否拥有某一属性
  • 原文地址:https://www.cnblogs.com/yan2015/p/5236571.html
Copyright © 2011-2022 走看看