脏数据的影响力
一般情况下,我们都会将机器学习的模型训练分成5大步骤(预处理,特征提取,特征转换,模型训练和评估,模型服务),其中的预处理也是重中之重,在预处理阶段,有一个常用的操作叫做脏数据的过滤,有的是非常不完整的数据,有的干脆就是错误的数据(如年龄大小为:200等),有的是很没有代表性的数据(数据不均匀等问题)。
简而言之,在机器学习中,脏数据对机器学习模型的影响很大,用恰当的方法尽可能的去除脏数据,提高数据的质量,是优化机器学习模型的有效方法之一。
为了更好的理解脏数据对机器学习模型的“危害”影响。以下提供一个辅助理解的小故事,通过这个小故事,能或多或少的深刻理解“脏数据”是优化机器学习模型的关键方法之一。
故事:岳飞之死-脏数据是祸因之一
岳飞之死:宋金两国战事稍稍停息,始终不信任武将的宋高宗就开始密谋处置武将。宋高宗不仅夺了张俊、韩世忠和岳飞的兵权,而且还要杀害他们。但是,张俊、韩世忠深知上意,所以他们俩就巧妙脱身了,而岳飞却没能幸免。起初岳飞以为自己辞去官职、退出朝廷就会相安无事,但是没想到秦桧等人合伙陷害忠良。他们编造了三条罪证,诬陷岳飞谋反,并将岳飞打入死牢,严刑逼供,最后惨死于风波亭。(摘自百度百科,来源百家讲坛)
从机器学习之数据预处理角度来看这个故事:
首先,人作为一个生命体,存在的大部分时间里,都处在一个学习的状态中。有时是主动学习;有时是被动学习;有时是有意识的学习;甚至有时是无意识的学习。以宋高宗为例,可以将宋高宗视作一个机器学习模型,这个机器学习模型做出了最后杀死岳飞的决策。
我们先不管正义与邪恶,也无论奸臣与忠良,就分析行为特征属性的本身而言,杀死岳飞的决策是由宋高宗这个模型做出的,输入是什么?包括秦桧在内的言论,秦桧的言论在此时是模型输入的一个参数值,秦桧的职位是宰相,可谓一人之下,万人之上,他进谏的言论权重很高,是让宋高宗这个模型做出杀死岳飞这个决策的主要特征值。
秦桧进谏的言论的背后隐藏着宋高宗的“上意”,也正是宋高宗多疑的“上意”,使得宋高宗在听得正合他意的“借口”之后,杀死了岳飞。那么,从很大程度上来说,是宋高宗这个机器学习模型学到的“多疑”的特征在作怪。而如果视秦桧的谏言之权重为0.2,那么宋高宗的多疑之权重可以说是0.7。原来,宋高宗的多疑才是决定杀死岳飞更为本质且直接的原因。
我们再来想想,宋高宗这个机器学习模型的训练数据有哪些?是否是这些训练数据中存在的脏数据使得宋高宗多疑特征的权重过高呢?
(1)赵匡胤在“陈桥兵变”中被拥立为帝。大军回京后,恭帝被迫禅位,赵匡胤登基,改元建隆,国号“宋”,史称“宋朝”、“北宋”。
注意:在陈桥兵变中,赵匡胤是被拥立为帝的,那么岳飞同样身为武将,同样战功显赫,同样都受到大军的拥戴,而另一个“陈桥兵变”的概率是否较大。如果岳飞没有被陷害,且一生忠良,“陈桥兵变”即为脏数据。
(2)大业十三年(617年)农历七月,李渊率军三万誓师,以“废昏立明,拥立代王,匡复隋室”的名义正式起兵直趋关中。
十一月十三日,李渊宣布遥尊隋炀帝为太上皇,拥立其孙代王杨侑为帝,改元义宁,是为隋恭帝。恭帝进封李渊为唐王、大丞相、尚书令,以李建成为唐王世子;李世民为京兆尹,改封秦国公;封李元吉为齐国公。李氏父子完全控制了关中局势。
义宁二年(618年),李世民徙封赵国公。同年农历三月,隋炀帝在江都被禁军将领兵变杀死。同年农历五月,隋恭帝被迫禅位于李渊,李渊即皇帝位于长安,国号唐,建元武德,定都长安,是为唐高祖。李渊以李世民为尚书令。不久,又立李建成为皇太子,封李世民为秦王,李元吉为齐王。(来源于百度百科)
(3)郭从谦叛乱,率部攻入兴教门,李存勖死于绛霄殿,又有伶人将乐器覆于其尸身之上,纵火焚尸。好一个戏子伶人,共富贵尚可,同患难又有几人。李存勖对于这一点显然是拎不清,过分沉湎已是不该,还将伶人摆于庙堂之上,插手家国大事之中,岂不是荒唐可笑。(取摘自鱼羊秘史)
分析
陈桥兵变,隋唐换代,李存勖死于伶人之手倒还时间久远,五代十国时期,朱温等的叛乱对宋高宗的影响也许也并不大,但是宋高宗的哥哥,父亲,以及自己的皇位来源过程等亲身的体验等,使得宋高宗这个机器学习模型被训练得极其多疑,极其胆小。综合各个方面的训练数据,宋高宗最终输出了杀死岳飞的决策。
如果要优化宋高宗的机器学习模型,使其做出的决策更加向任用贤能的标准靠近,除了提升宋高宗的学习能力(思考深度|计算能力)外,在宋高宗接受的教育数据中,尽可能的少接触使宋高宗胆小,多疑的案例,多提供唐太宗任用贤能等素材。可是,在那个动乱的年代,又谈何容易呢?
总结
因此,总结:比不接受教育更可怕的是接受不适当的教育;比不读书更可怕的是读不恰当的书。机器学习中,数据预处理的作用是做好机器读什么样的书的选择,尽可能让机器从恰当的书中学习。脏数据的影响力便是让机器学会干坏事,至少是影响机器做好事的能力。
网友评论