机器学习算法大体分为三类:监督学习(supervised learning)、无监督学习(unsupervised learning)和半监督学习(semi-supervised learning)。监督学习是指我们利用带有类别属性标注的数据去训练、学习,用于预测未知数据的类别属性。例如,根据用户之前的购物行为去预测用户是否会购买某一商品。常用的算法有决策树,支持向量机SVM,朴素贝叶斯分类器,K-近邻算法KNN,线性回归和逻辑回归等.无监督学习是指在无人工干预的情况下将数据按照相似程度划分,而聚类算法就是非常典型的无监督学习方法,通常要处理的数据没有标签信息,可以通过计算数据之间的相似性来自动划分类别。
K-Means算法
算法的思想是初始随机给定K个簇中心,按照距离最近原则把待分类的样本点分到各个簇,然后按平均法重新计算各个簇的质心,从而确定新的簇心,迭代计算,直到簇心的移动距离小于某个给定的误差值。使用算法描述语言,只要四个步骤:
任意选择K个点作为初始聚类中心;
计算每个样本点到聚类中心的距离,将每个样本点划分到离该点最近的聚类中去;
计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的聚类中心;
反复执行2、3,直到聚类中心的移动小于某误差值或者聚类次数达到要求为止。
这里计算距离的方法通常是计算欧几里得距离,假设中心点center是(x1, y1),需要计算的样本点point是(x2, y2):
另外,给出损失函数(Cost Function),每一次选取好新的中心点,我们就要计算一