有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
注意:
部分输出请在高级设置中查看。

卡方特征选择(ChiSqSelector)

原理

算法说明

卡方检验是一种常用的特征选择方法。卡方用来描述两个事件的独立性或者描述实际观察值与期望值的偏离程度。卡方值越大,则表明实际观察值与期望值偏离越大,也说明两个事件的相互独立性越弱。

该算子基于卡方独立性检验进行特征选择。特征选择过程将根据卡方独立性检验结果,将每个特征对应的卡方统计量按照从大到小的顺序进行排序,根据这一排序用户可指定选择的特征个数。需要注意的是,该算子对连续型数据也采用离散数据的方式进行统计,并且要求目标变量和特征的数值种类个数不能超过 10000 。因此,对于连续型数据最好先通过离散化方式进行处理,再进行特征选择。此外,为方便后续使用,本算子的输出会将未被选择的特征置为 0 ,而不是直接删掉。

参数配置

算法 IO 参数
*输入文件类型:格式包括以下两种:
csv :csv 文件
*输入数据包含 header 信息:默认为“是”。
*输入数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*输出文件类型:格式包括以下两种:
csv :csv 文件
*输出数据包含 header 信息:默认为“是”。
*输出数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*标签列:标签列所在的列号,从 0 开始计数,如填写 0 ,表示第一列是标签。
*选择特征列:表示需要计算的特征所在列,例如“1-12,15”,表示取特征在表中的 1 到 12 列,15 列,从 0 开始计数。
最后的输出结果将会保持为原始的输入格式,仅将未选择的特征置为 0 。
算法参数
*选择的特征个数:根据卡方值选择输出的特征个数。

Demo

输入数据示例

v1,v2,v3,v4,v5,v6,y
12,10,10,30,50,2,1.0
18,10,100,1000,90,3,1.0
50,10,200,300,10,1,1.0
50,10,300,200,20,1,0.0
14,10,40,100,200,2,0.0

参数配置

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*输出数据是否包含 header 信息:是
*输出数据分隔符:逗号
*标签列:6 ,即 y 为标签。
*选择特征列:0-5 ,即前 6 列数据,v1-v6 为特征。
算法参数
*选择的特征个数:3 。

输出数据示例

输出示例第一行为列名,选择的特征为v3,v4,v5 ,其他特征被置为了 0 。
v1,v2,v3,v4,v5,v6,y
0.0,0.0,10.0,30.0,50.0,0.0,1.0
0.0,0.0,100.0,1000.0,90.0,0.0,1.0
0.0,0.0,200.0,300.0,10.0,0.0,1.0
0.0,0.0,300.0,200.0,20.0,0.0,0.0
0.0,0.0,40.0,100.0,200.0,0.0,0.0

基于树的特征选择(TreeBasedSelector)

原理

算法说明

基于树的集成算法有一个很好的特性,在模型训练结束后可以输出模型所使用的特征的相对重要度,便于我们选择特征,理解哪些因素是对预测有关键影响。本算法基于随机森林算法输出的特征重要性完成特征选择。最后的结果将会保持为原始的输入格式,仅将未选择的特征置为 0 。

参数配置

算法 IO 参数
*输入文件类型:格式包括以下两种:
csv :csv 文件
*输入数据包含 header 信息:默认为“是”。
*输入数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
*输出数据包含 header 信息:默认为“是”。
*输出数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*标签列:标签列所在的列号,从 0 开始计数,如填写 0 ,表示第一列是标签。
*选择特征列:表示需要计算的特征所在列,例如“1-12,15”,表示取特征在表中的 1 到 12 列,15 列,从 0 开始计数。
最后的输出结果将会保持为原始的输入格式,仅将未选择的特征置为0。
算法参数
*选择的特征个数:根据树模型选择的特征个数。
*任务类型:可选分类或回归。

Demo

输入数据示例

输入示例的第一行为列名,v1-v6 为特征,y 为标签。
v1,v2,v3,v4,v5,v6,y
12,10,10,30,50,2,1.0
18,10,100,1000,90,3,1.0
50,10,200,300,10,1,1.0
50,10,300,200,20,1,0.0
14,10,40,100,200,2,0.0

参数配置

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*输出数据是否包含 header 信息:是
*输出数据分隔符:逗号
*标签列:6,即 y 为标签。
*选择特征列:0-5,即前 6 列数据,v1-v6 为特征。
算法参数
*选择的特征个数:3 。
*任务类型:分类。

输出数据示例

输出示例第一行为列名,选择的特征为是 v1,v2,v6 ,其他特征被置为了 0 。
v1,v2,v3,v4,v5,v6,y
12.0,10.0,0.0,0.0,0.0,2.0,1.0
18.0,10.0,0.0,0.0,0.0,3.0,1.0
50.0,10.0,0.0,0.0,0.0,1.0,1.0
50.0,10.0,0.0,0.0,0.0,1.0,0.0
14.0,10.0,0.0,0.0,0.0,2.0,0.0