SparkMl-Binarizer(连续特征二值化)

一身傲骨 8天前   阅读数 10 0

Binarizer:连续特征二值化

描述:Binarizer是一个Transformer,只能对DataFrame进行单特征转换,并且特征的数据类型必须是DoubleType。

参数信息 参数描述 备注 其他
setInputCol DF中待变换的特征 特征类型必须为:DoubleType  
setOutputCol 变换后的特征名称 转换后的类型为:DoubleType  
setThreshold 将数据分段的阈值 若选中特征列的值大于阈值,则返回1.0,否则返回0.0 默认值:0.0

程序示例:

//特征名称
var feature = "weight"
var feature_new = "weight_binarizer"
//数据预处理
var dataset = dataFrame.select(col(feature).cast(DataTypes.DoubleType))
//特征二值化
var transform = new Binarizer()
.setInputCol(feature)         //待变换的特征
.setOutputCol(feature_new)    //变换后的特征名称
.setThreshold(60d)            //阈值
.transform(dataset)
//show
transform.show()

数据结果:

+------+----------------+
|weight|weight_binarizer|
+------+----------------+
|  45.0|             0.0|
|  60.0|             0.0|
|  69.0|             1.0|
|  89.0|             1.0|
|  45.0|             0.0|
|  53.0|             0.0|
|  88.0|             1.0|
|  76.0|             1.0|
+------+----------------+

实际应用例子:

      有一批学生的成绩,60分为合格,那么我们的阈值就可以设置为:59.99999999。

 

 

 


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: