使用sklearn快速构建KMeans
程序员文章站
2022-07-13 13:31:36
...
首先看一下主函数
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=1,
algorithm='auto'
)
各参数的意义,按需使用
参数的意义:
n_clusters:簇的个数,即你想聚成几类
init: 初始簇中心的获取方法
n_init: 获取初始簇中心的更迭次数,为了弥补初始质心的影响,算法默认会初始10次质心,实现算法,然后返回最好的结果。
max_iter: 最大迭代次数(因为kmeans算法的实现需要迭代)
tol: 容忍度,即kmeans运行准则收敛的条件
precompute_distances:是否需要提前计算距离,这个参数会在空间和时间之间做权衡,如果是True 会把整个距离矩阵都放到内存中,auto 会默认在数据样本大于featurs*samples 的数量大于12e6 的时候False,False 时核心实现的方法是利用Cpython 来实现的
verbose: 冗长模式(不太懂是啥意思,反正一般不去改默认值)
random_state: 随机生成簇中心的状态条件。
copy_x: 对是否修改数据的一个标记,如果True,即复制了就不会修改数据。bool 在scikit-learn 很多接口中都会有这个参数的,就是是否对输入数据继续copy 操作,以便不修改用户的输入数据。这个要理解Python 的内存机制才会比较清楚。
n_jobs: 并行设置
algorithm: kmeans的实现算法,有:‘auto’, ‘full’, ‘elkan’, 其中 'full’表示用EM方式实现
代码部分
import numpy as np
from sklearn.cluster import KMeans
data = np.random.rand(100, 3) #生成一个随机数据,样本大小为100, 特征数为3
#假如我要构造一个聚类数为3的聚类器
estimator = KMeans(n_clusters=3)#构造聚类器
estimator.fit(data)#聚类
label_pred = estimator.labels_ #获取聚类标签
centroids = estimator.cluster_centers_ #获取聚类中心
inertia = estimator.inertia_ # 获取聚类准则的总和
更多细节来自于参考:
https://blog.csdn.net/sinat_26917383/article/details/70240628
推荐阅读
-
机器学习之使用sklearn构建据类模型,并且评价模型
-
使用IDEA快速构建ssm项目并快速解决遇到的常见的HTTP Status 404 – Not Found坑
-
idea使用maven快速构建flink骨架项目
-
使用sklearn快速构建KMeans
-
详解使用create-react-app快速构建React开发环境
-
手把手教你使用Django + Vue.js 快速构建项目
-
使用 Laravel 快速构建网站系列 -- 拖拽式生成CMS和在线商店:Microweber
-
带你使用webpack快速构建web项目的方法
-
vue-cli快速构建工程 ElementUI axios router 引入使用
-
【python 算法接口】使用FastAPI框架快速构建高性能的api服务