算法笔记(17)数据表达及Python代码实现

67 篇文章 0 订阅
49 篇文章 3 订阅

本节讲述数据表达方法:(1)使用哑变量转化类型特征(2)对数据进行装箱处理

原始数据

使用哑变量转化类型特征

哑变量:用来把某些类型变量转化为二值变量的方法。
下面使用get_dummies来将类型特征转化为只有0和1的二值数值特征。默认情况下是不会对数值特征进行转换的。

fruits = pd.DataFrame({'数值特征':[5,6,7,8,9],
                   '类型特征':['西瓜','香蕉','桔子','苹果','葡萄']})
fruits_dum = pd.get_dummies(fruits)
display(fruits_dum)

经过get_dummies转化的水果数据集

使用get_dummies对数值特征进行转换

fruits['数值特征'] = fruits['数值特征'].astype(str)
pd.get_dummies(fruits, columns=['数值特征'])

 get_dummies转换数值特征的结果

首先用.astype(str)指定了“数值特征”这一列是字符串类型的数据,然后在get_dummies中指定columns参数为“数值特征”这一列,这样get_dummies就会只转化数值特征了。

对数据进行装箱处理

利用one-hot编码来表达已经装箱的数据
one-hot编码优点:将离散型特征使用one-hot编码,确实会让特征之间的距离计算更加合理。
下面分别用MLP算法和KNN算法对数据集进行回归分析
Python代码实现:

new_line = onehot.transform(np.digitize(line,bins=bins))

new_mlpr = MLPRegressor().fit(X_in_bin, y)
new_knr = KNeighborsRegressor().fit(X_in_bin,y)

plt.plot(line, new_mlpr.predict(new_line),label='New MLP')
plt.plot(line, new_knr.predict(new_line),label='New KNN')

plt.plot(X,y,'o',c='r')
plt.legend(loc='best')
plt.show()

 特征装箱之前的MLP回归和KNN回归

 特征装箱之后的MLP回归和KNN回归

结果分析:MLP的回归模型变得更复杂,KNN模型变得更简单。对样本特征进行装箱的一个好处:它可以纠正模型过拟合或者欠拟合的问题。尤其是当针对大规模高维度的数据集使用线性模型的时候,装箱处理可以大幅提高线性模型的预测准确率。
注意:对于样本数据进行装箱的操作对于基于决策树的算法(如随机森林、梯度上升决策树,当然也包括决策树本身)没有太多的作用,因为这类算法本身就是不停在拆分样本的特征数据,所以不需要再使用装箱操作。

想要完整代码的朋友,可toutiao号搜索“编程研究坊”关注后s信我,回复“算法笔记17“获取

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程研究坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值