Tensorflow,预测值的概率? [英] Tensorflow, probability of predicted value?
问题描述
我可以得到预测值的概率吗?
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屋!