请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于 字符串特征 数值化?

bobo,假设一个特征有'Mr','Miss','Mrs'这3个字符串值,如果我想对这个特征数值化输入给机器:那有两种方案  

①对这三个字符串分别转化成 数字1,2,3

②建立新的三个特征,比如'Title_Mr'对于‘Mr’为1,其它两个为0;然后'Title_Mrs','Title_Miss'以同样的方式;

我想问的是,这两种转化的方式有区别吗?或者对结果有影响吗?


正在回答 回答被采纳积分+3

插入代码

1回答

liuyubobobo 2018-06-27 17:20:02

有区别。第二种更加合理。


这是因为对于第一种方案,隐含了一个在现实中并没有的顺序:1 < 2 < 3,当算法把这个特征当做数字看待的时候,会考虑到这个顺序的关系。但是现实中,Mr, Miss和Mrs这三个类别,是没有这种顺序关系的,所以第二种方案更加合理。


实际上,第二种方案本身,是在特征处理领域,在处理类别特征(Category Feature)时,非常常用的一种方式,称为“One Hot Encoding”。可以在网上搜索一下这个关键词,其中的原理非常简单,就是你说的第二种方案:)在机器学习领域,有很多看起来高大上的概念,其实并不神秘,相信学习这个课程的过程中,你已经遇到很多这种情况了:)


同时,在sklearn中也有相应的类,可以直接进行One Hot Encoding。有兴趣可以在互联网上搜索一下,简单自学一下:)sklearn中的OneHotEncoder文档如下:http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html


加油!:)

3 回复 有任何疑惑可以回复我~
  • 提问者 慕先生6474118 #1
    ok,非常感谢bobo老师的解惑~
    回复 有任何疑惑可以回复我~ 2018-06-27 17:28:54
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号