【问题标题】:Single Value Accuracy for Neural Network (NeuralNet) in RR中神经网络(NeuralNet)的单值精度
【发布时间】:2021-11-09 16:12:54
【问题描述】:

我有一个多层神经网络,它使用数据库中的两个变量(酒精和苹果酸)

我的代码

#Reading in the wine data from last week's labs
winedata = read.csv('/Users/ali/Documents/CS3002/Lab2/winedata2.csv', header = TRUE, sep=",")

#Setting up my test and train data
winevaluesTrain = winedata[1:65,2:3]
wineclassesTrain = winedata[1:65,1]
winevaluesTest = winedata[66:130,2:3]
wineclassesTest = winedata[66:130,1]

#normalize
scaledtrain <- as.data.frame(scale(winevaluesTrain))
scaledtest <- as.data.frame(scale(winevaluesTest))

#Building the architecture of my neural network
set.seed(2)
NN2 = neuralnet(wineclassesTrain~., scaledtrain, hidden = c(3,3) , threshold = 0.001, stepmax = 1e+05, linear.output = FALSE)
plot(NN2)


predict_testNN2 = compute(NN2, scaledtest)

predict_outNN2 = predict_testNN2$net.result
print(predict_outNN2)

绘制神经网络

并打印出预测结果

最后一部分是“计算精度”,我不确定我需要从这里去哪里?问团队,他们说我正在寻找一个单一的值来显示我的神经网络的准确性

不确定我是否需要混淆矩阵?或如何呈现单个准确度分数

【问题讨论】:

    标签: r machine-learning neural-network


    【解决方案1】:

    我看不到您的数据,但我假设这是一个分类问题(您正在预测二元结果),您上面显示的预测结果是您的神经网络模型产生的概率。

    下一步是对这些概率应用决策阈值。即它们中的哪一个应该是 1,哪一个应该是 0。例如您可以保持 0:1 的比例与您的训练数据中的相同。请注意,将决策应用于概率不属于建模过程。

    一旦您对测试数据中的每一行进行了二元分类,您就可以将这些预测分类与实际分类进行比较。这可以以混淆矩阵的形式完成。在分类问题中,准确率定义为正确预测数除以总预测数。

    请注意,准确性通常不是模型性能的一个很好的指标,尤其是对于不平衡的数据集。最好根据模型产生的概率而不是遵循决策过程的分类来评估模型。例如考虑使用 Brier 分数作为替代方案。

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 2017-01-24
      • 2016-10-22
      • 2019-10-12
      • 2018-10-29
      • 2016-10-26
      • 2016-10-19
      • 1970-01-01
      相关资源
      最近更新 更多