大きなデータ分析アプリケーションの1つでHadoopでSpark Mllibを使用しています。 私は41の機能と1つのラベルの機能セットを持っています。トレーニング中に、フィーチャー・エンジニアとフィーチャー・エンジニアをミックスしてマッチさせ、自分のシナリオに最適な最小限のフィーチャーセットを探したいと思います。多くの機能を備えた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>
のこれを行う方法を提案することはできますか?
詳細が必要な場合は、お気軽にお問い合わせください。