Bucketizer (根据指定的分位点进行分桶)
2019-11-11 18:05
3931 查看
Bucketizer (根据指定的分位点进行分桶)
描述:Bucketizer是一个Transformer,只能对DataFrame进行单特征转换,并且特征的数据类型必须是DoubleType。
参数信息 | 参数描述 | 备注 | 其他 |
setInputCol | String | DF中待变换的特征,特征类型必须为:DoubleType | 必填 |
setOutputCol | String | 变换后的特征名称,转换后的类型为:DoubleType | 必填 |
setSplits | Array[Double] | 分箱分位点:Array(Double.MinValue, 20, 50, 70, Double.MaxValue) | 必填 |
setHandleInvalid | String | 无效条目的处理方式,枚举值:["skip", "error", "keep"] | 可选 |
程序示例:
//特征名称 var feature = "weight" var feature_new = "weight_bucketizer" //分箱点[前闭后开] var splits: Array[Double] = Array(Double.MinValue, 20, 50, 70, Double.MaxValue) //数据预处理 var dataset = dataFrame.select(col(feature).cast(DataTypes.DoubleType)) //特征二值化 var transform = new Bucketizer() .setInputCol(feature) //待变换的特征 .setOutputCol(feature_new) //变换后的特征名称 .setSplits(splits) //分箱点[前闭后开] .setHandleInvalid("skip") //无效条目的处理方式[跳过] .transform(dataset) //show transform.show()
数据结果:
+------+-----------------+ |weight|weight_bucketizer| +------+-----------------+ | 45.0| 1.0| | 60.0| 2.0| | 69.0| 2.0| | 53.0| 2.0| | 90.0| 3.0| | 45.0| 1.0| | 53.0| 2.0| | 88.0| 3.0| | 82.0| 3.0| | 76.0| 3.0| +------+-----------------+
实际应用例子:
将人的体重进行离散化,将人群分为:【瘦,标准,胖】
相关文章推荐
- 实体类实现根据指定属性进行排序
- SQLSERVER根据变量指定的字段进行排序(正序和倒序)
- 根据参数获取资源id,将图片代替指定文字进行显示
- 根据指定窗口句柄进行截屏
- 根据txt文件中指定的文件名进行文件分类
- 一个迭代小算法,根据指定的个数对下标进行分组
- LINQ 通过动态生成lambda表达式,实现根据指定属性名称对序列进行排序
- 用Python读取指定文件夹下的所有Landsat影像,并根据影像获取时间对文件名进行排序
- 演示使用DOM技术如何根据指定XML,进行相应的修改然后生成新的XML文档
- 根据文件大小进行分拣,以100K为界线,分拣到指定的另外两个目录中,并进行打包
- 根据数组中的值进行排序并且返回指定的元素个数
- 容易遗忘的Comparable:一个结果集List,里面有很多的对象,要求根据对象的指定(age)字段进行排序
- 根据指定路劲调用系统相机进行拍照
- jquery对select进行种各种操作的方法[联动、根据值或文本选中指定的select等]
- LINQ 根据指定属性名称对序列进行排序
- 加载指定包名下的所有类或根据类的annotation进行过滤的工具类
- 根据列表中的指定字段进行排序
- 根据指定的保留小数位进行四舍五入
- MySQL数据库,根据传入的字符换进行切割,并获得指定位置被切割的字符串。
- 编写一个能根据指定字符对字符串进行拆分的方法