机器学习--聚类(12)

2023-11-10

一、基本概念

聚类的概念:一种无监督的学习,事先不知道类别,自动将相似的对象归到同一个簇中。

应用场景:文档分类器、客户分类、保险欺诈检测、 乘车数据分析

二、距离计算

对于有序距离

在这里插入图片描述
其中P=1为曼哈顿距离
P=2为欧氏距离

对于无序距离

使用VDM距离:
在这里插入图片描述
其中 mu,a,i表示在第i个样本簇中属性u上取值为a的样本数
mu,a表示属性u上取值为a的样本数
k为样本簇数

混合距离

使用闵科夫斯基距离和VDM的混合

在这里插入图片描述
其中nc为有序属性个数

加权距离

根据不同属性的重要性,可使用“加权”距离

二、聚类算法的分类

2.1 基于原型的聚类

①、Kmeans算法

主要思想:

在给定K值和K个初始类簇中心点的情况下,把每个点(亦即数据记录)分到离其最近的类簇中心点所代表的类簇中,所有点分配完毕之后,根据一个类簇内的所有点重新计算该类簇的中心点(取平均值),然后再迭代的进行分配点和更新类簇中心点的步骤,直至类簇中心点的变化很小,或者达到指定的迭代次数。

K值选取原则:评价效果好且结果可解释
初始点的选取原则: 尽可能远

优点:

1、解决聚类问题的经典算法,简单
2、当处理大数据集时,该算法保持可伸缩性和高效率
3、当簇近似为高斯分布时,它的效果较好

缺点:

1、在簇的平均值可被定义的情况下才能使用,可能不适用于某些应用
2、必须实现给出k(要生成簇的数目),而且对初值敏感,即对于不同的初值,可能会导致不同结果
3、不适合非凸形状的簇或者大小差别很大的簇
4、对噪声和孤立点敏感

②、学习向量量化(LVQ)
③、高斯混合聚类

基于密度的聚类

练习

亚洲足球队实力聚类

import numpy as np
import pandas as pd
from pandas import Series, DataFrame

import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

from sklearn.cluster import KMeans
from mpl_toolkits.mplot3d import axes3d

# 导入数据集
data = pd.read_csv('AsiaZoo.txt', header=None)
data.columns = ["国家","2006世界杯","2010世界杯","2007亚洲杯"]

X = data.iloc[:,1:]
km = KMeans(n_clusters=3)
y_ = km.fit_predict(X)

sns.set_style(style='white')

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 绘制聚类后的散点图
plt.figure(figsize=(10,6))
ax = plt.subplot(projection = '3d')

ax.scatter3D(data['2006世界杯'], data['2010世界杯'], data['2007亚洲杯'], s=200, c= y_, alpha=1)
ax.set_xlabel('2006世界杯')
ax.set_ylabel('2010世界杯')
ax.set_zlabel('2007亚洲杯')
plt.show()

# 查看每个类的球队
data['类别'] = y_
for _, indexes in data.groupby('类别').groups.items():
    countrys = data.loc[indexes, '国家']
    for country in countrys:
        print(country, end=' ')
    print()

数据集:
在这里插入图片描述
散点图:
在这里插入图片描述
每个类别球队:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习--聚类(12) 的相关文章

