剔除无用变量

 

数据中常有一些质量比较差或对建模没有意义的变量,可以定义一些规则,对其进行直接删除,以减少计算量,比如

(1)缺失率过高的变量

(2)单值变量

3)分类数过多的变量


A

1

=file("D://house_prices_train.csv").import@qtc()

2

=A1.fname()

3

=A2.((y=~,A1.align@a([true,false],!eval(y))))

4

=A2.new(~:col,A3(#)(1).len():null_no,round(null_no/A1.len(),3):null_rate,A1.field(#).icount():icount,if(!sum(A1.field(#)),"string","num"):type)

5

=A4.select(null_rate<0.9 && icount>1 && !(type=="string" && icount>100)).(col).concat(",")

6

=A1.new(${A5})

A2 获取字段名

A3 将每个字段按照是否缺失分成两组

..

A4 统计每个字段的缺失数,缺失率,distinct值的数量,数据类型

..

A5 剔除缺失率大于0.9的变量、单值变量和分类数大于100的变量

..

A6 变量筛选后的表格