Mindopt上新数据脱敏功能,方便外发数据

简介: V0.24.0版本的MindOpt优化求解器新增了数据脱敏功能,可以对输入模型文件进行数据脱敏。将优化问题中问题名、决策变量、约束条件名称这些和业务场景相关的数据进行脱敏变更,使得优化问题的数据仅保留看不出用途的数值信息,隐藏业务信息。方便外发数据去做技术可行性验证、方案咨询、测试等。

功能介绍

V0.24.0版本的MindOpt优化求解器新增了数据脱敏功能,可以对输入模型文件进行数据脱敏。将优化问题中问题名、决策变量、约束条件名称这些和业务场景相关的数据进行脱敏变更,使得优化问题的数据仅保留看不出用途的数值信息,隐藏业务信息。方便外发数据去做技术可行性验证、方案咨询、测试等。

数据脱敏可以称为数据的去隐私化,是对敏感数据进行修改或者转换的一种技术机制,在很大程度上能解决敏感数据直接在非可靠环境下使用的问题。比如在电商行业快递单上,会使用**号部分遮挡买家的个人信息,也能有效将数据脱敏,提供给外部使用。


优化建模文件中的主要敏感数据是业务的逻辑,比如优化问题名字、决策变量和约束条件名。业界的脱敏方案大致有这几种:无效化、随机值、数据替换、对称加密、平均值、偏移和取整。MindOpt求解器使用的是“数据替换”这一方案,顾名思义,数据替换就是设置一个虚拟值去替换真值。


如下表示意,脱敏前后的文件内容片段对比,脱敏前名称字符里面包含了业务逻辑,脱敏后信息都用固定的顺序数字来表示,删除业务逻辑,实现脱敏。

脱敏前

脱敏后

NAME AFIRO

ROWS

E ToTalR

E StaffR10

L WorkX05

L WorkX21

E WorkR12

E SkillR13

L SkillX17

L SkillX18

L SkillX19

L GenderX20

E GenderR19

E GenderR20

COLUMNS

CostX01 WorkX05 .301 R09 -1.

CostX02 SkillR13 -1.06 X05 1.

CostX03 SkillX18 -1. R09 1.

CostX04 GenderR20 -.4

NAME Prob0001 FREE

OBJSENSE

MIN

ROWS

N OBJROW

E R00000001

E R00000002

L R00000003

L R00000004

E R00000005

E R00000006

L R00000007

L R00000008

L R00000009

L R0000000A

E R0000000B

E R0000000C

COLUMNS

C000001 R00000003 0.301

C000002 R00000006 -1.06

C000003 R00000008 -1

C000004 R0000000C -0.4

使用方法

执行脱敏

MinOpt新增的脱敏功能是在命令行里面。  主要通过以下两个命令行参数调用:

  • sanitize :对模型文件中的敏感数据进行重命名脱敏。
  • undo_sanitize :对已脱敏后的模型文件进行反脱敏(恢复数据)。

在命令行 Terminal 或者 Notebook的Cell magic运行(增加感叹号!),可以看到接口说明。

用户可以根据文档指引下载本地运行版的安装包,安装到自己本机来运行数据脱敏。下载地址:https://help.aliyun.com/document_detail/298275.html

image.png


脱敏功能支持 .mps/.lp 以及对应的压缩文件(.bz2/.gz)的文件格式,我们可以用安装包examples中的模型文件afiro.mps作为例子,如下方式运行来实现脱敏。

mindopt <path/to/data>/afiro.mps --sanitize
#<path/to/data>为文件路径

比如云平台的Notebook中可以这样运行

!mindopt /home/jupyter/mindopt/0.24.0/examples/data/afiro.mps MaxTime=10800 SPX/MaxIterations=1000000000 --sanitize 


运行完成后,会输出结果的说明:

Reader started. File    : /home/jupyter/mindopt/0.24.0/examples/data/afiro.mps
Reader terminated. Time : 0.001s
ProbName sanitized.
Sanitized variables count   : 32
Sanitized constraints count : 27
File desensitized              : /home/jupyter/mindopt/0.24.0/examples/data/afiro_sanitized.mps
File Mapping                   : /home/jupyter/mindopt/0.24.0/examples/data/afiro_mapping.json

第1行:展示了读的是哪个文件

第6-7行:总结了模型有多少个变量,多少个约束。

第8-9行:脱敏完成,输出文件映射的地址,并在脱敏前文件的同级目录下生成脱敏后模型文件 afiro_sanitized.mps 和映射文件 afiro_mapping.json。

检查是否脱敏后数据

我们打开脱敏的优化问题文件 afiro_sanitized.mps,可以里面名称中的敏感信息是否已经被替换掉。命名规以R/C开头,十六进制整数递增就代表脱敏成功了,再检查没有其他问题就可以外发去测试了。

