【问题标题】:Spark MLLib How to ignore features when training a classifierSpark MLLib 如何在训练分类器时忽略特征
【发布时间】:2015-08-24 16:45:51
【问题描述】:

我想在 RDD[LabeledPoint] 上训练分类器,仅使用每个 LabeledPoint 中的特征子集(既可以快速调整模型,又可以在每个 LabeledPoint 中包含项目,例如 ID 或评估指标)特征)。我搜索了文档,但找不到指定应包含或忽略哪些列的方法。代码如下,我使用的是 Spark 和 MLLib 1.3.1,Scala 2.10.4。

如果无法排除特定特征,在训练期间忽略的每个数据点中包含一个 ID 仍然会有所帮助。任何帮助表示赞赏!

val numClasses = 2
val categoricalFeaturesInfo = Map[Int, Int](5 -> 2)
val numTrees = 100
val featureSubsetStrategy = "auto"
val impurity = "gini"
val maxDepth = 6
val maxBins = 20
val model = RandomForest.trainClassifier(trainingData, numClasses, categoricalFeaturesInfo, numTrees, featureSubsetStrategy, impurity, maxDepth, maxBins)

【问题讨论】:

    标签: apache-spark machine-learning apache-spark-mllib


    【解决方案1】:

    您想在构建模型之前选择特征子集,还是想为 RandomForest 分类器在迭代之间使用一些自定义策略?

    如果是第一种情况 - 您可以在构建模型之前使用地图转换来转换 trainingData。

    有关特征选择的示例,请参阅MLlib - Feature Extraction and Transformation 中的特征选择部分。

    【讨论】:

    • 感谢您的回复。也不完全是——我希望能够在每个数据点中包含不用于训练的特征。例如,包含一个 ID 标签,以便能够在训练分类器后识别单个数据点(无需使用包含的功能单独匹配每个数据点,这感觉是一个非常笨拙的解决方案)。
    • @user1109152 你有没有发现任何优雅的解决方案?
    猜你喜欢
    • 2017-03-24
    • 2015-03-07
    • 1970-01-01
    • 2016-12-10
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 2019-10-21
    相关资源
    最近更新 更多