博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python-使用Magellan进行数据匹配总结
阅读量:6870 次
发布时间:2019-06-26

本文共 1895 字,大约阅读时间需要 6 分钟。

  参考:

 

    使用Magellan进行数据匹配过程如下:

    假设有两个数据源为A和B,

              A共有四列数据:(A_Column1,A_Column2,A_Column3,A_Column4)

    B共有五列数据: (B_Column1,B_Column2,B_Column3,B_Column4,B_Column5)

    假设A_Column1和B_Column1是相关的,而A_Column2和B_Column2相关的

 

    1、首先建立合并列表

 

      分别在A和B数据中建立一个混合列mixture

      在A中 mixture = A_Column1 + A_Column2 就是把 A_Column1 和 A_Column2两列的数据合并到mixture列里面,

      同理,在B中 mixture = B_Column1+ B_Column2

      

 

    2、寻找一个候选集

      这个过程就是使用重叠系数连接两个表,我们可以使用混合列创建所需的候选集(我们称之为C)。

      

      注意:这个过程中threshold这个参数代码这要C这个集合中要创建一列_sim_score ,表示相似度分数,如何经过匹配_sim_score 的数据小于0.65,那么就是不合格的,说白了就是相识度很小,

    threshold这个设置的过多大,导致可能C的集合很小,值越大代表数据相识度越大 ,threshold最大值是1,代表匹配数据完全一样,值越小代表数据相识度越小,如果所有数据的匹配结果都小于threshold的值,那么

    C就是空集合,因此这个值要根据选择的匹配列数进行设置。

 

    3、指定要素

      就是指定在py_entitymatching程序包中哪些列对应于各个数据帧中的要素

      

    

    4、拦截工具故障排除

      确保候选集足够松动,能够容纳并不十分接近的电影配对。如果不是这样,那么可能我们已经清除了可能潜在匹配的配对

      

 

    5、从候选集采样

      目标是从候选集中获取一个样本,并手动标记抽样候选者;也就是指定候选配对是否是正确的匹配。

      

      要在导出的labeled.csv文件中增加一个label列,根据_sim_score列的数据和实际数据情况,来人为的判断是否是正确的匹配,如果是则在label列中填入数值1,否则,填入数值0

      注意:这个label.csv数据集合实际上作为下面机器学习一个训练集,因此这个label列数据之间影响下面机器学习的效果。

      

     

     6、机器学习算法训练

      下面用了几种机器学习算法

      

        在应用任何机器学习方法之前,我们需要抽取一组功能。幸运地是,一旦我们指定两个数据集中的哪些列相互对应,py_entitymatching程序包就可以自动抽取一组功能。指定两个数据集的列之间的对应性,

      将启动以下代码片段。然后,它使用py_entitymatching程序包确定各列的类型。通过考虑(变量l_attr_typesr_attr_types中存储的)各个数据集中列的类型,并使用软件包推荐的编译器和类似功能,我们可以抽取一组

      用于抽取功能的说明。请注意,变量F并非所抽取功能的集合,相反,它会对说明编码以处理功能。

      

 

      考虑所需功能的集合F,现在我们可以计算训练数据的功能值,并找出我们数据中丢失数值的原因。在这种情况下,我们选择将丢失值替换为列的平均值。

      

      使用计算的功能,我们可以评估不同机器学习算法的性能,并为我们的匹配任务选择最佳的算法。

      

 

    7、评估匹配质量

 

      评估匹配质量非常重要。可以针对此目的使用训练集,并衡量随机森林预测匹配的质量。我们可以发现,我们获得最高精确性,并且能够重现测试集。

      

 

    8、使用训练的模型匹配数据集

      使用训练的模型对两个标记进行如下匹配

      

      请注意,匹配数据帧包含了很多存储数据集抽取功能的列。以下代码片段移除了所有非必要的列,并创建一个格式良好的拥有最终形成的整合数据集的数据帧。

 

      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

      

 

转载于:https://www.cnblogs.com/shaosks/p/7245680.html

你可能感兴趣的文章
Axure7.0汉化方法
查看>>
我的MYSQL学习心得(九)
查看>>
JavaScript高级程序设计学习笔记--DOM
查看>>
Python易学就会(五)turtle绘制椭圆与递归
查看>>
echarts map地图设置外边框或者阴影
查看>>
使用vue-cli脚手架+webpack搭建vue项目
查看>>
Docker - 03 编排容器 Docker Compose 指令速查表
查看>>
Mybatis基本映射--INSERT
查看>>
手把手教你理解卷积神经网络
查看>>
猴子都能看懂的《Git 分支管理》
查看>>
【面试算法】链表反转
查看>>
镭速(Raysync)文件传输高可用安装部署介绍!
查看>>
使用 Jaeger 完成服务间的链路追踪
查看>>
Java NIO使用及原理分析 (一)
查看>>
为什么企业不对 GPL 侵权采取法律行动
查看>>
《Spark大数据分析实战》——第1章Spark简介
查看>>
以黑客教主之名,TK 发现 Windows 史上最大漏洞
查看>>
《IPv6精髓(第2版)》——导读
查看>>
《Windows Server 2012 Hyper-V虚拟化管理实践》一1.2 Hyper-V安装前后的变化
查看>>
Proxmox VE 4.4 发布,新 Ceph 仪表盘上线
查看>>