非监督算法
k-means是一个非监督算法,以前我们学的都是监督算法或者半监督算法,例如多元回归,贝叶斯判别,支持向量机,随机森林算法等。而这种距离算法则是非监督算法。
PS:常见的聚类方法有:系统聚类法,k均值聚类法
系统聚类法是计算所有数据之间的距离,根据不同的分类数,迭代,直到全部不能分为止,意思是你想要多少类都能分给你。
聚类算法
聚类算法根据数据之间的相似性或者距离将数据分为几个簇,簇与簇之间不同。
k-means 聚类算法
在这个算法中,我们需要提前指定数据可能分成的堆数,每个数据对象在不同的堆里都不同。
两个距离:(距离体现了他们之间的差异性)
个体与个体之间的距离
类与类之间的距离
距离的计算种类:马氏距离,欧氏距离,明氏距离等
每一个簇都有聚类中心,根据数据到聚类中心的距离,把它归为哪一类。
算法实施流程
初始化,选择适当的k中心数,在数据中随机选择k个中心
计算每个点到中心的距离,把它划分到近的簇,进行聚类。
重新计算聚类中心,使得内部和最小。
重复上述两个步骤,直到结果不再变化。
利用python实施
工具:python3.6 sklearn iris
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd