无监督学习算法Kmeans
1. 有监督学习和无监督学习
在机器学习算法中,常把算法分为有监督学习和无监督学习两种。他们之间的区别主要在于输入数据集类型和学习目标。
(1)有监督学习:训练输入的数据需要带有标签,以便算法能够学习输入和输出之间的映射关系;有监督学习的目标是通过对训练数据的学习,实现对未知数据的预测和分类。
(2)无监督学习:训练数据不需要标签,算法只能使用输入数据进行学习,目标是找到输入数据之间的相似性和区别。
这里我们要介绍的Kmeans聚类算法,就是一种无监督学习算法,输入的训练数据不需要类别标签,而是通过计算数据点之间的相似性来对数据进行分类。
2. Kmeans算法原理
- K-means聚类算法的原理是:
(1) 首先随机选择K个点作为初始的聚类中心;
(2)然后计算每个点到聚类中心的距离,将每个点分配到离它最近的聚类中心所在的簇中;
(3)对于每个簇,计算每个簇所有点的平均值,并将其作为新的聚类中心点;
(4)重复这个过程,直到聚类中心不再发生变化,或者达到预设的迭代次数。
这个算法的目标是最小化每个聚类内的距离和,即使得每个点与其所在聚类中心的距离之和最小。它尝试使得每个聚类尽可能小,并且不同聚类之间的距离尽可能大。
- K值如何确定
K值是一个重要的超参数,表示簇的个数,即要把数据分为几个类别。
K值的确定可以通过以下几种方法:
肘部法:肘部法所使用的聚类评价指标为数据集中所有样本点到其簇中心的距离之和的平方。
轮廓系数法:轮廓系数是一种非常常用的聚类效果评价指标。
可视化数据:最常用最简单的方法是可视化数据,然后观察出聚类聚成几类比较合适。
交叉验证:计算不同k值下KMeans算法的BIC和AIC值,BIC或AIC值越小,选择该k值。
3. 运行代码
import matplotlib.pyplot as plt
import sklearn
import numpy as npfrom sklearn.datasets import make_blobs
from sklearn.cluster import KMeansdef main():# step1: 首先用sklearn包生成训练集模板(这里的簇心为4)# 生成合成数据# n_samples是待生成的样本总数# centers 表示要生成的样本中心(类别)数,或是确定的中心点数量blobs = make_blobs(n_samples=200, random_state=1, centers=4)X_blobs = blobs[0] # 提取特征数据Y_blobs = blobs[1] # 类别plt.figure(1)plt.scatter(X_blobs[:, 0], X_blobs[:, 1], c=Y_blobs)# step2# step3: 聚类kmeans = KMeans(n_clusters=4, init='k-means++', n_init=10, max_iter=300, random_state=None, )kmeans.fit(X_blobs)# step4: plotx_min, x_max = X_blobs[:, 0].min() - 0.5, X_blobs[:, 0].max() + 0.5y_min, y_max = X_blobs[:, 1].min() - 0.5, X_blobs[:, 1].max() + 0.5# step5xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02), np.arange(y_min, y_max, 0.02))Z = kmeans.predict(np.c_[xx.ravel(), yy.ravel()])Z = Z.reshape(xx.shape)plt.figure(2)plt.clf()plt.imshow(Z, interpolation='hermite', extent=(xx.min(), xx.max(), yy.min(), yy.max()), cmap=plt.cm.winter,aspect='auto', origin='lower')plt.plot(X_blobs[:, 0], X_blobs[:, 1], 'w.', markersize=5)# 用红色的x表示簇中心centroids = kmeans.cluster_centers_plt.scatter(centroids[:, 0], centroids[:, 1], marker="x", s=150, linewidths=3, color='r', zorder=10)plt.xlim(x_min, x_max)plt.ylim(y_min, y_max)plt.xticks()plt.yticks()plt.show()if __name__ == '__main__':main()
相关文章:
无监督学习算法Kmeans
1. 有监督学习和无监督学习 在机器学习算法中,常把算法分为有监督学习和无监督学习两种。他们之间的区别主要在于输入数据集类型和学习目标。 (1)有监督学习:训练输入的数据需要带有标签,以便算法能够学习输入和输出…...
区块链(4):区块链技术模型介绍
1 区块链白皮书中的公有链,私有链,联盟链概念介绍 区块链系统根据应用场景和设计体系的不同,一般分为公有链、联盟 链和专有链(私有链)。其中: 公有链的各个节点可以自由加入和退出网络,并参加链上数据的读 写,运行时…...
go语言 rune 类型
ASCII 码只需要 7 bit 就能完整地表示,但只能表示英文字母在内的 128 个字符,为了表示世界上大部分的文字系统,发明了 Unicode ,它是 ASCII 的超集,包含世界上书写系统中存在的所有字符,并且为每个代码分配…...
DS18B20温度传感器
DS18B20简介 DS18B20 是由 DALLAS 半导体公司推出的一种的“一线总线(单总线)”接口的温度传感器 这种一线总线就是 三线制 SPI DS18B20的 配置寄存器: TM 是测试位,出厂设置就被设置为0,不需要改动, R1、R…...
LeetCode322. 零钱兑换
322. 零钱兑换 文章目录 [322. 零钱兑换](https://leetcode.cn/problems/coin-change/)一、题目二、题解方法一:完全背包二维数组方法二:一维数组 三、注意 一、题目 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 a…...
AUTOSAR扫盲贴--不是黑神话【基本概念和方法论】
猴子纵有72搬变化,也跳不出如来的手掌 目录 1. 引言 2. AUTOSAR的基本概念 2.1. AUTOSAR的架构和组成部分 2.2. AUTOSAR的规范和...
python抠图(去水印)开源库lama-cleaner入门应用实践
1. 关于 Lama Cleaner Lama Cleaner 是由 SOTA AI 模型提供支持的免费开源图像修复工具。可以从图片中移除任何不需要的物体、缺陷和人,或者擦除并替换(powered by stable diffusion)图片上的任何东西。 特征: 完全免费开源&am…...
Nginx可视化管理工具结合cpolar实现远程访问内网服务
前言 Nginx Proxy Manager 是一个开源的反向代理工具,不需要了解太多 Nginx 或 Letsencrypt 的相关知识,即可快速将你的服务暴露到外部环境,并且支持 SSL 配置。基于 Tabler 的美观且安全的管理界面,无需了解 Nginx 即可轻松创建转发域、重定…...
CCC数字钥匙设计【BLE】 --建立安全测距
1、建立安全测距Establish Secure Ranging 车端总共有三种建立安全测距的方式,具体如下: 1) Optimal Flow 2) Sub-Optimal Flow 3) Ranging Recovery Flow 为了确定建立安全测距需要执行哪条流程,车辆需要进行以下流程选择。当车辆和设备…...
Ubuntu22.04 Opencv4.5.1 CPU和GPU编译攻略,Opencv CPU和GPU编译保姆教程 亲自测试。
1、安装opencv依赖 安装时最好更换一下源。 sudo apt-get -y update sudo apt-get -y install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get -y install libgtk-3-dev gfortran openexr libatlas-base-dev python3-dev pyt…...
常识判断 --- 党史
目录 中共1~3大 例题 国民党 例题 中共4~5大 例题 中共起义~会议 例题 中共六届六中全会(1938年9月) 中共七大(1945年4月) 例题 中共七届二中全会 例题 中共8~10大 中共11~12届全会 例题 中共13~14大 …...
Rust 基础再理解
Rust堆栈 Rust中各种类型的值默认都存储在栈中,除非显式地使用Box::new()将它们存放在堆上,但数据要存放在栈中,要求其数据类型的大小已知。对于静态大小的类型,可直接存储在栈上,如裸指针、布尔、字符、整数浮点数&a…...
Opencv cuda版本在ubuntu22.04中安装办法,解决Could NOT find CUDNN的办法
文章目录 概要下载cuda的runfile版本配置环境变量官网下载cudann安装Opencv依赖包下载opencv和opencv_contrib并解压准备编译安装anaconda环境执行编译命令安装OpenCV并检查是否安装成功 概要 解决以下安装问题: -- Could NOT find CUDNN: Found unsuitable versi…...
全网首发YOLOv8暴力涨点:Gold-YOLO,遥遥领先,超越所有YOLO | 华为诺亚NeurIPS23
💡💡💡本文独家改进:提出了全新的信息聚集-分发(Gather-and-Distribute Mechanism)GD机制,Gold-YOLO,替换yolov8 head部分 实现暴力涨点 Gold-YOLO | 亲测在多个数据集能够实现大幅涨点 💡💡💡Yolov8魔术师,独家首发创新(原创),适用于Yolov5、Yolov7、…...
BD就业复习第四天
1. 布隆过滤器怎么实现去重 布隆过滤器是一种用于快速检查一个元素是否可能存在于一个大集合中的数据结构,但它并不适用于精确去重。因为布隆过滤器具有一定的误判率(可能会将不存在的元素误判为存在),所以不能确保完全的去重。但…...
数据结构 | 树
树 树是n(n>0)个结点的有限集。当n 0时,称为空树。在任意一棵非空树中应满足: 有且仅有一个特定的称为根的结点。当n>1时,其余节点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm&#…...
Android11 适配
一、修改targetSdkVersion为30 将build.gradle的目标版本targetSdkVersion修改为30(Android 11) targetSdkVersion 30Android11的改变改变主要影响以Adnroid11 为目标版本的应用(targetSdkVersion>30才有影响),和所…...
UML基础与应用之对象图
什么是对象图? 对象图表示一组对象及它们之间的关系,是某一时刻系统详细信息的快照,描述系统交互的静态图形,它由协作的对象组成,但不包含在对象之间传递的任何消息。因为对象是类的实例化,所以说某一时刻…...
英码科技精彩亮相火爆的IOTE 2023,多面赋能AIoT产业发展!
9月20日至22日,在这金秋飒爽的季节,为期三天的IOTE 2023第二十届国际物联网展深圳站在深圳国际会展中心盛大举行。英码科技精彩亮相本届展会,并在同期举办的AIoT视觉物联产业生态大会发表了主题演讲,与生态伙伴们共同探讨AIoT产业…...
400G QSFP-DD FR4 与 400G QSFP-DD FR8光模块:哪个更适合您的网络需求?
QSFP-DD 光模块随着光通信市场规模的不断增长已成为400G市场中客户需求量最高的产品。其中400G QSFP-DD FR4和400G QSFP-DD FR8光模块都是针对波分中距离传输(2km)的解决方案,它们之间有什么不同?应该如何选择应用?飞速…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
