机器学习--K-Means
K均值聚类
算法过程
K − m e a n s K-means K−means 是 聚类 c l u s t e r i n g clustering clustering 算法的一种,就是给你一坨东西,让你给他们分类:
我们的 K − m e a n s K-means K−means 大概是这样一个流程:
- 第一步随机生成两个点(因为这里我想分两类,你想分几类你就弄几个点),标记为两个聚类中心 c l u s t e r c e n t r i o d cluster \; centriod clustercentriod,像这样:
- 然后重复以下两个步骤:
1. 遍历每个点 x ( i ) x^{(i)} x(i),分别计算点 x ( i ) x^{(i)} x(i) 到两个聚类中心的距离 d 1 d_1 d1 和 d 2 d_2 d2,然后比较大小。并标记这个点为距离更小的那一类
2. 分别遍历同一类的所有点,计算这些点的几何平均位置,并把聚类中心移动到这个位置
这样说起来可能很抽象,我们还是用图像来更清晰的表示一下这个过程:
图画到这里我们就能明显的观察到两个聚类已经被划分好了。
优化目标函数
像前面介绍的线性回归、逻辑回归、 S V M SVM SVM 一样,这里的 K − m e a n s K-means K−means 也有一个用于优化的函数:
n o t a t i o n notation notation: c i c_i ci 表示点 x i x_i xi 的类别, μ k \mu_k μk 表示聚类中心 k k k, μ c i \mu_{c_i} μci 表示 x i x_i xi 所属的那个聚类中心
J ( c 1 , ⋯ , c m , μ 1 , ⋯ , μ K ) = 1 m ∑ i = 1 m ∣ x i − μ c i ∣ 2 J(c_1, \cdots, c_m, \mu_1, \cdots, \mu_K) = \frac{1}{m}\sum_{i = 1}^m |x_i - \mu_{c_i}|^2 J(c1,⋯,cm,μ1,⋯,μK)=m1i=1∑m∣xi−μci∣2
我们要做的就是:
min c , μ J ( c 1 , ⋯ , c m , μ 1 , ⋯ , μ K ) \min\limits_{c, \mu} J(c_1, \cdots, c_m, \mu_1, \cdots, \mu_K) c,μminJ(c1,⋯,cm,μ1,⋯,μK)
看得出来,这就是要最小化所有点 x i x_i xi 与其所属的聚类中心 μ x i \mu_{x_i} μxi 的距离的平方和。
跑 114514 114514 114514次 k − m e a n s k-means k−means
可能你也注意到了,我们如果只跑一遍 k − m e a n s k-means k−means 的话可能不会得到一个很好的分类方案,所以我们考虑每次随机初始化聚类中心,然后跑很多遍(取决于你的数据规模和时间) k − m e a n s k-means k−means,对于每次计算出来的 c , μ c, \mu c,μ 算出它的 J ( c , μ ) J(c, \mu) J(c,μ),然后在其中选择 J ( c , μ ) J(c, \mu) J(c,μ) 最小的那个分类方案作为最后的答案。
相关文章:

机器学习--K-Means
K均值聚类 算法过程 K − m e a n s K-means K−means 是 聚类 c l u s t e r i n g clustering clustering 算法的一种,就是给你一坨东西,让你给他们分类: 我们的 K − m e a n s K-means K−means 大概是这样一个流程: 第一…...

