超简单的神经网络构建方法,你上你也行( 三 )


本文插图

模型评估
在评估过程中 , 欲以某种方式持续追踪模型做出的预测 。 需要迭代 X_test并进行预测 , 然后将预测结果与实际值进行比较 。
这里将使用 torch.no_grad() , 因为只是评估而已——无需更新权重和偏置 。
总而言之 , 代码如下:
preds = []with torch.no_grad(): for val in X_test: y_hat = model.forward(val) preds.append(y_hat.argmax().item())
现在预测结果被存储在 preds阵列 。 可以用下列三个值构建一个Pandas DataFrame 。
· Y:实际值
· YHat: 预测值
· Correct:对角线 , 对角线的值为1表示Y和YHat相匹配 , 值为0则表示不匹配
代码如下:
df = pd.DataFrame({'Y': y_test, 'YHat':preds})df['Correct'] = [1 if corr == pred else 0 for corr, pred in zip(df['Y'],df['YHat'])]
df 的前五行如下图所示:

超简单的神经网络构建方法,你上你也行
本文插图

下一个问题是 , 实际该如何计算精确度呢?
很简单——只需计算 Correct列的和再除以 df的长度:
df['Correct'].sum() / len(df)>>> 1.0
此模型对原先未见数据的准确率为100% 。 但需注意这完全是因为Iris数据集非常易于归类 , 并不意味着对于Iris数据集来说 , 神经网络就是最好的算法 。 NN对于这类问题来讲有点大材小用 , 不过这都是以后讨论的话题了 。

超简单的神经网络构建方法,你上你也行
本文插图

图源:unsplash
这可能是你写过最简单的神经网络 , 有着完美简洁的数据集、没有缺失值、层次最少、还有神经元!本文没有什么高级深奥的东西 , 相信你一定能够掌握它 。

超简单的神经网络构建方法,你上你也行
本文插图

留言点赞关注
我们一起分享AI学习与发展的干货
如转载 , 请后台留言 , 遵守转载规范


推荐阅读