跟我一起数据挖掘(7)——矩阵

简介:

我们将一个对象的一个属性扩展到多个对象的多个属性,就形成了矩阵。


上面就是一个矩阵的示例。

相异性矩阵:

相异度矩阵存储n个对象两两之间的相似性,表现形式是一个n×n维的矩阵。d(i,j)是对象i和j之间相异性的量化表示,通常为非负值,两个对象越相似或“接近”,其值越接近0,越不同,其值越大,且d(i,j)= d(j,i),d(i,i)=0。

相异度矩阵是对象—对象结构的一种数据表达方式,多数聚类算法都是建立在相异度矩阵基础上,如果数据是以数据矩阵形式给出的,就要将数据矩阵转化为相异度矩阵。对象间的相似度或相异度是基于两个对象间的距离来计算的。

数据的相似性(similarity)和相异性(dissimilarity)都称为邻近性(proximity)。两个对象越相似则相似性值越高,越相异则相异性值越高。用于度量相似性和相异性的数据结构是:数据矩阵(用于存放数据对象)和相异性矩阵(用于存放数据对象对的相异性值)。

标称属性的邻近性度量

假设标称属性的状态数目是M。两个对象i和j之间的相异性可以根据不匹配率来计算:


其中,p是刻画对象的属性总数,m是两个对象取值相同的属性数。

相似性可以用下式计算:sim(i,j) = 1 – d(i,j) = m / p。

示例

假如我们有以下的样本数据:

对象标识符 属性1
1 A
2 B
3 C
4 A

此处令p=1,获取4个对象构成的相异性矩阵如下所示:

有相异性矩阵可得


代入数据:

0
(1-0)/1 0
(1-0)/1 (1-0)/1 0
(1-1)/1 (1-0)/1 (1-0)/1 0

得到结果如下:

由相异性矩阵可知,对象1和4是相似的,其他对象互不相似。

二元属性的邻近性度量

二元属性只有两种状态。

二元属性的邻近性度量分为对称的(symmetric)和非对称(asymmetric)的两种情况。对称的二元属性是指两个状态都同样重要,非对称的二元属性是指一个状态可以被忽略。

对于二元属性的相似性度量,首先需要制作两个对象的二元属性的列联表,如下所示:

二元属性的列联表

对象j
对象i 1 0 sum
1 q r q+r
0 s t s+t
sum q+s r+t p

表中q是对象i和j都取1的属性数;r是在对象i中取1、在对象j中取0的属性数;s是在对象i中取0、在对象j中取1的属性数;t是对象i和j都取0的属性数。属性的总数是p,p=q + r + s + t。

如果对象i和j都是用对称的二元属性刻画,则i和j的相异性为:


如果对象i和j都是用非对称的二元属性刻画,只有一个结果是重要的,那么上述公式中的t认为是可被忽略的,则i和j的相异性为:


非对称的二元相似性可以用下式计算:


公式中的sim(i,j)被称作Jaccard系数。

目录
相关文章
|
存储 监控 安全
【RISC-V 理论篇】SBI 规范解读(下)
【RISC-V 理论篇】SBI 规范解读(下)
906 0
|
12月前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
534 3
|
算法 IDE 关系型数据库
Machine Learning-L13-频繁模式挖掘
Machine Learning-L13-频繁模式挖掘
Machine Learning-L13-频繁模式挖掘
|
8月前
|
监控 关系型数据库 MySQL
如何解决 MySQL 数据库服务器 CPU 飙升的情况
大家好,我是 V 哥。当 MySQL 数据库服务器 CPU 飙升时,如何快速定位和解决问题至关重要。本文整理了一套实用的排查和优化套路,包括使用系统监控工具、分析慢查询日志、优化 SQL 查询、调整 MySQL 配置参数、优化数据库架构及检查硬件资源等步骤。通过一个电商业务系统的案例,详细展示了从问题发现到解决的全过程,帮助你有效降低 CPU 使用率,提升系统性能。关注 V 哥,掌握更多技术干货。
1132 0
|
12月前
|
网络协议 数据安全/隐私保护 网络架构
|
11月前
|
C语言
【数据结构】二叉树(c语言)(附源码)
本文介绍了如何使用链式结构实现二叉树的基本功能,包括前序、中序、后序和层序遍历,统计节点个数和树的高度,查找节点,判断是否为完全二叉树,以及销毁二叉树。通过手动创建一棵二叉树,详细讲解了每个功能的实现方法和代码示例,帮助读者深入理解递归和数据结构的应用。
720 8
|
运维 监控 Devops
DevOps 文化建设:促进跨职能团队合作
【8月更文第30天】在当今快速变化的商业环境中,组织需要更快地交付高质量的产品和服务来满足客户需求。DevOps作为一种文化和实践,旨在通过改进开发(Dev)和运维(Ops)团队之间的协作来提高软件交付的速度和质量。本文将探讨如何构建一个积极的DevOps文化,并提供具体的策略和工具来加强团队间的沟通与协作。
648 2
|
JSON 关系型数据库 API
Python 使用 FastAPI 和 PostgreSQL 构建简单 API
最近一年公司也在卷 LLM 的应用项目,所以我们也从 goper => Pythoner。 这一年使用最多的就是 Python 的 FastAPI 框架。下面一个简易项目让你快速玩转 Python API Web。 API代表应用程序编程接口,是软件开发中最重要的概念之一。它允许程序通过发送和接收数据与其他服务进行交互。API Web 通信最广泛使用的标准之一是 REST,它依赖于JSON 格式或键值对,类似于 Python 的字典。 如果想用 Python 构建一个,那么可以从几个框架中选择。Flask -RESTful、Django Rest Framework 和 FastAPI 是最受
|
算法 数据库 开发者
[软件工程导论(第六版)]第3章 需求分析(复习笔记)
[软件工程导论(第六版)]第3章 需求分析(复习笔记)
|
机器学习/深度学习 算法 数据可视化
机器学习-特征选择:如何使用相关性分析精确选择最佳特征?
本文致力于利用相关性分析来辅助特征选择过程。相关性分析作为一种用于量化特征之间关系的方法,可以帮助我们理解数据中的潜在模式和相互作用。通过分析特征之间的相关性,我们可以更加准确地选择具有高预测能力和独立性的特征,从而提高特征选择的效果和结果。
3052 0