资讯专栏INFORMATION COLUMN

0x07 数据民工,一致性洗车

timger / 2487人阅读

摘要:千万不要以为数据分析或者机器学习只是单纯的统计和数学模型,不懂业务的机器学习工程师不是一个好的产品经理。但人不一样,这才是数据工程师和机器学习工程师最核心的价值。

摘要:数据科学家是二十一世纪最性感的的职业。面临充斥着脏乱差的数据,处理数据一致性问题是其中一项重要任务。人的强项在于智能,却不善于处理重复且枯燥无味的事情。机器不具有智能,却善于处理重复且简单的事情。

01 性感还是闷骚
《哈佛商业评论》说:数据科学家是二十一世纪最性感的的职业。

理想很丰骚,现实很闷骚。之所以闷骚,是因为首先得把自己闷起来,闷过了最枯燥的阶段,你就变明骚了,才性感;闷不过,你就只有离骚了。

想做数据科学家,推荐一篇文章:《为什么“高大上”的算法工程师变成了数据民工?》,从中了解数据民工的的枯燥。看完再以45度角仰望星空10分钟,然后,再大声说出你的理想。

数据科学中,并非都会得出啤酒与尿布的有趣结论,也并非都有漂亮的2D或者3D的图形展示。反而会包含很多枯燥无趣的数据处理,但这却是必经这路。而且,数据处理与清洗会一直伴随你的职业生涯。

现今很多数据都会通过爬虫来获取,最大的数据王国Google也是抓取各家的网站内容。各家网站本身的数据就参差不齐,况且在处理过程中,还会因为解析、存储、业务理解等带来误差。

不同于通常的数据分析,要求产出业务相关的报表。面临充斥着脏乱差的数据,处理数据一致性问题便是其中的首要任务。

02 属性抽取与校验
以二手车抓取的数据为例,我们的目标是清洗爬虫获取的二手车数据,也就是标题中的“洗车”的含义。各家网站的款型描述是多带带的,同时还会多带带列出:排量、年款、行驶里程、手自动变速器等字段。比如款型描述为:2012款 3.0 自动 旗舰版,多带带的字段还分别列出:排量:3.0,年款:2002款,手自动:自动,这里面没有包括行驶的里程。

如果我们分开抓取款型描述、排量、年款、手自动字段下来,即可进行一致性检查。从款型描述中抽取出相应的字段,再与多带带的字段进行对比。如果发现不一致,刚肯定有个地方出错了。可能是原始网站上数据出错,也可能是爬虫的解析、存储过程中出现的问题。

这个事情,说起来非常简单,但在实际的环境中,出现问题的数据还真不少,还也常常被忽略。通常采取的抽取规则也很简单,一个简单的正则便可以将需要的属性从详细描述中抽取出来。

一般来说,只要一个属性出现在两个地方,就应该要校验他们的一致性。

除了对多个地方的属性进行一致性校验外,还需要对属性本身的取值范围进行校验。比如:汽车排量大于9通常不合理,如果你看到一个排量属性为0.3或者11.8,那么请校验数据。如果排量为0.0, 只有电动车或者数据出错。还有,上牌时间大于2015年或者为1915年;开了三年的车,行驶里程1千5百公里(超级豪车除外);或者开了三年的车,最后只卖新车指导价的5%,这些数据,通常都需要舍弃或者修正。

从上面一些简单的知识可以看出,数据分析是需要相关的领域知识,甚至有些是常识。千万不要以为数据分析或者机器学习只是单纯的统计和数学模型,不懂业务的机器学习工程师不是一个好的产品经理。

03 机器与人工相结合
假设从各种第三方网站抓取的二手车款型描述差异比较大,我们的目标是将其建立对应的映射关系,映射到我们已经建立的标准款型中去。传统的方式是找几个对二手车熟悉的人,手工建立映射关系。但当数据量越来越多的时候,而且各种描述也越来越不规范的时候,需要的人力是比较大的,况且,人还会犯错,一个眼花就会弄错匹配关系。

可以通过一些简单的算法,来完成二八理论中的那八成,甚至我们可以通过程序来校验人工的结果是否有错误。以《0x03 近朱者赤,相亲knn》中提到的KNN算法,便可以通过人工已经匹配的结果,来进行基于案例的学习,学习人工的经验。

比如,在某一个匹配关系中,人工将“1.0L A/MT 基础型”匹配到标准款型库里面的“1.0 手自一体 基本型”上去了,我们便可以用程序来学习他这种匹配关系,基于已经成功匹配的案例,用简单的算法,来学习人工的经验智慧,这便是机器学习算法带给我们成果。

人的强项在于智能,却不善于处理重复且枯燥无味的事情,并且容易犯错。机器不具有智能,却善于处理重复且简单的事情。用人的智能去处理最困难的20%的问题,而把那相对简单的80%的问题交给程序。

我们还可以通过机器学习来识别人工匹配的错误情况,甚至能分析出数据库里面出现的一些问题,比如数据重复问题。

04 数据验证环节
通过简单的算法进行案例学习,假定人工完成了两条款型的匹配,第一条为:“2.0 标准型 自动” 匹配到标准库为"2.0L 自动 标准型“,另外一条:“2.0L 自动标准型“匹配到了”2.0L 自动 导航型”。那么其中问题就来了,我们程序通过处理后,发现第一条与第二条数据实际上是一样的,可是匹配到标准库的时候,却是两个不一样的结果,那么肯定其中一条映射关系是有问题的。