模型训练时CPU和GPU大幅度波动——可能是数据的读入拖后腿
模型训练时CPU和GPU大幅度波动——可能是数据的加载拖后腿 问题 在进行猫狗大战分类任务时,发现模型训练时CPU和GPU大幅度波动,且模型训练速度很慢。 原因 初步分析可能是数据加载(包括数据的transform,我用了Resize&#…...

keep-alive的应用场景
...

【C++ Primer Plus习题】16.9
大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <ctime> #include <v…...

Java入门:09.Java中三大特性(封装、继承、多态)02
2 继承 需要两个类才能实现继承的效果。 比如:类A 继承 类B A类 称为 子类 , 衍生类,派生类 B类 称为 父类,基类,超类 继承的作用 子类自动的拥有父类的所有属性和方法 (父类编写,子类不需要…...

AI为云游戏带来的革新及解决方案:深度技术剖析与未来展望
近期,科技巨头埃隆马斯克与热门国产游戏《黑神话:悟空》的互动,再次引发了公众对AI技术在游戏产业中应用的关注。马斯克,作为特斯拉和SpaceX的掌门人,不仅在科技领域引领风骚,其个人兴趣也广泛涉猎…...

集合是什么
1.是什么 集合(Collection)是Java语言中一个非常重要的概念,它是一组对象的容器,用于存储、检索和操作对象。在Java中,集合框架定义了一系列接口和实现类,用于处理不同类型的集合。 集合的概念 集合框架提…...

JavaDS —— 图
图的概念 图是由顶点集合以及顶点之间的关系组成的一种数据结构:G (V,E) 其中 V 表示的是顶点集合 : V { x | x 属于某个数据对象集} 是有穷非空集合 E 叫做边的集合 : E {(x, y) | x, y 属于 V} 或者 …...

魅思-视频管理系统 getOrderStatus SQL注入漏洞复现
0x01 产品简介 魅思-视频管理系统是一款集成了视频管理、用户管理、手机端应用封装等功能的综合性视频管理系统。该系统不仅以其强大的视频管理功能、灵活的用户管理机制、便捷的手机端应用封装功能以及高安全性和现代化的界面设计,成为了市场上备受关注的视频管理系统之一。…...

SOME/IP通信协议在汽车业务具体示例
标签:SOME/IP; SomeIP通信协议在汽车业务具体示例; SomeIP通信协议在汽车业务具体示例 SOME/IP(Scalable service-Oriented MiddlewarE over IP)协议被广泛应用于现代汽车的多个关键业务领域。SOME/IP协议特别适合需要…...

jupyter notebook添加环境/添加内核
参考: jupyter notebook添加环境/添加内核(超详细)_python_leoound-GitCode 开源社区 Jupyter Notebook 切换虚拟环境_jupyter 选择环境-CSDN博客 1.激活想添加的环境 conda activate pytorch39 2.下载核 conda install ipykernel 3.按照…...

建模杂谈系列256 规则函数化改造
说明 之前尝试用FastAPI来构造规则,碰到的问题是由于请求量过大(TPS > 1000), 从而导致微服务端口资源耗尽。所以现在的point是: 1 如何使用函数来替代微服务(同时要保留使用微服务的优点)2 进一步抽象并规范规则的执行3 等效合并规则的方法 内容 0 机制讨论…...

python实现冒泡排序的算法
冒泡排序是对数组里面两个相邻的数据进行比较并排序,最大的数会不断向后移动,因此叫冒泡排序。 冒泡排序的步骤: 1.首先对数组第一个数和第二个数进行比较,谁最小,谁排在前面 2.将第二个数与第三个数进行比较排序&a…...

爱玩游戏的弟弟,被人投资了100万
很多人说游戏是个害人的东西,尤其现在的青少年,被毒害得不浅,那还是因为大多数人对游戏本身了解得不够全面,只知道游戏是拿来玩,拿来消遣的,殊不知游戏里面还有大把捞金的机会。 我有个学员,我…...

Pandas_数据结构详解
1.创建DataFrame对象 概述 DataFrame是一个表格型的结构化数据结构,它含有一组或多组有序的列(Series),每列可以是不同的值类型(数值、字符串、布尔值等)。 DataFrame是Pandas中的最基本的数据结构对象&am…...

Leetcode 3287. Find the Maximum Sequence Value of Array
Leetcode 3287. Find the Maximum Sequence Value of Array 1. 解题思路2. 代码实现 题目链接:3287. Find the Maximum Sequence Value of Array 1. 解题思路 这一题我的思路比较暴力,就是求出每一个位置前后所有可能的长度为k的子序列的所有的或结果…...

python 山峦图
效果: 代码: import matplotlib.pyplot as plt import numpy as npdef mountain_plot(data_dict, colorsNone):if colors is None:colors get_colors_from_map(len(data_dict), "Spectral")x list(data_dict.keys())# Y轴位置y_positions …...

Open3D:3D数据处理与可视化的强大工具
创作不易,您的打赏、关注、点赞、收藏和转发是我坚持下去的动力! Open3D算法框架简介 Open3D是一个开源的3D数据处理库,旨在为3D数据提供高效、易用的计算和可视化工具。它支持多种3D数据格式,例如点云、网格、RGB-D图像等&…...

YOLOv8改进系列,YOLOv8的Neck替换成AFPN(CVPR 2023)
摘要 多尺度特征在物体检测任务中对编码具有尺度变化的物体非常重要。多尺度特征提取的常见策略是采用经典的自上而下和自下而上的特征金字塔网络。然而,这些方法存在特征信息丢失或退化的问题,影响了非相邻层次的融合效果。一种渐进式特征金字塔网络(AFPN),以支持非相邻…...

BitLocker硬盘加密的详细教程分享
硬盘加密是将数据转换为一种只有授权用户才能读取的形式。通过使用加密算法,硬盘上的数据在存储时被加密,只有输入正确的密钥或密码才能解密和访问这些数据。 硬盘加密的重要性 数据是现代社会的重要资产,保护这些数据免受非法访问和窃取至关…...

YOLOv8的GPU环境搭建方法
首先说明这个环境搭建教程是基于电脑已经安装好CUDA和CUDNN的情况下,去搭建能够正确运行YOLOv8代码的Pytorch的GPU版本。具体安装方法可见:最适合新手入门的CUDA、CUDNN、Pytorch安装教程_cuda安装-CSDN博客 第一步:需要在cmd中创建虚拟环境c…...

JZ2440下载后设置NAND启动文件系统
(一)下载 (二)设置根文件系统NAND FLASH启动 set bootargs noinitrd root/dev/mtdblock3 init/linuxrc consolettySAC0...

AI绘画与摄影新纪元:ChatGPT+Midjourney+文心一格 共绘梦幻世界
文章目录 一、AI艺术的新时代二、ChatGPT:创意的引擎与灵感的火花三、Midjourney:图像生成的魔法与技术的奇迹四、文心一格:艺术的升华与情感的共鸣五、融合创新:AI绘画与摄影实战的无限可能六、应用场景与实践案例AI艺术的美好未…...

金手指设计
"MCP6294"。是一个轨到轨, 带宽为 10MHz 的 低功耗放大器. 对LM358测量 10MHz 范围内的频率特性,在 8MHz 左右,输出相移超过了 180。MCP6294的频率特性,则显示在 10MHz 运放相移之后 100左右。 对比两个运放的频率特性ÿ…...

Chainlit集成LlamaIndex并使用通义千问模型实现AI知识库检索网页对话应用增强版
前言 之前使用Chainlit集成LlamaIndex并使用通义千问大语言模型的API接口,实现一个基于文档文档的网页对话应用。 可以点击我的上一篇文章《Chainlit集成LlamaIndex并使用通义千问模型实现AI知识库检索网页对话应用》 查看。 本次针对上一次的代码功能进一步的完善…...

详解c++菱形继承和多态---下
菱形继承 #include<iostream>using namespace std; class Animal { public:int m_Age; }; class Sheep : public Animal {}; class Tuo : public Animal {}; class SheepTuo : public Sheep, public Tuo {}; void test() {SheepTuo st;st.Sheep::m_Age 18;st.Tuo::m_Age…...

python学习笔记目录
基于windows下docker安装HDDM-CSDN博客 在python中安装HDDM-CSDN博客(这个办法没安装成功)...

非结构化数据中台架构设计最佳实践
在数据驱动的时代背景下,非结构化数据已成为企业决策和运营的重要支撑。非结构化数据中台作为企业数据管理和分析的核心平台,其架构设计对于数据的高效利用和业务的快速发展至关重要。本文将探讨非结构化数据中台架构设计的最佳实践,旨在为企…...

鹏鼎控股社招校招入职SHL综合能力测评:高分攻略及真题题库解析答疑
鹏鼎控股(深圳)股份有限公司,成立于1999年4月29日,是一家专注于印制电路板(PCB)的设计、研发、制造与销售的高新技术企业。公司总部位于中国广东省深圳市,并在全球多个地区设有生产基地和服务中…...

【测向定位】差频MUSIC算法DOA估计【附MATLAB代码】
微信公众号:EW Frontier QQ交流群:554073254 摘要 利用多频处理方法,在不产生空间混叠的情况下,估计出高频区域平面波的波达方向。该方法利用了差频(DF),即两个高频之间的差。这使得能够在可…...