Py学习  »  机器学习算法

【量化历史研究】机器学习和家族历史相结合,实现历史数据的匹配

量化历史研究 • 4 年前 • 65 次点击  

本文为“量化历史研究”第 409篇推送


(图片来源于网络)


对当代社会科学中许多重要问题的实证分析,往往涉及时间的维度。例如,为了衡量社会经济地位的代际传递,我们需要能够将父母与他或她的成年子女联系起来的数据;而要估计童年环境的长期影响,我们通常需要同时观察一个人作为儿童和成人的情况。令人兴奋的是,越来越多普查性的历史数据集被公开(如美国的1900-1920年人口普查的全量数据),从而为社会科学家探索历史问题提供了极为有利的条件。


然而,这些早期数据往往没有调查对象的唯一识别码。因此,即使研究者拿到了完整的个体数据,也难以将其在不同的数据集中匹配起来,以构造面板数据进行分析。为了解决这个难题,来自美国国家经济研究所的Joseph Price等人提出了一种新的机器学习算法,帮助研究者以较高的准确度,匹配不同普查数据集中的巨量个案,从而为构造历史面板数据提供了新的可能性。








研究者采用了有监督的机器学习实现了高质量的匹配。传统上,这种算法有赖于人工编码员的艰辛劳动。它需要构造庞大的人工标注“训练集”,成本高昂。然而,研究者巧妙利用了一个在线家谱平台——Family Search上“现成”的数据。一方面,Family Search招募志愿者,将美国1900-1920年十年一次的人口普查的100%样本进行了全量数字化,包括每个人的姓名、出生年份、出生地、性别、种族和居住地,以及他们父亲和母亲的出生地信息。


另一方面,Family Search允许任何人建立自己的家谱,并可以让用户将自己家庭的信息和前述的人口普查信息相链接。这样,研究者就“不费吹灰之力”获得了一个高质量的人工标注集,因为他们预计,这些家谱用户对自己的家庭有着更为准确的理解,也有准确匹配的兴趣和动机。在对这些用户构造的匹配进行了抽样检验后,研究者确认了这个匹配集有着相当高的准确度(超过94%),并提供了1230万对人工匹配。

图 1 Family Search 上的个人数据实例








进一步,研究者将这1230万对正确匹配作为训练集,来预测剩下的几千万条数据之间的匹配。在此之前,他们对训练集进行了一系列预处理操作,如消歧(将名称缩写和昵称标准化)、选择分块(Blocking)和匹配特征,以及比较和选择机器学习算法。最终,研究者采用XGBoost算法执行了预测,并配合使用其他方法提高预测的精度(流程如图2所示)。

图 2  自动匹配实现流程图


机器学习的匹配结果实现了1900年、1910年和1920年美国人口普查全量数据之间的个体的较高精度的匹配。其中,1900年和1910年的匹配度为68%、1910年到1920年为71%,而假阳率为12%,达到了目前记录匹配算法最高的精度和效率。








家族史研究与记录自动匹配方法的结合,有可能提高社会科学研究人员,特别是经济史学家可获得的数据的质量和数量,使得一些看似不可用的数据得以“变废为宝”。Joseph等人提出利用在线家谱平台的人工标记数据,通过机器学习实现记录自动匹配的方法,有着一定的参考价值。随着在线家谱平台在世界各地的广泛使用,研究人员有可能利用机器学习方法,将其他国家和地区的记录匹配起来。


文献来源: Joseph Price, Kasey Buckles, Jacob Van Leeuwen, Isaac Riley, 2019, Combining Family History and Machine Learning to Link Historical Records, NBER Working Paper No. 26227.


原文链接:请点击左下方【阅读原文


“量化历史研究”公众号由陈志武(香港大学冯氏基金讲席教授、原耶鲁大学教授)和龙登高(清华大学教授)及其团队——林展(中国人民大学)、熊金武(中国政法大学)、何石军(武汉大学)、黄英伟(中国社会科学院)、彭雪梅(中山大学)等人负责。向学界和业界朋友,定期推送量化历史研究经典、前沿文献。同时作为“量化历史讲习班”信息交流平台。喜欢我们的朋友请搜寻公众号:QuantitativeHistory,或扫描下面二维码关注。

我们也诚邀八方学人发送电邮建言献策。邮箱: lianghualishi@sina.com。


轮值主编:林  展        责任编辑:彭雪梅

点击“阅读原文”查看英文原文

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/57314
 
65 次点击