我有使用VectorAssembler从数据框创建的数据集,数据框是StringIndexer()
对多列的转换
我训练了我的模特:
val assembler = new VectorAssembler().....
val data = assembler.transform(...)
val featureIndexer = new VectorIndexer()
val gbt = new GBTRegressor()
.setLabelCol("label")
.setFeaturesCol("indexedFeatures")
.setMaxIter(10)
val pipeline = new Pipeline()
.setStages(Array(featureIndexer, gbt))
val model = pipeline.fit(trainingData)
当我打印我的模型时,它看起来像是:
GBTRegressionModel (uid=gbtr_24b22b08fa90) with 10 trees
Tree 0 (weight 1.0):
If (feature 16 <= 0.22222222222222224)
If (feature 16 <= 0.13333333333333333)
If (feature 16 <= 0.07142857142857144)
If (feature 16 <= 0.02222222222222222)....
我的第一个问题是在打印模型时我希望看到功能名称而不是功能索引,我该如何解决?
另一个问题是因为我使用了StringIndexer()
,这意味着我会看到每个值的映射都是int而不是他的字符串值。如何使用StringType列打印模型而不是使用StringIndexer()
转换的模型?
感谢帮助者