Tensorflow,预测值的概率? [英] Tensorflow, probability of predicted value?

查看:72
本文介绍了Tensorflow,预测值的概率?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以得到预测值的概率吗?

Can I get the probability of predicted value?

我可以获得数据的准确性,但想以某种方式获取每个预测值的概率.

I can get an accuracy of my data but would like somehow to grab probability of each single predicted value.

我的代码:

    training_data = np.vstack(training_data)
    training_target = np.vstack(training_target)
    test_data = np.vstack(test_data)
    test_target = np.vstack(test_target)

    feature_columns = tf.contrib.learn.infer_real_valued_columns_from_input(training_data)
    classifier = tf.contrib.learn.DNNClassifier(
        feature_columns=feature_columns,
        hidden_units=[10, 20, 10],
        n_classes=3,
        model_dir="/tmp/basic09",
        optimizer=tf.train.ProximalAdagradOptimizer(
            learning_rate=0.1,
            l1_regularization_strength=0.001
        )
    )

    def input_fn_train():
        x = tf.constant(training_data)
        y = tf.constant(training_target)
        return x, y

    def input_fn_test():
        x = tf.constant(test_data)
        y = tf.constant(test_target)
        return x, y

    def new_tests():
        return np.array(
            [
                [33.33, 44.44],
            ], dtype=np.float32)

    classifier.fit(input_fn=input_fn_train, steps=200)
    score = classifier.evaluate(input_fn=input_fn_test, steps=1)
    score_accuracy = score["accuracy"]
    score_loss = score["loss"]

    print("Score: ", score)
    print("Accuracy: ", score_accuracy)
    print("Loss: ", score_loss)

    predictions = list(classifier.predict_classes(input_fn=new_tests))
    print("Predictions: {}".format(predictions))

所以,我想以百分比形式查看每个单一预测的概率,不确定是否可能?

So, I would like to see a probability of each single prediction in percentage, not sure if it is possible or not?

非常欢迎任何其他评论和建议,我是 Tensorflow 和 ML 的新手.

Any other comment, advice is more than welcome, I am new at Tensorflow and ML.

谢谢.

推荐答案

我会回答我自己的问题,也许有人会觉得有用

I will answer my own question, maybe someone will find it useful

所以,我需要使用函数 predict_proba,它将返回一个包含概率的值数组.

So, I need to use function predict_proba, that will return an array of values that contains probability.

    training_data = np.vstack(training_data)
    training_target = np.vstack(training_target)
    test_data = np.vstack(test_data)
    test_target = np.vstack(test_target)

    feature_columns = tf.contrib.learn.infer_real_valued_columns_from_input(training_data)
    classifier = tf.contrib.learn.DNNClassifier(
        feature_columns=feature_columns,
        hidden_units=[10, 20, 10],
        n_classes=3,
        model_dir="/tmp/basic09",
        optimizer=tf.train.ProximalAdagradOptimizer(
            learning_rate=0.1,
            l1_regularization_strength=0.001
        )
    )

    def input_fn_train():
        x = tf.constant(training_data)
        y = tf.constant(training_target)
        return x, y

    def input_fn_test():
        x = tf.constant(test_data)
        y = tf.constant(test_target)
        return x, y

    def new_tests():
        return np.array(
            [
                [33.33, 44.44],
            ], dtype=np.float32)

    classifier.fit(input_fn=input_fn_train, steps=200)
    score = classifier.evaluate(input_fn=input_fn_test, steps=1)
    score_accuracy = score["accuracy"]
    score_loss = score["loss"]

    print("Score: ", score)
    print("Accuracy: ", score_accuracy)
    print("Loss: ", score_loss)

    predictions = list(classifier.predict_proba(input_fn=new_tests))
    print("Predictions probability: ", predictions)

这篇关于Tensorflow,预测值的概率?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