脱敏后的数据保留的数值还是原来的对应关系,不影响求解结果,比如我们用MindOpt运行脱敏后的文件:

mindopt afiro_sanitized.mps

运行后得到结果如下,与脱敏前运行结果一致。

image.png

反脱敏

脱敏时,生成的映射文件 afiro_mapping.json是用来后面恢复数据用的。此功能没有实际用途,主要是方便验证,请外发的时候不要发此映射文件。

这里我们打开映射文件 afiro_mapping.json查看一下映射关系,文件格式如下所示。如果脱敏前文件不包含模型名或模型名为空时,映射文件不展示 ProbName

image.png

这里我们可以把数据存在同一个目录,然后执行反脱敏命令:

!mindopt ./data/afiro_mapping.json --undo_sanitize

会得到如下输出示意:

./data/afiro_sanitized.mps
Reader started. File    : ./data/afiro_sanitized.mps
Reader terminated. Time : 0.000s
ProbName undo sensitized.
Undo sanitized variables count     : 32
Undo sanitized constraints count   : 27
File undo sanitized                : ./data/afiro_sanitized_sanitized.mps

运行后还原脱敏模型文件,生成afiro_sanitized_sanitized.mps文件。

运行afiro_sanitized_sanitized.mps文件结果与上文一致。

image.png


相关文章
|
2月前
如何用二维码高效收集信息?表单功能轻松实现
表单作为草料二维码的高级功能之一,可用于收集格式统一的数据。你可以通过组合姓名、图片、检查项等组件搭建出电子表单,关联到二维码中,扫码填写表单即可更快速、规范的收集数据。这篇文章为大家介绍下表单的制作教程。
|
10月前
|
前端开发 数据处理 数据安全/隐私保护
【项目数据优化一】敏感数据脱敏处理
【项目数据优化一】敏感数据脱敏处理
351 1
|
安全
【工具】分析邮箱信息工具emlAnalyzer
在国内我甚至找不到这个工具的中文介绍,可见我们对这方面的轻视,事实上,每年关于邮箱攻击的事件不计其数,因此,我们应该好好了解一番。
408 0
|
数据采集 JavaScript 应用服务中间件
网站流量日志埋点收集 --方案一-基本功能数据采集实现|学习笔记
快速学习网站流量日志埋点收集--方案一-基本功能数据采集实现
315 0
网站流量日志埋点收集 --方案一-基本功能数据采集实现|学习笔记
|
数据采集 分布式计算 监控
网站流量日志分析—数据入库—含义和 ETL 本质解释|学习笔记
快速学习网站流量日志分析—数据入库—含义和 ETL 本质解释
365 0
网站流量日志分析—数据入库—含义和 ETL 本质解释|学习笔记
|
前端开发 API
「前端经验总结」特定业务场景数据收集,帮助解决用户具体操作无法确定的问题
前端开发中,有些业务场景下的操作,再测试过程中可能没有遇到,但是用户反馈了该问题,如何进行问题复现是我们时不时会遇到的问题。今天分享一下如何进行特定业务场景数据收集,来帮助解决用户具体操作无法确定的问题。
202 1
|
分布式计算 小程序 云计算
从多角度分析,为什么阿里云认证那么有用?
现在想考阿里云认证的人越来越多了,只要获得了这个证书,也就相当于获得了升职加薪的好帮手,为什么这个证书有这么大的作用呢,本文从多角度分析一下。
135 0
从多角度分析,为什么阿里云认证那么有用?
|
Oracle 关系型数据库 Shell
[自制工具]批量后台更新统计信息
Oracle数据库有时需要批量收集数据库的统计信息,如在大量数据迁移或大量数据更新以后,但是收集的时间可能会较长,为了避免网络中断等意外情况可能引起的麻烦,今天调试了这个小脚本,可以分用户批量执行,同时记录执行时间等日志信息,比较实用。
175 0
|
存储 数据采集 运维
阿里云SLS数据加工实现个人敏感信息脱敏实践
为保证数据安全性,通常对日志里的敏感信息做脱敏处理。本文档介绍基于阿里云日志服务的含个人敏感信息脱敏的解决方案。
|
开发者 Android开发 BI
用统计工具来判断渠道的用户质量 直观又便捷!
百度搜索“应用推广联盟”有超过搜索七千万的结果。渠道数量过多,鱼龙混杂,想要挑选出合适的优质渠道,却不容易。甚至有开发者曾经吐槽“数万元推广费用,获得上万激活量,只有7个真实用户!” 在笔者看来,一个优秀的推广渠道不仅要用稳定的新增用户和活跃用户,还在在数据上体现出用户真实的行为数据来供我们不断优化产品,想分享一些平时工作中总结的通过统计工具评估渠道质量的方法。