机器学习入门之机器学习-数据预处理(Python实现)
小标 2018-11-28 来源 : 阅读 1471 评论 0

摘要:本文主要向大家介绍了机器学习入门之机器学习-数据预处理(Python实现),通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文主要向大家介绍了机器学习入门之机器学习-数据预处理(Python实现),通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

机器学习在训练模型前,需要将特征进行预处理使其规范化,易于,本文主要讲几种常见的数据预处理方式;

标准化(z-Score)

公式为(X-mean)/std,将特征转化为均值为0,方差为1的数据;

可以用`sklearn.prepocessing.scale()``函数和sklearn.proprocessing.StandardScaler()类实现,使用StandardScaler()可以使测试集合训练集使用相同的参数进行转换

最小最大规范化

通过(x-min)/(max-min)将数据转化到[0-1]之间,通过sklearn.proprocessing.MinMaxScaler()转化

归一化

基于参数或者距离的模型都要进行特征归一化;通过L1 norm或L2norm将值映射到[0-1]之间,使用sklearn.proprocessing.normalize(x, norm=' ')转化,如果norm选L2,则特征值的平方和加起来等于1,选L1,是特征值的绝对值之和等于1;

概率模型(例如决策树)不需要归一化,因为他们不关心变量的值,只是关心变量分布和变量之间的条件概率;

二值化

给定阈值,将特征转化为0或1,使用sklearn.preprocessing.Binarizer(threshold= )进行转化;

标签二值化

将标称型数值转化为0、1...等数值型,输入为1-D array,可以对字符串进行编码,可以用sklearn.preprocessing.Binarizer()进行转化,作用等于labelEncoder之后OneHotEncoder,但因为只接受一维输入,只能一次对一个特征进行转化;

标签编码(定量特征)

对不连续的数值或文本进行编号,转化成连续的数值型变量,输入为1-D array,使用sklearn.preprocessing.LabelEncoder进行转化,


类别特征编码(定性特征)

对类别特征进行one-hot编码,特征就多少个值就新增多少个维度来表示;使用sklearn.preprocessing.OneHotEncoder()进行转换,它接收2-D array的输入,不能直接对字符串进行转化,如果是字符串类型的话,需要经过LabelEncoder()转化为数值型,再经过OneHotEncoder()进行独热编码;

也可以使用pandas.get_dummies() 进行转化,它可以接受字符串类型的输入,转化后比OneHotEncoder少一维度;但是get_dummies()因为没有transform函数,所以当测试集中出现测试集中未出现的特征值会报错;

但是当类别特征很多时,独热编码会使特征空间变得非常大,这时可以结合PCA进行降维;

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved