Python使用K-means聚类分析

article/2025/11/11 8:12:21

Python使用K-means聚类分析


文章目录

  • Python使用K-means聚类分析
  • 介绍
    • 1.集群标签作为特征
  • 一、k-均值聚类
  • 二、示例 - 加州住房
    • 2.KMeans
  • 总结


介绍

提示:这里可以添加本文要记录的大概内容:

本文将使用所谓的无监督学习算法。 无监督算法不使用目标; 相反,它们的目的是学习数据的某些属性,以某种方式表示特征的结构。 在用于预测的特征工程的上下文中,您可以将无监督算法视为一种“特征发现”技术。

聚类只是意味着根据点之间的相似程度将数据点分配给组。 可以说,聚类算法使“物以类聚”。

当用于特征工程时,我们可以尝试发现代表细分市场或具有相似天气模式的地理区域的客户群。 添加集群标签的功能可以帮助机器学习模型理清复杂的空间或邻近关系。

1.集群标签作为特征

应用于单个实值特征,聚类就像传统的“分箱”或“离散化”变换。 在多个特征上,它就像“多维合并”(有时称为矢量量化)。
在这里插入图片描述添加到数据框,集群标签的功能可能如下所示:
在这里插入图片描述

请务必记住,此聚类功能是分类的。 在这里,它显示为典型的聚类算法会产生的标签编码(即,作为整数序列); 根据您的模型,单热编码可能更合适。添加聚类标签的动机是聚类会将特征之间的复杂关系分解为更简单的块。 然后,我们的模型可以一个接一个地学习更简单的块,而不必一次学习所有复杂的整体。 这是一种“分而治之”的策略。
在这里插入图片描述
该图显示了聚类如何改进简单的线性模型。 YearBuilt 和 SalePrice 之间的曲线关系对于这种模型来说太复杂了——它欠拟合。 然而,在较小的块上,这种关系几乎是线性的,并且模型可以轻松学习。


提示:以下是本篇文章正文内容,下面案例可供参考

一、k-均值聚类

有很多聚类算法。 它们的主要区别在于如何衡量“相似性”或“接近性”,以及它们使用的特征类型。 我们将使用的算法 k-means 直观且易于在特征工程环境中应用。 根据您的应用程序,另一种算法可能更合适。

K 均值聚类使用普通直线距离(换言之,欧几里德距离)来衡量相似性。 它通过在特征空间内放置一些称为质心的点来创建聚类。 数据集中的每个点都分配给它最接近的质心的集群。 “k-means”中的“k”是它创建的质心(即簇)的数量。 您自己定义 k。

您可以想象每个质心通过一系列辐射圆捕获点。 当来自竞争质心的多组圆圈重叠时,它们会形成一条线。 结果就是所谓的 Voronoi 镶嵌。 曲面细分向您展示了未来数据将被分配到哪些集群; 曲面细分本质上是 k-means 从其训练数据中学到的东西。

上述 Ames 数据集上的聚类是 k 均值聚类。 这是同一张图,显示了曲面细分和质心。
在这里插入图片描述
让我们回顾一下 k-means 算法如何学习聚类以及这对特征工程意味着什么。 我们将重点关注 scikit-learn 实现中的三个参数:n_clusters、max_iter 和 n_init。

这是一个简单的两步过程。 该算法首先随机初始化一些预定义数量 (n_clusters) 的质心。 然后迭代这两个操作:

将点分配给最近的簇质心
移动每个质心以最小化到其点的距离
它迭代这两个步骤,直到质心不再移动,或者直到达到某个最大迭代次数 (max_iter)。

质心的初始随机位置经常会以较差的聚类结束。 由于这个原因,该算法重复多次(n_init)并返回每个点与其质心之间的总距离最小的聚类,即最佳聚类。

下面的动画显示了正在运行的算法。 它说明了结果对初始质心的依赖性以及迭代直到收敛的重要性。
在这里插入图片描述
您可能需要为大量集群增加 max_iter 或为复杂数据集增加 n_init。 通常,您需要自己选择的唯一参数是 n_clusters(即 k)。 一组特征的最佳划分取决于您使用的模型和您试图预测的内容,因此最好像任何超参数一样调整它(例如通过交叉验证)。

二、示例 - 加州住房

作为空间特征,California Housing 的“纬度”和“经度”自然成为 k-means 聚类的候选对象。 在此示例中,我们将这些与“MedInc”(收入中位数)进行聚类,以创建加利福尼亚不同地区的经济细分。

