【KNIME经验】通过数据分箱标识其所属范围

KNIME相关视频教程,请移步B站,搜索“星汉长空”,多谢支持!

背景:对于连续性的数值变量,比如学生成绩,往往需要进行等级评定,优良中差。对数值型数据进行标签化、等级化,确定其所属的范围,在机器学习等领域有广泛的需求。本例对正实数范围划定了几个等级,关键点分割点分别为0,5,10,20,100,300,500,1000。从而分成了类似[0-5),[5-10) ... (1000,+∞)等等范围,需要为数据分箱,设定相应的标签。

方案1:使用Rule Engine节点,写下若干范围判断语句,从而为数据设置相应的标签(略,语句的构成较为复杂,不易维护)。
方案2:使用数据分箱节点,Numerical Binner (PMML),对数值型变量的分箱、标签化需求具有针对性。

步骤1. (构造测试数据)如数据生成图片中的红色部分所示,在KNIME中加入Random Numbers Generator节点,为测试设置50个随机数据,数据的类型为double,范围为[0, 3.5]
(注:没有直接设置范围为0到∞,是因为分割点的数值大致成指数函数分布,如果直接设置随机数,会导致测试覆盖度不足)。

步骤2. (构造测试数据)如数据生成图片中的绿色部分所示,拖入Math Formula节点,在里面指数函数,可以使用exp或者power都是可以的,这里使用了power函数,生成底数为10的指数函数计算结果,从而构成了测试数据集。

步骤3. (构造测试数据)如数据生成图片中的蓝色部分所示,拖入Table Creator节点,将分割点输入表格,用以测试分箱函数对于分割点数值处理的正确性。继续拖入Concatenate节点,将基于随机数发生的测试集和分割点数据集加以合并,形成最终的测试数据集。

步骤4. (测试数据分箱)如数据分箱图片所示,拖入Numerical Binner (PMML)节点,将其与合并后的测试数据集节点相连。双击该节点打开配置页面,通过Add按钮不断添加对数值型数据的分箱范围设置条目。如图中红色圆圈所示,不仅可以对分箱条目的标签加以设置(例如:“ negOut”代表负数,“>1000”,它们都是标签文本,代表分箱结果。),还可以设置分箱范围的上下限值,以及对于界限值的开区间和闭区间设置,对于下边界(左侧),“[”代表包含该界限值,“]”代表不包含该界限值(上边界,右侧,含义相反),这样的设置将改变关键分割点数据的分箱标签结果,大家可以自行尝试,我们的测试集里包括了对分割点数据的处理。

步骤5. (测试数据分箱)点击“OK”,关闭Numerical Binner (PMML)节点设置并运行工作流,完成对测试数据集的分箱处理,形成数据标签,可以检查处理结果,如果有不符合经验判断的结果,可以去检查分箱设置是否有错误。


解释1. 何为KNIME?KNIME数据分析平台是一款强大开源的数据挖掘软件平台,可以固化数据处理的流程,在人与人,人与机器之间进行传递。

解释2. 相对Rule Engine节点有何优势?一方面Rule Engine节点完成同样的功能需要写下若干逻辑语句,有一定的学习成本;另一方面,对于区间的设置,逻辑语句通常需要使用“AND”来连接,对于开闭区间的设置,需要十分小心“>=”,“>”,“<=”,“<”的用法,十分容易发生错误;使用分箱节点,只需要输入数据,下拉选择开闭区间,学习成本比较低,设置情况清晰明了,简单易懂,维护方便,不易发生错误,即使有设置错误,也十分容易发现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值