描述:Bucketizer是一個Transformer,只能對DataFrame進行單特徵轉換,而且特徵的數據類型必須是DoubleType。spa
參數信息 | 參數描述 | 備註 | 其餘 |
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| +------+-----------------+
將人的體重進行離散化,將人羣分爲:【瘦,標準,胖】code