Beispiel #1
0
 def test_prod_float(self):
     X = numpy.asarray([1.0, float("NaN"), 2.0, 4.0])
     aggregator = Aggregator(function="prod")
     X = X.reshape((-1, 4))
     self.assertEquals(8.0, aggregator.transform(X))
     X = X.reshape((2, 2))
     self.assertEquals([1.0, 8.0], aggregator.transform(X).tolist())
Beispiel #2
0
def build_iris(classifier, name, with_proba = True, fit_params = {}, predict_params = {}, predict_proba_params = {}, **pmml_options):
	pipeline = Pipeline([
		("pipeline", Pipeline([
			("mapper", DataFrameMapper([
				(iris_X.columns.values, ContinuousDomain()),
				(["Sepal.Length", "Petal.Length"], Aggregator(function = "mean")),
				(["Sepal.Width", "Petal.Width"], Aggregator(function = "mean"))
			])),
			("transform", FeatureUnion([
				("normal_scale", FunctionTransformer(None, validate = True)),
				("log_scale", FunctionTransformer(numpy.log10, validate = True)),
				("power_scale", PowerFunctionTransformer(power = 2))
			]))
		])),
		("pca", IncrementalPCA(n_components = 3, whiten = True)),
		("classifier", classifier)
	])
	pipeline.fit(iris_X, iris_y, **fit_params)
	pipeline = make_pmml_pipeline(pipeline, iris_X.columns.values, iris_y.name)
	pipeline.configure(**pmml_options)
	if isinstance(classifier, XGBClassifier):
		pipeline.verify(iris_X.sample(frac = 0.10, random_state = 13), predict_params = predict_params, predict_proba_params = predict_proba_params, precision = 1e-5, zeroThreshold = 1e-5)
	else:
		pipeline.verify(iris_X.sample(frac = 0.10, random_state = 13), predict_params = predict_params, predict_proba_params = predict_proba_params)
	store_pkl(pipeline, name)
	species = DataFrame(pipeline.predict(iris_X, **predict_params), columns = ["Species"])
	if with_proba == True:
		species_proba = DataFrame(pipeline.predict_proba(iris_X, **predict_proba_params), columns = ["probability(setosa)", "probability(versicolor)", "probability(virginica)"])
		species = pandas.concat((species, species_proba), axis = 1)
	store_csv(species, name)
Beispiel #3
0
 def test_min_int(self):
     X = numpy.asarray([1, 0, 2, 3])
     aggregator = Aggregator(function="min")
     X = X.reshape((-1, 4))
     self.assertEquals(0, aggregator.transform(X))
     X = X.reshape((2, 2))
     self.assertEquals([0, 2], aggregator.transform(X).tolist())
     X = X.reshape((4, -1))
     self.assertEquals([1, 0, 2, 3], aggregator.transform(X).tolist())
Beispiel #4
0
 def test_min(self):
     X = numpy.asarray([1, 0.5, 2, 3.0, 0, 1.0])
     min = Aggregator(function="min")
     X = X.reshape((1, 6))
     self.assertEqual(0, min.transform(X))
     X = X.reshape((3, 2))
     self.assertEqual([0.5, 2, 0], min.transform(X).tolist())
     X = X.reshape((2, 3))
     self.assertEqual([0.5, 0], min.transform(X).tolist())
     X = X.reshape((6, 1))
     self.assertEqual([1, 0.5, 2, 3.0, 0, 1.0], min.transform(X).tolist())
Beispiel #5
0
	def test_min_float(self):
		X = numpy.asarray([1.0, 0.5, 2.0, 3.0, float("NaN"), 1.5])
		aggregator = Aggregator(function = "min")
		X = X.reshape((-1, 6))
		self.assertEqual(0.5, aggregator.transform(X))
		X = X.reshape((3, 2))
		self.assertEqual([0.5, 2.0, 1.5], aggregator.transform(X).tolist())
		X = X.reshape((2, 3))
		self.assertEqual([0.5, 1.5], aggregator.transform(X).tolist())
		X = X.reshape((6, -1))
		self.assertTrue(nan_eq([1.0, 0.5, 2.0, 3.0, float("NaN"), 1.5], aggregator.transform(X).tolist()))
Beispiel #6
0
 def test_mean_float(self):
     X = numpy.asarray([1.0, float("NaN"), 2.0])
     aggregator = Aggregator(function="mean")
     X = X.reshape((-1, 3))
     self.assertEquals(1.5, aggregator.transform(X))
Beispiel #7
0
 def test_init(self):
     with self.assertRaises(ValueError):
         Aggregator(None)