代码如下(示例):

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from sklearn.cluster import KMeansplt.style.use("seaborn-whitegrid")
plt.rc("figure", autolayout=True)
plt.rc("axes",labelweight="bold",labelsize="large",titleweight="bold",titlesize=14,titlepad=10,
)df = pd.read_csv("../input/fe-course-data/housing.csv")
X = df.loc[:, ["MedInc", "Latitude", "Longitude"]]
X.head()

在这里插入图片描述

2.KMeans

由于 k 均值聚类对尺度敏感,因此使用极值重新尺度或规范化数据可能是个好主意。 我们的功能已经大致处于相同的规模,所以我们将保持原样

# Create cluster feature
kmeans = KMeans(n_clusters=6)
X["Cluster"] = kmeans.fit_predict(X)
X["Cluster"] = X["Cluster"].astype("category")X.head()

该处使用的url网络请求的数据。

现在让我们看几幅图,看看它的效果如何。 首先,显示集群地理分布的散点图。 该算法似乎为沿海的高收入地区创建了单独的细分市场。

sns.relplot(x="Longitude", y="Latitude", hue="Cluster", data=X, height=6,
);

在这里插入图片描述
此数据集中的目标是 MedHouseVal(房屋中值)。 这些箱线图显示了目标在每个集群中的分布。 如果聚类提供信息,这些分布在大多数情况下应该在 MedHouseVal 中分离,这确实是我们所看到的。

X["MedHouseVal"] = df["MedHouseVal"]
sns.catplot(x="MedHouseVal", y="Cluster", data=X, kind="boxen", height=6);

在这里插入图片描述


总结

提示:这里对文章进行总结:

以上就是今天要讲的内容


http://chatgpt.dhexx.cn/article/8J0SXKW1.shtml

相关文章

机器学习算法精讲20篇(一)-k-means聚类算法应用案例(附示例代码)

前言 k-means算法是非监督聚类最常用的一种方法,因其算法简单和很好的适用于大样本数据,广泛应用于不同领域,本文详细总结了k-means聚类算法原理 。 以下是我为大家准备的几个精品专栏,喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟! MATLAB-30天带你从入门…

【MATLAB统计分析与应用100例】案例016:matlab读取Excel数据,进行样品系统聚类分析

