当前位置: 首页 > news >正文

湖北省勘察设计协会网站河南商务学校网站建设

湖北省勘察设计协会网站,河南商务学校网站建设,班级网站建设需求,内蒙古自治区建设厅网站无监督学习之K-means算法 1、无监督学习 无监督学习(Unsupervised Learning)计算机根据样本的特征或相关性,实现从样本数据中训练出相应的预测模型无监督学习模型算法中,模型只需要使用特征矩阵X即可,不需要真实的标签…

无监督学习之K-means算法

1、无监督学习

  • 无监督学习(Unsupervised Learning)计算机根据样本的特征或相关性,实现从样本数据中训练出相应的预测模型
  • 无监督学习模型算法中,模型只需要使用特征矩阵X即可,不需要真实的标签y,聚类算法是无监督学习中的代表之一
  • 聚类算法:
    • 数据集中,拥有数据特征,但是没有具体的标签
    • 将数据划分成有意义或有用的簇
    • 聚类算法追求“簇内差异小,簇外差异大”。而这个 “差异”便是通过样本点到其簇质心的距离来衡量
  • 聚类算法和分类算法的区别:

在这里插入图片描述

2、K-means 算法

  • K-means 是一种流行的聚类算法,主要用于无监督学习中对未标记的数据进行分类。该算法的目标是将数据集中的样本划分为K个簇,使得簇内的样本彼此之间的差异最小化。这种差异通常通过簇内所有点到该簇中心点的距离平方和来衡量
属性含义
Kmeans算法将一组N个样本的特征矩阵X划分为K个无交集的簇,直观上看来簇是一个又一个聚集一起的数据,在一个簇中的数据就认为是同一类,簇就是聚类的结果表现,其中簇的个数是一个超参数
质心每个簇中所有数据的均值u,通常被称为这个簇的"质心",在二维平面中,簇的质心横坐标是横坐标的均值,质心的纵坐标是纵坐标的均值
  • K-means 算法的基本步骤:
    • 随机抽取k个样本作为最初的质心,这可以通过随机选取数据集中的K个样本或者使用一些启发式方法来实现
    • 计算每个样本点与k个质心的距离(通常是欧氏距离),将样本点分配到最近的一个质心,生成k个簇
    • 对于每个簇,计算所有被分该簇的样本点的平均值作为新的质心
    • 当质心的位置不再发生变化或者迭代结束,聚类完成
  • 动态图示:

在这里插入图片描述

3. API

  • K-means 算法输入的是 k 值和样本数据结合,输出的是 k 个簇的集合

  • sklearn.cluster.KMeans类是scikit-learn库提供的一个用于执行K-means聚类算法的工具。它提供了一个易于使用的接口来执行聚类操作,并且内置了多种优化选项,KMeans()用来实例化模型对象

    参数如下:

    • n_clusters: int,默认为8。要创建的簇的数量
    • init: {‘k-means++’, ‘random’}, callable 或传入的数组,默认为’k-means++'。指定如何初始化质心。'k-means++'使用一种启发式方法来选择初始质心,以加快收敛速度;'random’则随机选择初始质心
    • n_init: int,默认为10。运行算法的次数,每次使用不同的质心初始化。最终结果将是具有最低惰性的模型
    • max_iter: int,默认为300。单次运行的最大迭代次数

    结果:

  • cluster_centers_属性:cluster_centers_ 属性存储了每个聚类的中心点坐标

  • labels_属性:labels_ 存储了每个数据点的聚类标签

  • make_blobs方法是 Sklearn 库中 sklearn.datasets 模块提供的一个函数,用于生成一组二维或高维的数据簇。这些数据簇通常用于聚类算法的测试。具体来说:

    • 参数:
      • n_samples 参数指定了生成样本的数量
      • centers 参数定义了数据集中簇的中心数量
      • random_state 参数用于设置随机数生成器的种子,以便在不同运行之间获得相同的结果
    • 返回值:返回一个元组
      • X:一个形状为 (n_samples, n_features) 的数组,表示生成的样本数据。每个样本都是一行,特征列为样本的各个维度坐标
      • y:一个形状为 (n_samples,) 的数组,表示每个样本所属的簇标签(中心索引)。如果不需要这个标签,可以像示例中那样用 _ 忽略它
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import numpy as np
data=np.random.randint(0,1000,(1000,2))
# print(data)
# plt.scatter(data[:,0],data[:,1])
# plt.show()
# model.fit(data)
n_class=7
model=KMeans(n_class)
model.fit(data)
# print(model.cluster_centers_)
# print(model.labels_)
# print(model.labels_==0)
# print(data[model.labels_==0])
for i in range(n_class):point=data[model.labels_==i]plt.scatter(point[:,0],point[:,1])
# plt.scatter(model.cluster_centers_[:,0],model.cluster_centers_[:,1])
plt.show()

4、总结

本文围绕无监督学习中的K-means算法展开介绍。无监督学习无需真实标签y,仅通过特征矩阵X训练模型,聚类是其代表,核心是将数据划分为“簇内差异小、簇外差异大”的簇,这与需标签的分类算法不同。

K-means作为流行聚类算法,目标是将数据划分为K个簇,以簇内样本到质心的距离平方和衡量差异并最小化。其关键概念包括“簇”(无交集的数据组)和“质心”(簇内样本均值)。算法步骤为:随机选K个初始质心,计算样本与质心距离并分配至最近簇,以簇内样本均值更新质心,迭代至质心稳定。

在工具方面,sklearn的KMeans类可实现该算法,关键参数有n_clusters(簇数)、init(质心初始化方式)等,结果可通过cluster_centers_(质心坐标)和labels_(样本聚类标签)获取。文中还给出代码示例,通过生成随机数据、建模聚类并可视化,展示了K-means的实际应用过程。

http://www.dtcms.com/a/480770.html

相关文章:

  • 呼和浩特电子商务网站建设wordpress下载远程图片大小
  • 天津市网站建设免费logo设计官网
  • 网站正在维护中 模板网站建设技术流程图
  • 网站设计需要哪些技能游戏开发工程师需要学什么
  • 盘锦建设小学网站网站开发asp软件有哪些
  • 用dw 网站开发与设计报告山西响应式网页建设报价
  • 网站 外包 版权建设企业网站可信度
  • 做网站用什么服务器北京哪家做网站
  • 建设电子商务平台网站微商城网站建设策划书
  • 修水网站建设蜜桃汇免费的wordpress账号
  • 小学网站建设微信商店小程序怎么弄
  • 可以做我女朋友吗网站c 做网站 知乎
  • 东莞做网站网站网站运营
  • 网站建设如何把代码wordpress模板剥离
  • 做视频的免费素材网站wordpress退出登录
  • 建站工具介绍微信漫画网站模板
  • wordpress新手建站深圳网站优化公司哪家好
  • 网站流量报告单页网站制作程序
  • 网页模板网站cms网站建设服务承诺包括什么
  • 网站建设的网络dw网页制作模板成品免费
  • 东莞网站建设部落优化方案化学
  • 天津高端品牌网站建设建立微信小程序
  • 开发一个定制的网站青海省公路工程建设信息网站
  • 台州集团网站建设pc网站自动生成app
  • 域名进行网站备案吗手机网站的页面大小
  • 网站的ftp地址怎么查做平台的网站有哪些
  • 彩票网站建设制作价格合肥网站设计服
  • 百度云网站建设教程网站用户注册页面怎么做
  • 网站标题优化排名网站建设月流量
  • 建设部网站设计资质查询友情链接可以帮助店铺提高浏览量