上面是一个比较复杂的“一对多“问题,因为在判断两条数据不一样的时候,还使用了对数据进行处理。经常还会遇到,就是两条完全一样的款型描述,还是会有匹配到两个不同的标准款型的情况发生,这便是我们前面说的,机器学习用来辅助校验人工匹配的成果了。

还有一种情况,假设上面两条数据,第一条匹配到”2.0L 自动 标准版“,第二条匹配到”2.0L 自动 标准导航版“,通过我们参考其它网上的标准库发现,两个款型描述其实是一样的。那么问题便出在我们自身的标准库上了,我们标准库里面有重复的数据。人工在不同的情况下都是匹配对的,只是他们没有对比分析,所以没有发现是自身的数据重复导致的。

上面情况是:相同(或处理后相同)的数据,映射到不同的结果,是典型的”一对多“问题,当然还有”多对一“的情况,即多个不同的数据,映射到相同的结果上面了。

比如两条数据分别为:"1.8L 标准型 自动"和“1.8T 自动 标准型,都匹配到了“1.8L 自动 标准型“。不仔细的话,估计很难发现,两条描述中,一条是L(自然吸气),另外一条是T(涡轮增压),但他们都匹配到“1.8L 自动 标准型“,因此肯定其中有一条映射错了。

这便是多对一的情况。多对一的想法依然可能检查数据关系的一致性。

05 数据应用
从上面可以看出,数据本身的逻辑一致性,和数据映射关系的一致性,会影响到我们最终数据的质量。尤其是当你用这些数据来做一些和二手车估值相关的数据运算的时候,任何一条逻辑出错或者映射出错的数据,都有可能会影响最终的估估值模型。

假定从第三方网站抓取的数据中,含有新车指导价或者4S店最低报价,也可以通过上面的方面,对这些价格进行一次校验,取出最合理的数据。具体的思想上面都已经有了,只是如何应用的问题,有兴趣的可以自己尝试。

机器没有智能,无法理解数据,尤其是逻辑或者领域相关的知识。但人不一样,这才是数据工程师和机器学习工程师最核心的价值。有了算法思想,很多地方即使只使用简单SQL也能发挥出比较大的威力。

不要放过你遇到的任何小问题,任何的一处小问题,背后都可能隐藏着一系列的错误,或者甚至蕴含着一些你还不知道的知识。

用易经中坤卦的初六爻的爻词来理解:履霜,坚冰至。脚上踩到霜了,便要想到,后面很有可能会有坚冰在等你。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18102.html

相关文章

  • 一根烟的时间带你了解,程序员被称为2021新时代农民工如何改变外界的看法...

    摘要:新生代农民工就业薪资,程序员最高在调查样本中,从事信息传输软件和信息技术服务业的新生代农民工比例为,是所有行业中增幅最大的一个。调查样本中,新生代农民工月均收入元,比上年增加元,增长。 ...

    LdhAndroid 评论0 收藏0
  • ❤️❤️新生代农民工爆肝8万字,整理Python编程从入门到实践(建议收藏)已码:6万字❤️❤️

    人生苦短,我用Python 开发环境搭建安装 Python验证是否安装成功安装Pycharm配置pycharm 编码规范基本语法规则保留字单行注释多行注释行与缩进多行语句数据类型空行等待用户输入print输出 运算符算术运算符逻辑运算符成员运算符身份运算符运算符优先级 字符串访问字符串中的值字符串更新合并连接字符串删除空白startswith()方法endswith()方法字符串格式化...

    wthee 评论0 收藏0
  • 14个Linux系统安全小妙招,总有一招用的上!

    摘要:大多数使用者都会认为默认是安全的,有时候这种说法也的确是一个存在争议的话题。对于系统管理员,让产品的系统更安全,免于骇客和黑客的攻击,一直是一项挑战。保证系统包含了最新版本的补丁安全修复和可用内核。 对于互联网IT从业人员来说,越来越多的工作会逐渐转移到Linux系统之上,这一点,无论是开发、运维、测试都应该是深有体会。曾有技术调查网站W3Techs于2018年11月就发布一个调查报告...

    joy968 评论0 收藏0
  • PyTips 0x07 - Python 字符串

    摘要:项目地址所有用过的人应该都看过下面两行错误信息这就是界的锟斤拷今天和接下来几期的内容将主要关注中的字符串字节及两者之间的相互转换。 项目地址:https://git.io/pytips 所有用过 Python (2&3)的人应该都看过下面两行错误信息: UnicodeEncodeError: ascii codec cant encode characters in position...

    go4it 评论0 收藏0
  • 公共云如何推动数字化转型:八个现实的例子

    摘要:公共云已成为数字化转型的战略工具。表示,该应用程序托管在的公共云中,是公司数字化转型工作的一部分,旨在使公司从竞争对手中脱颖而出。公共云已成为数字化转型的战略工具。IT领导者就如何迁移到公共云服务以推动创新,灵活性和收入增长提出了一些建议。公共云服务正在成为首席信息官的战略武器。公共云不仅仅是停运数据中心的一种方式,它还使首席信息官能够专注于旨在提高利润的战略项目。无论是构建移动应用程序还是...

    Mertens 评论0 收藏0

发表评论

0条评论

阅读需要支付1元查看
<