1. 聚类分析结果 2. matlab完整代码 (1)读取数据,并进行标准化 [X,textdata] = xlsread(examp09_02.xls); % 从Excel文件中读取数据 X = zscore(X

数据挖掘的常用方法、功能和一个聚类分析应用案例

在今天的博文中,笔者整理了数据挖掘的常用方法和数据挖掘的重要功能(出自MBA智库百科)。当然,横看成岭侧成峰,这些常用方法和重要功能也许并不完全正确或完整。除此以外,笔者尝试学习了SMARTBI公司中的Smart Mining软件&#xff0…

基于R语言的层次聚类分析-【案例实操】-基本操作,一看就会

基本思想 每一个样本作为一类按照某一种方法进行距离度量,比如“欧氏距离”距离最短划为1类重复步骤2和3,每次减少一类,直至所有样本合成1类 案例 数据 这里用鸢尾花数据集作为实验数据 data(iris)# 载入数据 plot(iris)# 画图**注意&am…

python数据分类聚类案例_用Python进行系统聚类分析

在进行机器学习时,我们往往要对数据进行聚类分析,聚类,说白了就是把相似的样品点/数据点进行归类,相似度高的样品点会放在一起,这样一个样本就会被分成几类。而聚类分析也有很多种方法,比如分解法、加入法、有序样品的聚类、模糊聚类法以及系统聚类法等。而本文要介绍的就…

数据挖掘时功能和一个聚类分析应用案例

数据挖掘时功能和一个聚类分析应用案例 数据挖掘的常用方法和数据挖掘的重要功能(出自MBA智库百科)。当然,横看成岭侧成峰,这些常用方法和重要功能也许并不完全正确或完整。除此以外,笔者尝试学习了SMARTBI公司中的Smart Mining软件&#xff…

聚类案例分析全流程汇总

一、案例说明 1.案例背景 研究调查10名运动员的3项测试数据,其中三项分别是:肩宽/髋宽100、胸厚/胸围100、腿长/身长100。其中编号为4、6、8、9的4名运动员分别是蛙、自由、仰、蝶泳四种姿势的佼佼者。预计姿势按姿势分为蝶泳、仰泳、蛙泳、自由泳4类&…

同你分享1个完整的聚类分析案例

这篇文章从对聚类的感性认识到聚类算法的实现: k个初始中心点的选择,中心点的迭代,直到算法收敛得到聚类结果。 但有几个问题需要回答: 如何判断数据是否适合聚类?k类是如何确定的?遇到数据集小的时候&…

Python 实操案例:一文详解10种聚类算法

聚类或聚类分析是无监督学习问题。它通常被用作数据分析技术,用于发现数据中的有趣模式,例如基于其行为的客户群。有许多聚类算法可供选择,对于所有情况,没有单一的最佳聚类算法。相反,最好探索一系列聚类算法以及每种…

SPSS中系统聚类操作案例

示例: 一啤酒生产商想了解当前啤酒市场情况,并判断时下最受欢迎的啤酒品牌,收集了多种啤酒在售价、热量、钠含量、酒精含量等方面的数据。运用系统聚类法对各项数据进行分析,并给出: (1)所有样…

一篇文章透彻解读聚类分析及案例实操

1 聚类分析介绍 1.1 基本概念 聚类就是一种寻找数据之间一种内在结构的技术。聚类把全体数据实例组织成一些相似组,而这些相似组被称作聚类。处于相同聚类中的数据实例彼此相同,处于不同聚类中的实例彼此不同。聚类技术通常又被称为无监督学习&#xff…

暗光增强论文“Kindling the Darkness: A Practical Low-light Image Enhancer”

暗光增强论文“Kindling the Darkness:A Practical Low-light Image Enhancer” 还是retinex-based的思想,将图像调节分解为2个部分:一个部分是负责光照的调节,一份部分是负责退化的去除。在这样的方法下,最原始的空间是被分成两…

NFC学习笔记(2)——NFC基础知识

书接上文 在等待PN532板子到货的同时,需要了解一些NFC的知识。 NFC卡分为5类 * I 型卡(不支持防冲突) * II 型卡 Mifare Ultralight卡 * III 型卡 Sony FeliCa卡 * IV 型卡 NXP DESFire卡 * V 型卡 NXP Mifare Classic卡 平时最常使…

Low-Light Image Enhancement with Normalizing Flow

基础理论知识点: 李宏毅flow-model: 参考博客、flow-model视频 Flow-model参考博客 3 Methodology 在本节中,首先介绍以往基于像素级重建损失的微光增强方法的局限性。然后,介绍了图2中我们的框架的总体范式。最后,我们提出的框架…

Ultra Edit使用技巧

Ultra Edit使用技巧 1.去掉横向滚动条(自动换行) 在菜单栏选择“高级->配置”,进入如下界面。然后在“编辑器”选项的“自动换行”界面里,选择“默认为每个文件启用自动换行”。 2.列编辑模式 按“ALT c”组合键可进入列编辑模式,可以按…

HighlightingSystem插件使用(边缘发光)

插件链接: http://pan.baidu.com/s/1dFwkaTr 密码: nw2c 导入Unity里面可能会报错,不过没关系,直接注释掉就可以了,我用的是Unity5.1的版本 可以看到如下文件夹,HighlighingSystemDemo是一些实例,可以看一下&#xff0…

HighlightPlus物体自发光

只介绍常用的几个参数与使用:

Deep Retinex Decomposition for Low-Light Enhancement

参考 Deep Retinex Decomposition for Low-Light Enhancement - 云社区 - 腾讯云 目录 摘要 1、简介 2、弱光增强的视黄素网 2.1、数据驱动的图像分解 2.2、支持结构平滑损失 2.3、多尺度照明调整 2.4、反射上的去噪 3、数据集 3.1、真实场景中捕获的数据集 3.2、从…

霓虹灯(light)

【题目描述】 小石家旁边有一个大型商场,晚上会有不停变换的霓虹灯,各种各样的颜色非 常漂亮,小石每天晚上都喜欢站在窗口看不停变换的霓虹灯。这个商场的霓虹灯 在每个时刻都是同一种颜色。小石每天晚上会在商场开始亮灯时就站在窗口观看。 …

ultralight搭建/运行/打包

0、ultralight的github更新 截至2023年3月17日,ultralight的github仓库最近的提交时间为2022年12月10日。 1、ultralight ultralight是使用C或C语言和HTML/JS构建界面,基于WebKit的HTML渲染器。 支持系统:Windows(7、x64)、macOS(Sierra或…