本文只是怕自己忘记,所以写下来,如果有不对的地方,欢迎大家指正批评
1.kmeans聚类
(1)算法任务:
你拥有一堆样本点,有K个类别的初始中心点,然后要通过聚类的方式,将所有样本点分为k类。
(2)算法流程:
步骤(a):计算每个样本点到k个中心点的距离,然后样本点到哪个中心点的距离比较近,就把样本点归为该中心点所在的类别。
步骤(b):根据每个样本点归在的中心点的类别,对归在同一个类别的中心点所有样本点做一个平均处理,得到每个类别的新的中心点。
步骤(c):如果中心点没有变,且样本点归在的类别没有发生变化的话,则算法结束,否则重复步骤(a)、(b)。
注:距离公式的选择、k的选择、k个中心点的选择都会影响最后的结果。
2.模糊kmeans聚类
(1)算法任务:
你拥有一堆样本点,有K个类别的初始中心点,然后要通过聚类的方式,将所有样本点分为k类,还有一个变量b的值。
(2)算法流程:
步骤(a):计算每个样本点到k个中心点的距离,然后计算该样本点被分到每个中心点的概率。计算的公式如下:
步骤(b):计算每个类别的新的中心点的值,计算公式如下。
步骤(c):如果中心点没有变,且样本点归在的类别没有发生变化的话,则算法结束,否则重复步骤(a)、(b)。
注:距离公式的选择、k的选择会影响最后的结果,但是k个初始中心点的选择一般不会影响最后的结果。
3.knn分类
(1)算法任务:
你有一个训练集,训练集里面的样本点都有标签,要对预测集里面的样本的标签进行预测。要提前设置好k值。
(2)算法流程:
步骤(a):计算预测集里面的每个样本点到训练集的每个样本点的距离
步骤(b):得到距离该样本点最近的k个训练集样本,统计这k个样本点的标签,将出现次数最多的标签作为该样本的分类标签。
注:k的取值会影响分类器的分类效果,可以采用不同的k的取值计算在验证集上的分类精度,一般选择分类精度最高的k的取值。