1313 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1414 * See the License for the specific language governing permissions and
1515 * limitations under the License.
16- */ /*
17-
16+ */
1817
1918package org .apache .spark .mllib .regression ;
2019
2120import org .apache .spark .api .java .JavaPairRDD ;
2221import org .apache .spark .api .java .JavaRDD ;
2322import org .apache .spark .api .java .JavaSparkContext ;
2423import org .apache .spark .api .java .function .Function ;
25- import org.apache.spark.mllib.linalg.Vector;
26- import org.apache.spark.mllib.linalg.Vectors;
2724import org .apache .spark .mllib .util .IsotonicDataGenerator ;
2825import org .junit .After ;
2926import org .junit .Assert ;
3027import org .junit .Before ;
3128import org .junit .Test ;
3229import scala .Tuple2 ;
33- import scala.Tuple3;
3430
3531import java .io .Serializable ;
36- import java.util.Arrays;
3732import java .util .List ;
3833
3934public class JavaIsotonicRegressionSuite implements Serializable {
@@ -50,52 +45,26 @@ public void tearDown() {
5045 sc = null ;
5146 }
5247
53- double difference(List<Tuple3<Double, Double, Double>> expected, IsotonicRegressionModel model) {
48+ double difference (List <Tuple2 < Double , Double >> expected , IsotonicRegressionModel model ) {
5449 double diff = 0 ;
5550
5651 for (int i = 0 ; i < model .predictions ().length (); i ++) {
57- Tuple3<Double, Double, Double> exp = expected.get(i);
52+ Tuple2 < Double , Double > exp = expected .get (i );
5853 diff += Math .abs (model .predict (exp ._2 ()) - exp ._1 ());
5954 }
6055
6156 return diff ;
6257 }
6358
64- */
65- /*@Test
66- public void runIsotonicRegressionUsingConstructor() {
67- JavaRDD<Tuple3<Double, Double, Double>> testRDD = sc.parallelize(IsotonicDataGenerator
68- .generateIsotonicInputAsList(
69- new double[]{1, 2, 3, 3, 1, 6, 7, 8, 11, 9, 10, 12})).cache();
70-
71- IsotonicRegressionAlgorithm isotonicRegressionAlgorithm = new PoolAdjacentViolators();
72- IsotonicRegressionModel model = isotonicRegressionAlgorithm.run(testRDD.rdd(), true);
73-
74- List<Tuple3<Double, Double, Double>> expected = IsotonicDataGenerator
75- .generateIsotonicInputAsList(
76- new double[] {1, 2, 7d/3, 7d/3, 7d/3, 6, 7, 8, 10, 10, 10, 12});
77-
78- Assert.assertTrue(difference(expected, model) == 0);
79- }*/ /*
80-
81-
8259 @ Test
8360 public void runIsotonicRegressionUsingStaticMethod () {
84- */
85- /*JavaRDD<Tuple3<Double, Double, Double>> testRDD = sc.parallelize(IsotonicDataGenerator
86- .generateIsotonicInputAsList(
87- new double[] {1, 2, 3, 3, 1, 6, 7, 8, 11, 9, 10, 12})).cache();*/ /*
88-
89-
90- */
91- /*JavaRDD<Tuple3<Double, Double, Double>> testRDD = sc.parallelize(Arrays.asList(new Tuple3(1.0, 1.0, 1.0)));*/ /*
61+ JavaPairRDD <Double , Double > trainRDD = sc .parallelizePairs (
62+ IsotonicDataGenerator .generateIsotonicInputAsList (
63+ new double []{1 , 2 , 3 , 3 , 1 , 6 , 7 , 8 , 11 , 9 , 10 , 12 })).cache ();
9264
65+ IsotonicRegressionModel model = IsotonicRegression .train (trainRDD , true );
9366
94- JavaPairRDD<Double, Double> testRDD = sc.parallelizePairs(Arrays.asList(new Tuple2<Double, Double>(1.0, 1.0)));
95-
96- IsotonicRegressionModel model = IsotonicRegression.train(testRDD.rdd(), true);
97-
98- List<Tuple3<Double, Double, Double>> expected = IsotonicDataGenerator
67+ List <Tuple2 <Double , Double >> expected = IsotonicDataGenerator
9968 .generateIsotonicInputAsList (
10069 new double [] {1 , 2 , 7d /3 , 7d /3 , 7d /3 , 6 , 7 , 8 , 10 , 10 , 10 , 12 });
10170
@@ -104,23 +73,23 @@ public void runIsotonicRegressionUsingStaticMethod() {
10473
10574 @ Test
10675 public void testPredictJavaRDD () {
107- JavaRDD<Tuple3< Double, Double, Double>> testRDD = sc.parallelize(IsotonicDataGenerator
108- .generateIsotonicInputAsList(
109- new double[] {1, 2, 3, 3, 1, 6, 7, 8, 11, 9, 10, 12})).cache();
76+ JavaPairRDD < Double , Double > trainRDD = sc .parallelizePairs (
77+ IsotonicDataGenerator .generateIsotonicInputAsList (
78+ new double []{1 , 2 , 3 , 3 , 1 , 6 , 7 , 8 , 11 , 9 , 10 , 12 })).cache ();
11079
111- IsotonicRegressionModel model = IsotonicRegression.train(testRDD.rdd() , true);
80+ IsotonicRegressionModel model = IsotonicRegression .train (trainRDD , true );
11281
113- JavaRDD<Vector> vectors = testRDD .map(new Function<Tuple3 <Double, Double, Double >, Vector >() {
82+ JavaRDD <Double > testRDD = trainRDD .map (new Function <Tuple2 <Double , Double >, Double >() {
11483 @ Override
115- public Vector call(Tuple3<Double, Double, Double> v) throws Exception {
116- return Vectors.dense( v._2() );
84+ public Double call (Tuple2 < Double , Double > v ) throws Exception {
85+ return v ._2 ();
11786 }
11887 });
11988
120- List< Double> predictions = model.predict(vectors ).collect();
89+ Double [] predictions = model .predict (testRDD ).collect ();
12190
122- Assert.assertTrue(predictions.get(0) == 1d);
123- Assert.assertTrue(predictions.get(11) == 12d);
91+ Assert .assertTrue (predictions [ 0 ] == 1d );
92+ Assert .assertTrue (predictions [ 11 ] == 12d );
12493 }
12594}
126- */
95+
0 commit comments