1
kmeans简介
kmeans是聚类算法中的一种,通过点与点之间的距离计算,将相近的点聚为一组。聚类结果常用于营销领域的相似用户识别、相似商品识别,欺诈领域的异常点识别等,具体算法介绍可参见文章聚类(二):k-means算法(R&python)。
2
调用公式
python中可从sklearn.cluster导入KMeans实现算法调用。以此为背景介绍数据的输入格式和结果。
1、标准输入
输入公式:array或者dataframe,不加label列
我们以鸢尾花数据为例,根据花萼长度、花萼宽度、花瓣长度、花瓣宽度给花进行分类。原有鸢尾花数据示例如下:
在使用时,我们需要把上面的数据转为array或者pandas.dataframe类型,并且因为kmeans是无监督学习算法,最后一列已有的属种列(即label列)我们要去掉。因此标准输入的格式应该如下:
2、命令执行
执行公式:KMeans().fit()训练+predict()预测
先用已有数据进行模型训练,再用训练好的模型将新数据进行类别划分。
KMeans中参数:
fit中参数:
predict参数:
3、结果解读
调用公式:labels_查看分组结果, cluster_centers_查看每组中心点
运算后,我们最需要知道的模型结果主要就是每一行样本的聚类结果以及每一个类别的中心点,两个结果都以array的数据类型进行输出。
3
公式法调用示例
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
import numpy as np
import pandas as pd
#1、标准输入
#输入公式:array或者dataframe,不加label列
iris=load_iris()
X1 = iris.data
print(type(X1))
#2、命令执行
#调用公式:KMeans().fit()训练+predict()预测
kmeans = KMeans(n_clusters=3, random_state=0).fit(X2)
pre_new = kmeans.predict([[4.8, 3.0,1.3,0.1], [5.3, 3.2,1.6,0.2]])
#3、结果解读
#调用公式:labels_查看分组结果, cluster_centers_查看每组中心点
print('聚类结果:')
print(kmeans.labels_)
print('新数据聚类结果:')
print(pre_new)
print('聚类中心:')
print(kmeans.cluster_centers_)