机器学习篇-聚类Kmeans算法

一. 聚类算法简介

概念

无监督学习算法

根据样本之间的相似性,将样本划分到不同的类别中;不同的相似度计算方法,会得到不同的聚类结果,常用的相似度计算方法有欧式距离法。

聚类算法的目的是在没有先验知识的情况下,自动发现数据集中的内在结构和模式。

使用不同的聚类准则, 产生的聚类结果不同

应用场景

聚类算法分类

根据聚类颗粒度分类

根据实现方法分类

  1. K-means:按照质心分类,主要介绍K-means,通用、普遍

  2. 层次聚类:对数据进行逐层划分,直到达到聚类的类别个数

  3. DBSCAN聚类是一种基于密度的聚类算法

  4. 谱聚类是一种基于图论的聚类算法

总结

聚类概念

无监督学习算法,主要用于将相似的样本自动归到一个类别中;计算样本和样本之间的相似性,一般使用欧式距离

聚类分类

颗粒度:粗聚类、细聚类。

实现方法: K-means聚类、层次聚类、 DBSCAN聚类、谱聚类

二. API

Kmeans算法的API

Kmeans-API实践

聚类算法API

构造数据API

数据-结果

流程

代码

import os
​
os.environ["OMP_NUM_THREADS"] = '4'     # 解决内存泄露警告
​
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.metrics import calinski_harabasz_score
import matplotlib.pyplot as plt
​
​
# 1. 构建数据集
# x是样本(点的横纵坐标), y是标签
x, y = make_blobs(
    n_samples=1000,  # 样本数
    n_features=2,  # 特征数: x, y
    centers=[[-1, -1], [0, 0], [1, 1], [2, 2]],  # 聚类中心, 也可以写数字表示中心点的数量
    cluster_std=[0.4, 0.2, 0.2, 0.2],  # 聚类标准差, 默认为1, 也可以写数字表示所有点的标准差
    random_state=21
)
# print(x)
# print(y)
# 绘图显示数据集
plt.figure()
plt.scatter(x[:, 0], x[:, 1], marker='o')
plt.show()
​
​
# 2. 模型训练预测
model = KMeans(
    n_clusters=4,   # 蕨类中心的数量 
    random_s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值