- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个似乎有效的线性回归模型。我首先将 data
加载到 X
中,将目标列加载到 Y
中,之后我实现以下...
X_train, X_test, Y_train, Y_test = train_test_split(
X_data,
Y_data,
test_size=0.2
)
rng = np.random
n_rows = X_train.shape[0]
X = tf.placeholder("float")
Y = tf.placeholder("float")
W = tf.Variable(rng.randn(), name="weight")
b = tf.Variable(rng.randn(), name="bias")
pred = tf.add(tf.multiply(X, W), b)
cost = tf.reduce_sum(tf.pow(pred-Y, 2)/(2*n_rows))
optimizer = tf.train.GradientDescentOptimizer(FLAGS.learning_rate).minimize(cost)
init = tf.global_variables_initializer()
init_local = tf.local_variables_initializer()
with tf.Session() as sess:
sess.run([init, init_local])
for epoch in range(FLAGS.training_epochs):
avg_cost = 0
for (x, y) in zip(X_train, Y_train):
sess.run(optimizer, feed_dict={X:x, Y:y})
# display logs per epoch step
if (epoch + 1) % FLAGS.display_step == 0:
c = sess.run(
cost,
feed_dict={X:X_train, Y:Y_train}
)
print("Epoch:", '%04d' % (epoch + 1), "cost=", "{:.9f}".format(c))
print("Optimization Finished!")
accuracy, accuracy_op = tf.metrics.accuracy(labels=tf.argmax(Y_test, 0), predictions=tf.argmax(pred, 0))
print(sess.run(accuracy))
我不知道如何打印模型的准确性。例如,在 sklearn 中,这很简单,如果您有一个模型,则只需打印 model.score(X_test, Y_test)
即可。但我不知道如何在 tensorflow
中做到这一点,或者是否可能。
我想我能够计算均方误差
。这有什么帮助吗?
编辑
我尝试按照评论中的建议实现tf.metrics.accuracy
,但在实现它时遇到问题。文档说它需要 2 个参数,labels
和 predictions
,所以我尝试了以下...
accuracy, accuracy_op = tf.metrics.accuracy(labels=tf.argmax(Y_test, 0), predictions=tf.argmax(pred, 0))
print(sess.run(accuracy))
但这给了我一个错误......
FailedPreconditionError (see above for traceback): Attempting to use uninitialized value accuracy/count [[Node: accuracy/count/read = IdentityT=DT_FLOAT, _class=["loc:@accuracy/count"], _device="/job:localhost/replica:0/task:0/device:CPU:0"]]
具体如何实现这一点?
最佳答案
事实证明,由于这是一个多类线性回归问题,而不是分类问题,因此 tf.metrics.accuracy
不是正确的方法。
我没有以百分比的形式显示模型的准确性,而是专注于减少均方误差 (MSE)。
从其他示例来看,tf.metrics.accuracy
从未用于线性回归,而仅用于分类。通常 tf.metric.mean_squared_error 是正确的方法。
我实现了两种方法来计算我对测试数据的预测的总 MSE...
pred = tf.add(tf.matmul(X, W), b)
...
...
Y_pred = sess.run(pred, feed_dict={X:X_test})
mse = tf.reduce_mean(tf.square(Y_pred - Y_test))
或者
mse = tf.metrics.mean_squared_error(labels=Y_test, predictions=Y_pred)
它们的作用相同,但显然第二种方法更简洁。
关于如何测量线性回归模型的准确性有很好的解释 here .
关于python-3.x - Tensorflow-如何显示线性回归模型的准确率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47451126/
我训练了 LSTM 分类模型,但得到了奇怪的结果(0 准确率)。这是我的带有预处理步骤的数据集: import pandas as pd from sklearn.model_selection im
使用 TFlearn 构建 DNN 后,我想计算网络的准确性。 这是代码: def create_model(self): x = tf.placeholder(dtype= tf.float
Duplicate calculating Precision, Recall and F Score 我有一个带有文本描述和分类级别(即levelA和levelB)的输入文件。我想编写一个 SVM
如何计算语义分割中前 k 个准确率?在分类中,我们可以将 topk 准确率计算为: correct = output.eq(gt.view(1, -1).expand_as(output)) 最佳答案
我正在尝试解决多标签分类问题 from sklearn.preprocessing import MultiLabelBinarizer traindf = pickl
我是一名优秀的程序员,十分优秀!