0
我在其中一個大數據分析應用程序中使用帶有Hadoop的Spark Mllib。 我有41個功能和一個標籤的功能集。現在,在進行培訓時,我想將我的功能與功能工程師混合匹配,併爲我的場景找到最適合的最小功能集。使用具有許多功能的JavaRDD中的選擇性功能
爲此,我想在訓練時選擇在訓練和測試模型準確性時使用哪些特徵。
我這樣做
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>
嗎?
如果需要更多的細節,請隨時詢問。