我在一个大数据分析应用程序中使用带hadoop的spark mllib。我有一个功能集的41个特点和一个标签。现在,在进行培训时,我想将我的特性与特性工程师进行混合和匹配,并为我的场景找到最适合的最小特性集。
为此,我想在训练时选择在训练和测试模型精度时要使用的特性。
我正在这么做
JavaRDD<LabeledPoint>[] splits = data.randomSplit(new double[] { 0.5, 0.5 });
JavaRDD<LabeledPoint> trainingData = splits[0];
JavaRDD<LabeledPoint> testData = splits[1];
然后用这些数据训练不同的模型。
modelLR = new LogisticRegressionWithLBFGS().setNumClasses(numClasses).run(trainingData.rdd());
modelRF = RandomForest.trainClassifier(trainingData, numClasses, categoricalFeaturesInfo, numTrees, featureSubsetStrategy, impurity, maxDepth, maxBins, seed);
modelNB = NaiveBayes.train(trainingData.rdd(), 1.0);
modelGBT = GradientBoostedTrees.train(trainingData, boostingStrategy);
modelDT = DecisionTree.trainClassifier(trainingData, numClasses, categoricalFeaturesInfo, impurity, maxDepth, maxBins);
现在,在使用数据集训练模型之前,我要过滤数据,以获得我想要使用的选择性特征。有人能给我出个主意吗 JavaRDD<LabeledPoint>
?
如果需要更多的细节,请随时询问。
1条答案
按热度按时间cqoc49vn1#
不要介意。我自己想出了答案。
对于任何有兴趣这样做的人,我都这样做了。
它将过滤每条记录并返回过滤后的javardd。
请随时询问需要进一步了解的任何细节。