SKlearn 实现 K-Means 聚类|学习笔记

简介: 快速学习 SKlearn 实现 K-Means 聚类

开发者学堂课程【高校精品课-华东师范大学-人工智能基础:SKlearn 实现 K-Means 聚类】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/920/detail/15585


SKlearn 实现 K-Means 聚类


使用 K 均值算法对基本的数据集聚类

K 均值聚类是一个经典的聚类算法,属于非监督聚类。scikit-learn 的 cluster 模块中提供 KMeans 类可以实现K-均值聚类,构造函数如下:

sklearn.cluster.KMeans(n_clusters=8,init=’k-means++’,n_init=10,max_iter=300,tol=0.0001,precompute_distances='auto’ ,verbose=0,random_state=None,copy_x=True,n_jobs=None,algorithm=' auto')

下面介绍主要参数的含义。n clusters:是可选参数,默认值为8。表示要形成的簇的数目,即类的数量。

init:有三个可选值:’ k-means+ +' ,‘random' 或者传递一个ndarray向量。这个参数的功能是指定聚类的初始化方法,默认值为k-means+ +。对于聚类来说,初始的聚类中心对聚类结果影响很大。我们要特别来了解这三种初始化方法。

此参数指定初始化方法,默认值为 ‘k-means++’。

(1) ‘k-means++' 用K-means++优化算法选定初始聚类中心,可加速迭代收敛过程。

(2) 'random' 随机从训练数据中选取初始聚类中心。

(3)如果传递的是一个 ndarray,格式应该为(n_clusters,n_features)并给出初始的簇中心。

n init 默认为10,用不同种子运行k-均值算法的次数。

max iter:默认300,单次运行的k-均值算法的最大迭代次数。

训练之后 KMeans 对象有返回的属性

返回 KMeans 对象的属性包括:

cluster centers_:数组类型,各个簇中心的坐标。

Labels_:每个数据点的标签。

Inertia_:浮点型,数据样本到它们最接近的聚类中心的距离平方和。

n_iter_:运行的迭代次数

K-Means 模块的常用方法:

•fit(X,[Y])一参数为 X,也可以加入参数 Y,功能是进行 K-Means 聚类计算。

•predict(X)一参数为 X 功能是预测 X 中每个样本的所属(最近的)簇。

•fit_predict(X,[Y])一是一个综合函数,计算簇中心,并预测每个样本的所属簇。

In []:from sklearn.cluster import KMeans

import numpy as np

X = np.array([[1.2],[1. 4], [1. 0],[4. 2],[4. 4],[4. 0]])

kmeans =KMeans(n_clusters-2, random_state=0).fit(X)

#显示类别标签

print(‘k labels are:’, kmeans.labels_)

#预测结果

print(‘predict results are:’,kmeans.predict([[0. 0]. [4. 4]])

#显示簇中心

print(’cluster ceaters are:‘, kmeans.cluster_centers_)

数据集中有六个数据点,依次为[1.2],[1. 4], [1. 0],[4. 2],[4. 4],[4. 0]。构建一个 K 均值聚类模型进行划分,并使用训练好的模型预测[0. 0]. [4. 4]两个数据点的类别,我们使用 sklearn.cluster 中 KMeans

进行 K 均值聚类。

第一行 from sklearn.cluster import KMeans

包含 KMeans 包。import numpy as np 创建一个 np.array 数组,六个数据样本。使用 KMeans 创建模型,其中n_clusters 也就是 K=2, random_state =0。

第二步,对这个对象进行 fit。X 为参数。接下来显示类别标签。接下来显示预测结果和簇中心。

可以看到K的标签分别是0,0,0,1,1。predict results 是0,1 cluster ceaters 是[1.2]和[4. 2]。从结果可以看出,模型将前三个样本划分为零类。后三个样本划分为一类。但预测的两个点分别属于零类和一类,聚类中心有两个,分别是[1.2和[4. 2]。与分类不同聚类算法不使用数据集中的标签。

因为数据集中没有标签。但可以通过预测结果的对比查看算法的预测效果。

相关文章
|
6月前
|
存储 算法 Serverless
Regression算法
Regression算法
98 2
|
7月前
|
机器学习/深度学习 算法 数据可视化
R语言K-Means(K-均值)聚类、朴素贝叶斯(Naive Bayes)模型分类可视化
R语言K-Means(K-均值)聚类、朴素贝叶斯(Naive Bayes)模型分类可视化
|
7月前
|
算法 数据可视化 安全
R语言Kmeans聚类、PAM、DBSCAN、AGNES、FDP、PSO粒子群聚类分析iris数据结果可视化比较
R语言Kmeans聚类、PAM、DBSCAN、AGNES、FDP、PSO粒子群聚类分析iris数据结果可视化比较
|
7月前
|
机器学习/深度学习 算法 数据挖掘
r语言聚类分析:k-means和层次聚类
r语言聚类分析:k-means和层次聚类
|
机器学习/深度学习 算法 数据挖掘
机器学习之聚类算法Kmeans及其应用,调用sklearn中聚类算法以及手动实现Kmeans算法。
机器学习之聚类算法Kmeans及其应用,调用sklearn中聚类算法以及手动实现Kmeans算法。
409 0
机器学习之聚类算法Kmeans及其应用,调用sklearn中聚类算法以及手动实现Kmeans算法。
|
7月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法
K-means聚类算法
70 0
|
7月前
|
机器学习/深度学习 算法 数据挖掘
使用phyon实现K-means聚类算法
使用phyon实现K-means聚类算法
|
机器学习/深度学习 算法 数据可视化
k-means聚类算法
k-means聚类算法
214 0
|
机器学习/深度学习 算法 数据挖掘
Kmeans聚类算法详解
Kmeans聚类算法详解
1005 0
|
机器学习/深度学习 数据挖掘 PyTorch
Python sklearn实现K-means鸢尾花聚类
Python sklearn实现K-means鸢尾花聚类
350 0
Python sklearn实现K-means鸢尾花聚类