def testIrisStreaming(self): iris = datasets.load_iris() def iris_data(): while True: for x in iris.data: yield x def iris_predict_data(): for x in iris.data: yield x def iris_target(): while True: for y in iris.target: yield y classifier = learn.LinearClassifier( feature_columns=learn.infer_real_valued_columns_from_input( iris.data), n_classes=3) classifier.fit(iris_data(), iris_target(), max_steps=500) score1 = accuracy_score(iris.target, classifier.predict(iris.data)) score2 = accuracy_score(iris.target, classifier.predict(iris_predict_data())) self.assertGreater(score1, 0.5, "Failed with score = {0}".format(score1)) self.assertEqual( score2, score1, "Scores from {0} iterator doesn't " "match score {1} from full " "data.".format(score2, score1))
def testIris(self): iris = datasets.load_iris() classifier = learn.LinearClassifier( feature_columns=learn.infer_real_valued_columns_from_input(iris.data), n_classes=3) classifier.fit(iris.data, [x for x in iris.target], max_steps=100) score = accuracy_score(iris.target, list(classifier.predict(iris.data))) self.assertGreater(score, 0.7, "Failed with score = {0}".format(score))
def testIrisSummaries(self): iris = datasets.load_iris() output_dir = tempfile.mkdtemp() + "learn_tests/" classifier = learn.LinearClassifier( feature_columns=learn.infer_real_valued_columns_from_input(iris.data), n_classes=3, model_dir=output_dir) classifier.fit(iris.data, iris.target, max_steps=100) score = accuracy_score(iris.target, list(classifier.predict(iris.data))) self.assertGreater(score, 0.5, "Failed with score = {0}".format(score))
def testIris(self): path = tf.test.get_temp_dir() + '/tmp.saver' random.seed(42) iris = datasets.load_iris() cont_features = [tf.contrib.layers.real_valued_column('', dimension=4)] classifier = learn.LinearClassifier(feature_columns=cont_features, n_classes=3, model_dir=path) classifier.fit(iris.data, iris.target, steps=200)
def testIris_proba(self): # If sklearn available. if log_loss: random.seed(42) iris = datasets.load_iris() classifier = learn.LinearClassifier( feature_columns=learn.infer_real_valued_columns_from_input(iris.data), n_classes=3) classifier.fit(iris.data, iris.target, max_steps=250) score = log_loss(iris.target, list(classifier.predict_proba(iris.data))) self.assertLess(score, 0.8, "Failed with score = {0}".format(score))
def testIrisContinueTraining(self): iris = datasets.load_iris() classifier = learn.LinearClassifier( feature_columns=learn.infer_real_valued_columns_from_input(iris.data), n_classes=3) classifier.fit(iris.data, iris.target, steps=100) score1 = accuracy_score(iris.target, list(classifier.predict(iris.data))) classifier.fit(iris.data, iris.target, steps=500) score2 = accuracy_score(iris.target, list(classifier.predict(iris.data))) self.assertGreater( score2, score1, "Failed with score2 {0} <= score1 {1}".format(score2, score1))
def test_pandas_series(self): if HAS_PANDAS: import pandas as pd # pylint: disable=g-import-not-at-top random.seed(42) iris = datasets.load_iris() data = pd.DataFrame(iris.data) labels = pd.Series(iris.target) classifier = learn.LinearClassifier( feature_columns=learn.infer_real_valued_columns_from_input( data), n_classes=3) classifier.fit(data, labels, steps=100) score = accuracy_score(labels, list(classifier.predict(data))) self.assertGreater(score, 0.5, "Failed with score = {0}".format(score))
def test_dask_iris_classification(self): if HAS_DASK and HAS_PANDAS: import pandas as pd # pylint: disable=g-import-not-at-top import dask.dataframe as dd # pylint: disable=g-import-not-at-top random.seed(42) iris = datasets.load_iris() data = pd.DataFrame(iris.data) data = dd.from_pandas(data, npartitions=2) labels = pd.DataFrame(iris.target) labels = dd.from_pandas(labels, npartitions=2) classifier = learn.LinearClassifier( feature_columns=learn.infer_real_valued_columns_from_input( data), n_classes=3) classifier.fit(data, labels, steps=100) predictions = data.map_partitions(classifier.predict).compute() score = accuracy_score(labels.compute(), predictions) self.assertGreater(score, 0.5, "Failed with score = {0}".format(score))
def testIrisAllVariables(self): iris = datasets.load_iris() classifier = learn.LinearClassifier( feature_columns=learn.infer_real_valued_columns_from_input(iris.data), n_classes=3) classifier.fit(iris.data, [x for x in iris.target], max_steps=100) self.assertEqual( classifier.get_variable_names(), ["centered_bias_weight", "centered_bias_weight/Adagrad", "global_step", # Double slashes appear because the column name is empty. If it was not # empty, the variable names would be "linear/column_name/weight" etc. "linear//weight", "linear//weight/Ftrl", "linear//weight/Ftrl_1", "linear/bias_weight", "linear/bias_weight/Ftrl", "linear/bias_weight/Ftrl_1"])
import tensorflow.contrib.learn.python.learn as learn from sklearn import datasets, metrics iris = datasets.load_iris() feature_columns = learn.infer_real_valued_columns_from_input(iris.data) classifier = learn.LinearClassifier(n_classes=3, feature_columns=feature_columns) classifier.fit(iris.data, iris.target, steps=200, batch_size=32) iris_predictions = list(classifier.predict(iris.data, as_iterable=True)) score = metrics.accuracy_score(iris.target, iris_predictions) print("Accuracy: %f" % score)