예제 #1
0
    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))
예제 #2
0
 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))
예제 #3
0
 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))
예제 #4
0
 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)
예제 #5
0
 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))
예제 #6
0
 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))
예제 #7
0
 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))
예제 #8
0
 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))
예제 #9
0
 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"])
예제 #10
0
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)