数据挖掘之_后处理

 常常听说数据预处理,后处理相对少见,本篇来说说何时需要后处理,以及后处理的一些简单方法。

 数据挖掘的流程一般是:输入数据->特征工程->模型训练/预测->导出结果。后处理是将模型预测的结果进一步处理后,再导出。

 先看一个例子:比如我们网购小包装的咖啡,一般的购买习惯是,在少量购买时,需要多少买多少:一包,两包,三包;买的较多的时候,可能是六包,八包,十包;买得更多的情况下,可能是十包,十五包,二十包;再往上是三十包,四十包,五十包,一百包……以此类推。

 也就是说:数量大的时候,我们可能更倾向于取整,双数,五的倍数,十的倍数等等。如果不是针对人数买的话,一般不会出现7, 19, 113这样的购买数量。如下图示意:横轴代表购买数量,纵轴代表该数量出现的次数。蓝色为实际购买数据,橙色为预测数据。注意本图是结果y的分布图。

 想在模型和预测处理中优化比较困难,因为对于测试集,并不知道预测的结果是多少,于是也无法将它是否靠近2,5,10的倍数作为特征代入模型。
此时可使用后处理,让橙线靠近蓝线,最简单的方法是手写判断语句,例如:如果大于12.5则预测为15等等。但相对比较麻烦,很多边界值需要手动调节,换了数据之后,还需要重新调节。

 我想到一种自动处理的方法,还算简单有效,在此分享一下。假设我们预测出购买量是13.5红色点(因为是回归,有可能是非整数)。一般情况下我们会四取五入,得到结果14。下面来看看怎么用算法优化。

 先找到它前后的两个点13和14,确定它在图中的位置,即红色的点,然后再从该点到它前后的距离N以内的高点连线(黄色区域限定距离),取其中斜率最大的线所对应的高点,这样兼顾了高度和距离。用此方法,我们将12.5取15。

 有时候,我们还要考虑给红点左右的线段分配不同的权重,比如说:如果一共37个人,人手一个,可能会考虑破损,意外,留出余量买到40个,而不会故意少买成35个,导致不够分。在此情况下,只要比较斜率时给右侧线多乘一些权重即可。

 还有一种常见情况:有时候做回归,预测不出很大或很少值,所有数值都集中在中部区域,比如之前糖尿病预测的初赛,大家都使用GBDT类模型,很多人都预测不出血糖大于10的,几乎所有结果都在5-8之间。这是由于这种迭代模型,追求的是整体误差最小化,为了保证绝大多数预测正确,就牺牲了人少但血糖高的部分。但实际场景中,如果不能预测高血糖,模型就没用了。后来也有人用了一些后处理方法,即把偏离正常范围值的乘一个系数,手动拉宽预测范围。其实也可以使用类似上述方法的思路解决。

 在二分类问题中,一般能得到的是0-1之间的概率值,此时把界限从0.5上移或者下移即可实现后处理。方法很多,这里只是抛砖引玉吧,如果各位有更好的方法,欢迎给我留言。

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
决策树是一种常用的数据挖掘算法,在Python中也有很多用于实现决策树的库。决策树以树状结构表示,通过一系列特征的判断来做出决策。 在Python中,可以使用sklearn库中的DecisionTreeClassifier类来实现决策树算法。首先,我们需要准备带有标签的数据集,该数据集应包含多个特征和对应的类别。然后,我们可以使用fit()方法来创建决策树模型。 决策树的建立是一个递归的过程,每次选择一个最佳特征进行切分。在sklearn中,决策树的切分准则可以选择“基尼系数”或“信息增益”。我们可以使用criterion参数来选择切分准则。 决策树的建立完成后,我们就可以使用该模型来对新的样本进行分类。我们可以使用predict()方法来预测样本所属的类别。 决策树算法的优点是易于理解和解释,可以处理各种类型的数据,包括离散和连续型。同时,决策树可以很好地处理大规模数据集,并且对异常值和缺失值具有较好的容忍度。 然而,决策树算法也有一些缺点。决策树容易过拟合,特别是在处理高维度的数据时。为了解决过拟合问题,可以使用剪枝方法或随机森林等集成学习算法。 总而言之,决策树是一种常用的数据挖掘算法,可以使用Python中的sklearn库进行实现。通过决策树算法,我们可以从数据中提取出规则和模式,对新的数据进行分类和预测。决策树算法在实际应用中具有很高的实用性和广泛的适用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值