kmeans及模型评估指标_使用sklearn评估器构建聚类模型

原标题:使用sklearn评估器构建聚类模型

作者:徐瑶佳 来源:人工智能学习圈

工作内容:

聚类算法是在没有给定划分类别的情况下,根据数据样本的相似度进行样本分组的一种算法。聚类算法过程是无监督的,聚类模型可以将没有类标记的数据集聚集为多个簇,归为一类。常用在市场分析人员对消费者在数据库中的具体情况分类成不同的消费群体,从而评估出不同类消费人群的一个消费模式和消费习惯。聚类算法在数据分析算法中也可以作为其预处理步骤,例如异常值识别。

工作目标:

a.使用sklearn估计器构建K-Means聚类模型

b.根据聚类模型评价指标对K-Means聚类模型进行评价

6.2.1 构建聚类模型的逻辑与说明

首先在处理数据的过程中我们先对我们的输入内容进行考虑,即聚类输入为一组未被进行标记的数据样本,聚类通过不同数据之间的距离和相似度将这些数据样本进行划分,被划分成若干组的数据根据样本内部距离最小化,外部距离最大化的原则进行划分,可理解成不同维度与同一维度下数据的距离。

常用的聚类算法如下:

sklearn常用的聚类算法模块cluster提供的聚类算法及其适用范围如下:

聚类算法实现实现需要Estimator,其具备fit和predict两种方法,方法说明如下:

两个方法的步骤与Transformer数据预处理的过程相似,下面使用鸢尾花数据,通过sklearn估计器对其构建K-Means聚类模型,步骤如下:

首先读入数据:

iris=load_iris()irisData=iris.datairisTarget=iris.targetirisNames=iris.feature_names

得到数据样本后生成规则:

Scaler=MinMaxScaler().fit(irisData)

应用Scaler:

irisDataScaler=Scaler.transform(irisData)

构建模型后训练模型:即先构建KMeans模型后,利用fit方法将生成的数据规则样本传入训练模型,输出模型进行查看检验

kmeans=KMeans(n_clusters=3,random_state=23).fit(irisDataScaler)

print("the model:\n",kmeans)

输出结果如下:

接下来进行对测试集标签的预测:

rs=kmeans.predict([[2,2,2,2]])

print(rs[0])

输出结果为:2

代码如下:

聚类完成后为直观的看出我们聚类后的效果,可以通过sklearn的manifold模块中TSNE函数实现多维数据的可视化展现。

代码如下:

可视化图片如下:

我们可以发现本次聚类三类类别分布较为均匀,类与类之间界限明显,聚类效果好返回搜狐,查看更多

责任编辑:

你可能感兴趣的:(kmeans及模型评估指标)