【差分隐私相关概念】约束下的列联表边缘分布计算方法
列联表及其边缘分布的详细解释
一、列联表的定义
列联表(Contingency Table) 是一种用于表示 多个分类变量联合分布 的表格。其核心是通过多维数组记录不同属性组合的频次。以下是关键点:
-
分类属性:
- 设有 k k k 个分类属性 A 1 , A 2 , … , A k A_1, A_2, \dots, A_k A1,A2,…,Ak,每个属性 A j A_j Aj 的取值范围为 I j = { 1 , 2 , … , I j } \mathcal{I}_j = \{1, 2, \dots, I_j\} Ij={1,2,…,Ij}。
- 示例:若 k = 3 k=3 k=3,属性可能为性别( A 1 ∈ { 男 , 女 } A_1 \in \{男, 女\} A1∈{男,女})、年龄段( A 2 ∈ { 0 − 10 , 11 − 20 } A_2 \in \{0-10, 11-20\} A2∈{0−10,11−20})、地区( A 3 ∈ { 城市 , 农村 } A_3 \in \{城市, 农村\} A3∈{城市,农村}})。
-
多维数组表示:
- 每个单元格 x ( i 1 , i 2 , … , i k ) x(i_1, i_2, \dots, i_k) x(i1,i2,…,ik) 表示属性组合 ( A 1 = i 1 , A 2 = i 2 , … , A k = i k ) (A_1=i_1, A_2=i_2, \dots, A_k=i_k) (A1=i1,A2=i2,…,Ak=ik) 的频次。
- 示例: x ( 1 , 2 , 1 ) x(1, 2, 1) x(1,2,1) 表示“男性、11-20岁、城市”的人口数。
-
向量化表示:
- 通过字典序函数 Ψ \Psi Ψ,将多维索引 ( i 1 , i 2 , … , i k ) (i_1, i_2, \dots, i_k) (i1,i2,…,ik) 映射为一维索引 i ∈ { 1 , 2 , … , n } i \in \{1, 2, \dots, n\} i∈{1,2,…,n},其中 n = ∏ j = 1 k I j n = \prod_{j=1}^k I_j n=∏j=1kIj。
- 示例:若 k = 2 k=2 k=2, I 1 = { 1 , 2 } \mathcal{I}_1=\{1,2\} I1={1,2}, I 2 = { 1 , 2 } \mathcal{I}_2=\{1,2\} I2={1,2},则:
- Ψ ( 1 , 1 ) = 1 \Psi(1,1)=1 Ψ(1,1)=1, Ψ ( 1 , 2 ) = 2 \Psi(1,2)=2 Ψ(1,2)=2, Ψ ( 2 , 1 ) = 3 \Psi(2,1)=3 Ψ(2,1)=3, Ψ ( 2 , 2 ) = 4 \Psi(2,2)=4 Ψ(2,2)=4,向量 x = ( x 1 , x 2 , x 3 , x 4 ) \mathbf{x} = (x_{1}, x_{2}, x_{3}, x_{4}) x=(x1,x2,x3,x4)。
二、边缘分布的计算
边缘分布(Marginal Distribution) 是通过对某些属性求和得到的简化分布。其目的是观察部分属性的联合频次。
-
属性子集 B ⊆ K B \subseteq K B⊆K:
- 选择需要保留的属性集合(如 B = { A 1 , A 3 } B = \{A_1, A_3\} B={A1,A3})。
- 投影操作:将多维索引 ( i 1 , i 2 , … , i k ) (i_1, i_2, \dots, i_k) (i1,i2,…,ik) 投影到 B B B 上,得到 ( i j 1 , i j 2 , … , i j b ) (i_{j_1}, i_{j_2}, \dots, i_{j_b}) (ij1,ij2,…,ijb),其中 j 1 , j 2 , … , j b ∈ B j_1, j_2, \dots, j_b \in B j1,j2,…,jb∈B。
-
边缘分布公式:
对于固定的 b ∈ I B b \in \mathcal{I}_B b∈IB(即 B B B 中属性的某个取值组合),其边缘计数为:
m ( b ) = ∑ j ∈ K ∖ B x ( b , j ) , \mathfrak{m}(b) = \sum_{j \in K \setminus B} x(b, j), m(b)=j∈K∖B∑x(b,j),
其中 x ( b , j ) x(b, j) x(b,j) 表示在固定 B B B 的取值为 b b b 时,对所有其他属性( K ∖ B K \setminus B K∖B)的可能取值求和。示例:
- 若 k = 3 k=3 k=3, B = { A 1 , A 3 } B = \{A_1, A_3\} B={A1,A3}, b = ( 男 , 城市 ) b = (男, 城市) b=(男,城市),则:
m ( b ) = x ( 男 , 0 − 10 , 城市 ) + x ( 男 , 11 − 20 , 城市 ) . \mathfrak{m}(b) = x(男, 0-10, 城市) + x(男, 11-20, 城市). m(b)=x(男,0−10,城市)+x(男,11−20,城市).
- 若 k = 3 k=3 k=3, B = { A 1 , A 3 } B = \{A_1, A_3\} B={A1,A3}, b = ( 男 , 城市 ) b = (男, 城市) b=(男,城市),则:
三、边缘分布的线性约束
边缘分布 m ( b ) \mathfrak{m}(b) m(b) 可以表示为列联表向量 x \mathbf{x} x 上的线性约束。
-
系数向量 a \mathbf{a} a 的构造:
- 对于每个一维索引 i ∈ { 1 , 2 , … , n } i \in \{1, 2, \dots, n\} i∈{1,2,…,n},检查其对应的多维索引 Ψ − 1 ( i ) \Psi^{-1}(i) Ψ−1(i) 在 B B B 上的投影是否为 b b b。
- 如果是,则 a i = 1 a_i = 1 ai=1,否则 a i = 0 a_i = 0 ai=0。
- 数学定义:
a i = { 1 , if proj B ( Ψ − 1 ( i ) ) = b , 0 , otherwise . a_i = \begin{cases} 1, & \text{if } \text{proj}_B(\Psi^{-1}(i)) = b, \\ 0, & \text{otherwise}. \end{cases} ai={1,0,if projB(Ψ−1(i))=b,otherwise.
-
约束方程:
边缘计数 m ( b ) \mathfrak{m}(b) m(b) 对应的线性约束为:
∑ i = 1 n a i x i = m ( b ) . \sum_{i=1}^n a_i x_i = \mathfrak{m}(b). i=1∑naixi=m(b).
本质:将满足 B B B 取值为 b b b 的所有单元格的频次相加。
四、具体案例解释
1. 场景设定
- 属性: A 1 A_1 A1(性别, I 1 = 2 I_1=2 I1=2), A 2 A_2 A2(年龄段, I 2 = 2 I_2=2 I2=2)。
- 列联表为 2x2 二维数组,向量化为 x = ( x 1 , x 2 , x 3 , x 4 ) \mathbf{x} = (x_{1}, x_{2}, x_{3}, x_{4}) x=(x1,x2,x3,x4),其中:
- x 1 = x ( 男 , 0 − 10 ) x_1 = x(男, 0-10) x1=x(男,0−10), x 2 = x ( 男 , 11 − 20 ) x_2 = x(男, 11-20) x2=x(男,11−20),
- x 3 = x ( 女 , 0 − 10 ) x_3 = x(女, 0-10) x3=x(女,0−10), x 4 = x ( 女 , 11 − 20 ) x_4 = x(女, 11-20) x4=x(女,11−20)。
2. 计算边缘分布
- 选择子集 B = { A 1 } B = \{A_1\} B={A1}(仅保留性别):
- I B = { 男 , 女 } \mathcal{I}_B = \{男, 女\} IB={男,女}。
- 对每个 b ∈ I B b \in \mathcal{I}_B b∈IB,计算边缘分布:
- b = 男 b = 男 b=男: m ( 男 ) = x 1 + x 2 \mathfrak{m}(男) = x_1 + x_2 m(男)=x1+x2,
- b = 女 b = 女 b=女: m ( 女 ) = x 3 + x 4 \mathfrak{m}(女) = x_3 + x_4 m(女)=x3+x4。
3. 线性约束表示
- 对于 b = 男 b = 男 b=男,系数向量 a = ( 1 , 1 , 0 , 0 ) \mathbf{a} = (1, 1, 0, 0) a=(1,1,0,0),约束方程为:
1 ⋅ x 1 + 1 ⋅ x 2 + 0 ⋅ x 3 + 0 ⋅ x 4 = m ( 男 ) . 1 \cdot x_1 + 1 \cdot x_2 + 0 \cdot x_3 + 0 \cdot x_4 = \mathfrak{m}(男). 1⋅x1+1⋅x2+0⋅x3+0⋅x4=m(男).
五、后处理的目标
给定含噪声的列联表 x ~ \widetilde{\mathbf{x}} x 和真实的边缘分布 m ( B ) \mathfrak{m}(B) m(B),后处理的目标是找到一个修正后的表 x ‾ \overline{\mathbf{x}} x,使得:
- 满足所有边缘约束:对每个 b ∈ I B b \in \mathcal{I}_B b∈IB, ∑ a i x ‾ i = m ( b ) \sum a_i \overline{x}_i = \mathfrak{m}(b) ∑aixi=m(b)。
- 非负性: x ‾ i ≥ 0 \overline{x}_i \geq 0 xi≥0。
- 最小化误差: x ‾ \overline{\mathbf{x}} x 与 x ~ \widetilde{\mathbf{x}} x 尽可能接近(如最小化 ∥ x ‾ − x ~ ∥ 2 2 \|\overline{\mathbf{x}} - \widetilde{\mathbf{x}}\|_2^2 ∥x−x ∥22)。
六、总结
- 列联表:多维分类数据的频次表格,可向量化为 x ∈ N n \mathbf{x} \in \mathbb{N}^n x∈Nn。
- 边缘分布:通过投影和求和操作,提取部分属性的联合频次。
- 线性约束:每个边缘分布对应一个系数为 0/1 的线性方程,用于保证数据一致性。
- 应用:在差分隐私中,通过后处理修复噪声数据,使其满足原始数据的统计结构。
相关文章:
【差分隐私相关概念】约束下的列联表边缘分布计算方法
列联表及其边缘分布的详细解释 一、列联表的定义 列联表(Contingency Table) 是一种用于表示 多个分类变量联合分布 的表格。其核心是通过多维数组记录不同属性组合的频次。以下是关键点: 分类属性: 设有 k k k 个分类属性 A …...
解决IDEA中maven找不到依赖项的问题
直接去官网找到对应的依赖项jar包,并且下载到本地,然后安装到本地厂库中。 Maven官网:https://mvnrepository.com/ 一、使用mvn install:install-file命令 Maven提供了install:install-file插件,用于手动将jar包安装到本地仓库…...
pyside6的QGraphicsView体系,当鼠标位于不同的物体,显示不同的右键菜单
代码: # 设置样本图片的QGraphicsView模型 from PySide6.QtCore import Qt, QRectF, QObject from PySide6.QtGui import QPainter, QPen, QColor, QAction, QMouseEvent from PySide6.QtWidgets import QGraphicsView, QGraphicsScene, QGraphicsPixmapItem, QGra…...
Python自动化测试 之 DrissionPage 的下载、安装、基本使用详解
Python自动化测试 之 DrissionPage 使用详解 🏡前言:一、☀️DrissionPage的基本概述二、 🗺️环境安装2.1 ✅️️运行环境2.2 ✅️️一键安装 三、🗺️快速入门3.1 页面类🛰️ChromiumPage🛫 SessionPage&…...
Java替换jar包中class文件
在更新java应用版本的运维工作中,由于一些原因,开发没办法给到完整的jar包,这个时候,就可以只将修改后的某个Java类的class文件替换掉原来iar包中的class文件,重新启动服务即可: 1、将jar包和将要替换的cl…...
unix网络编程
unix网络编程 AI出来以后,软件不可能找到工作的,就算找到了也在走下坡路。再过几年,机器人发展起来,连流水线都找不到。人为什么整体不值钱,每个部位却很值钱。你说我初中辍学就去开直播结局会不会比现在好。 更新in…...
常考计算机操作系统面试习题(一下)
目录 操作系统基本类型 操作系统的功能 操作系统的主要任务 进程与线程 进程状态转变 内存管理 文件系统与文件管理 虚拟存储器 设备管理 磁盘调度 死锁 信号量机制 文件打开与管理 进程与线程的互斥与同步 进程同步 进程调度 文件分配磁盘块的方法 程序执行…...
2025_0321_生活记录
刚刚写完待会儿早上要汇报的文档,看了一眼时间,现在已经是凌晨2点多了。一直说要早睡,但是一直都没做到。。。算了,不苛求自己了。 昨天是春分,春分秋分,昼夜平分。不知不觉就到春天了,但房间里…...
三层网络 (服务器1 和 服务器2 在不同网段)
服务器1 和 服务器2 在不同网段,并且通过三层交换机实现通信 1. 网络拓扑 假设网络拓扑如下: 服务器1: mac0:IP 地址 192.168.1.10/24,网关 192.168.1.1 mac1:IP 地址 10.0.1.10/24,网关 10.0…...
AI Tokenization
AI Tokenization 人工智能分词初步了解 类似现在这个,一格子 一格子,拼接出来的,一行或者一句,像不像,我们人类思考的时候组装出来的话,并用嘴说出来了呢。...
关于大数据的基础知识(四)——大数据的意义与趋势
成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于大数据的基础知识(四&a…...
某视频的解密下载
下面讲一下怎么爬取视频,这个还是比小白的稍微有一点绕的 首先打开网址:aHR0cDovL3d3dy5wZWFydmlkZW8uY29tL3BvcHVsYXJfNA 首页 看一下: 有一个标题和一个href,href只是一个片段,待会肯定要拼接, 先找一…...
Day20-前端Web案例——部门管理
目录 部门管理1. 前后端分离开发2. 准备工作2.1 创建Vue项目2.2 安装依赖2.3 精简项目 3. 页面布局3.1 介绍3.2 整体布局3.3 左侧菜单 4. Vue Router4.1 介绍4.2 入门4.3 案例4.4 首页制作 5. 部门管理5.1部门列表5.1.1. 基本布局5.1.2 加载数据5.1.3 程序优化 5.2 新增部门5.3…...
从切图仔到鸿蒙开发01-文本样式
从切图仔到鸿蒙开发01-文本样式 本系列教程适合 HarmonyOS 初学者,为那些熟悉用 HTML 与 CSS 语法的 Web 前端开发者准备的。 本系列教程会将 HTML/CSS 代码片段替换为等价的 HarmonyOS/ArkUI 代码。 页面结构 HTML 与 ArkUI 在 Web 开发中,HTML 文档结…...
菱形虚拟继承的原理
一 :菱形继承的问题 普通的菱形继承存在数据冗余和二义性的问题 ,如下代码: class Person { public:string _name; //姓名 };class Student : public Person { protected:int _num; //学号 };class Teacher : public Person { protected:int…...
【数据结构】C语言实现树和森林的遍历
C语言实现树和森林的遍历 导读一、树的遍历二、森林的遍历2.1 为什么森林没有后序遍历?2.2 森林中存不存在层序遍历?三、C语言实现3.1 准备工作3.2 数据结构的选择3.3 树与森林的创建3.4 树与森林的遍历3.4.1 先根遍历3.4.2 后根遍历3.4.3 森林的遍历3.5 树与森林的销毁3.6 算…...
第四天 开始Unity Shader的学习之旅之Unity中的基础光照
Unity Shader的学习笔记 第四天 开始Unity Shader的学习之旅之Unity中的基础光照 文章目录 Unity Shader的学习笔记前言一、我们是如何看到这个世界的1. 光源2.吸收和散射3.着色 二、标准光照模型1. 自发光2. 高光反射① Phong模型② Blinn-Phong模型 3.漫反射4.环境光 总结 前…...
基于SpringBoot的“社区居民诊疗健康管理系统”的设计与实现(源码+数据库+文档+PPT)
基于SpringBoot的“社区居民诊疗健康管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统模块功能结构图 局部E-R图 系统首…...
React Native集成到现有原生Android应用
使用React Native(以下简称RN)从头开始制作一个新的应用会是一个非常好的选择。但如果只想给现有的原生应用中添加一两个视图或是业务流程,RN也同样不在话下。只需简单几步,就可以给原有应用加上新的基于RN的特性、画面和视图等。 一、核心概念 把 React Native 组件集成…...
Java-空链基础入门
经过调研和细致观察,我们发现空链对于初次接触或是对Stream和Optional不太熟悉的人来说,确实存在一定的上手难度,宛如开启了“地狱模式”。为了降低这一门槛,我们决定通过一系列由简入深的案例演示,来逐步引导大家掌握…...
【江协科技STM32】Unix时间戳BKP备份寄存器RTC实时时钟(学习笔记)
Unix时间戳 Unix 时间戳(Unix Timestamp)定义为从UTC/GMT的1970年1月1日0时0分0秒开始所经过的秒数,不考虑闰秒时间戳存储在一个秒计数器中,秒计数器为32位/64位的整型变量世界上所有时区的秒计数器相同,不同时区通过…...
PCDN网络设备
PCDN(Peer-to-Peer Content Delivery Network,点对点内容分发网络)是一种基于P2P技术的内容分发网络。它利用用户终端设备之间的直接数据传输来减少中心服务器的压力,并提高内容交付的速度和效率。 PCDN的工作原理 节点共享&…...
3.17-3.23 Web3 游戏周报:Pixudi 双榜领跑,The Forgotten Runiverse 登陆三大主机平台
回顾上周的区块链游戏概况,查看 Footprint Analytics 与 ABGA 最新发布的数据报告。 【3.17–3.23】Web3 游戏行业动态 Ronin 将与 Alpha Growth 等合作推出 1300 万美元增长计划,以向 DeFi 扩张Notcoin 开发工作室 Open Builders 宣布推出 Not Games …...
AppInventor2生成3位数的水仙花数
生成3位水仙花数(每位数字的立方之和刚好等于这个数字)的代码,如下: 来源:【生成Python】AppInventor2中文网已支持代码块转换Python源码! - App Inventor 2 中文网 - 清泛IT社区,为创新赋能&…...
【聚类算法解析系列02】经典聚类算法(上)——K-Means与层次聚类
【聚类算法解析系列02】经典聚类算法(上)——K-Means与层次聚类 引言:算法背后的认知革命 K-Means与层次聚类,这两个诞生于1960年代的算法,至今仍是工业界使用率最高的聚类工具。它们分别代表了两种根本性的世界观&am…...
shadcn如何给dialog增加关闭按钮和隐藏右上角关闭按钮
增加关闭按钮: <DialogFooter><DialogClose asChild><button className"rounded-sm bg-black/100 px-3 py-2 text-xs font-semibold text-white shadow-xs hover:bg-black/90" >Close</button></DialogClose> </DialogF…...
华为机试牛客刷题之HJ59 找出字符串中第一个只出现一次的字符
HJ59 找出字符串中第一个只出现一次的字符 描述 对于给定的字符串,找出第一个只出现一次的字符。如果不存在,则输出 −1。 输入描述: 在一行上输入一个长度为 1≦len(s)≦10^3 、仅由小写字母构成的字符串 s。 输出描述: 如果存…...
C# 中实现一个线程持续读取,另一个线程负责写入,且写入时读取线程暂停
实现思路 暂停信号:通过 ManualResetEventSlim 通知读取线程暂停。 暂停确认:读取线程收到暂停信号后,发送确认信号。 原子性控制:确保写入操作执行期间,读取线程处于完全暂停状态。 恢复机制:写入完成后…...
[Effective C++]条款22:将成员变量声明为private
. 在C中,将成员变量声明为private而不是public,主要是为了遵循面向对象编程(OOP)的封装原则。他有助于隐藏对象的内部实现细节,提供更好地控制,安全性和可维护性。 1、数据隐藏与封装 将成员变量声明为pr…...
心法利器[132] | 大模型系统性能优化trick
心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。 2023年新的文章合集已经发布,获取方式看这里:又添十万字-CS的陋室2023年文章合集来袭,更…...