随机推荐

  • 详解vue中的v-model

    序 v model是v bind和v on input的结合 即监听了表单的input事件 然后修改value属性对应的值 一 vue单文件中使用v model 众所周知 当我们使用v bind绑定prop时 数据流的流向是从model层流
  • Centos7安装Redis并设置开机自启动图文详解

    1 下载redis wget http download redis io releases redis 6 0 0 tar gz 如果提示没有wget使用如下命令 yum y install wget 2 安装 解压 tar zxvf r
  • 【ES】Elasticsearch Java Rest Client (Document APIs)官方文档中文翻译

    这里写目录标题 一 文档APIs 1 单文档 API Index API Get API Get Source API Exists API Delete API Update API Term Vectors API 2 多文档 API
  • Linux本地套接字

    LINUX和UNIX都拥有一个非常实用的工具 UNIX套接字 或称为本地套接字 它可以被用在进程间通讯 IPC 当中 UNIX套接字的运转机制和Internet套接字类似 主要的区别UNIX套接字只能用在一台计算机中 而Internet套接
  • Linux(ubuntu)安装libevent

    步骤如下 第一步下载压缩包文件 libevent 2 1 8 stable tar gz 地址 https github com libevent libevent releases download release 2 1 8 stabl
  • 李沐论文精读系列四:CLIP和改进工作串讲(LSeg、GroupViT、VLiD、 GLIPv1、 GLIPv2、CLIPasso)

    文章目录 一 CLIP 1 1 简介 1 1 1 前言 1 1 2 模型结构 1 1 3 模型效果 1 1 3 1 对自然分布偏移的鲁棒性 1 1 3 2 StyleCLIP 1 1 3 3 CLIPDraw 1 1 3 4 zero sh
  • 互联网拥塞控制终极指南

    本文为媒矿工厂翻译的技术文章 原标题 The Ultimate Guide to Internet Congestion Control 原作者 Michael Schapira 原文链接 https www compiralabs com
  • sqlserver 查看表所占磁盘空间

    方法1 可以通过SP SPACEUSED来查看 sp spaceused 显示行数 保留的磁盘空间以及当前数据库中的表所使用的磁盘空间 或显示由整个数据库保留和使用的磁盘空间 语法 sp spaceused objname objname
  • ubuntu开机出现initramfs解决办法

    今天上班打开ubuntu的虚拟机的时候出现了这个界面 注意倒数第三行 说 dev sda1 需要 fsck 第一步 执行命令 fsck dev sda1 y 第二步 当出现FILE SYSTEM WAS MODIFIED这个的时候 就表示已
  • 你想知道undo log的作用都在这里

    今天我们来介绍下mysql的undo log 日志 带你更加深入理解它的作用 01 为什么需要 undo log 考虑一个问题 一个事务在执行过程中 在还没有提交事务之前 如果mysql发生了崩溃 要怎么回滚到事务之前的数据呢 如果我们每次
  • 关于本地方法栈的详细介绍

    本地方法栈 Native Method Statck 与虚拟机所发挥的作用是非常相似的 它们之间的的区别不过是虚拟机栈为虚拟机执行java方法 也就是字节码 服务 而本地方法栈则为虚拟机是有的Native方法服务 在虚拟机规范中对本地方法栈
  • entity framework core + SQLite Error 1: 'no such table: Blogs'.

    在学习Entity Framework Core使用SQLite时 出现上述错误 原因是找不到db文件 在UseSqlite 中添加具体的db文件路径 改成如下即可 protected override void OnConfiguring
  • Sentinel--服务容错

    目录 1 高并发带来的问题 2 服务雪崩效应 3 常见容错方案 1 高并发带来的问题 在微服务架构中 我们将业务拆分成一个个的服务 服务与服务之间可以相互调用 但是由于网络原因或者自身的原因 服务并不能保证服务的100 可用 如果单个服务出
  • 置信度&置信区间,这篇讲解我给100分!

    今天这篇聊聊统计学里面的置信度和置信区间 好像没怎写过统计学的东西 这篇试着写一写 1 点估计 在讲置信度和置信区间之前先讲讲点估计 那什么是点估计呢 给你举两个例子你就知道了 现在你想要知道一个学校学生的身高情况 你可以把所有的学生测量一
  • 创造与魔法为什么显示无法连接服务器,创造与魔法为什么显示登录失败

    发布时间 2018 04 19 一些玩家遇到数据库登录失败的问题 不知道如何解决 进不了游戏很是烦恼 下面小编就为大家带来十三号星期五数据库登录失败解决方法 遇到这类问题的小伙伴快来看看吧 十三号星期五数据库登录失败解决方 标签 攻略 发布
  • 哈夫曼编码(Huffman Coding)多图详细解析

    哈夫曼编码 哈夫曼编码 又称为霍夫曼编码 它是现代压缩算法的基础 假如我们需要将字符串ABBBCCCCCCCCDDDDDDEE通过二进制编码进行传输 那应该怎么将字符转换为二进制码 方法一 转换为ASCII码 直接将字母转换为对应的ASCI
  • vue【封装 Vue.js 组件库】

    一 组件库有哪些 element iu iview CDD Component Driven Development 自下而上 从组件级别开始 到页面级别结束 CDD 的好处 组件在最大程度被重用 并行开发 可视化测试 二 组件库开发流程
  • git 之 gitlab 私有项目仓库的搭建与使用

    gitlab 私有项目仓库的搭建与使用 一 gitlab简介 二 gitlab安装 三 gitlab使用 一 gitlab简介 GitLab是一个利用 Ruby on Rails 开发的开源应用程序 实现一个自托管的Git项目仓库 可通过W
  • 自用.vimrc文件

    set paste set nocompatible 关闭 vi 兼容模式 syntax on 自动语法高亮 set number 显示行号 set cursorline 突出显示当前行 set ruler 打开状态栏标尺 set shif
  • 机器学习--聚类(12)

    一 基本概念 聚类的概念 一种无监督的学习 事先不知道类别 自动将相似的对象归到同一个簇中 应用场景 文档分类器 客户分类 保险欺诈检测 乘车数据分析 二 距离计算 对于有序距离 其中P 1为曼哈顿距离 P 2为欧氏距离 对于无序距离 使用