R 中神经网络 (NeuralNet) 的单值精度
Single Value Accuracy for Neural Network (NeuralNet) in R
我有一个多层神经网络,它使用数据库中的两个变量(酒精和 Malic.Acid)
我的代码
#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)
绘制神经网络
并打印出预测结果
最后一部分是 'Calculate the Accuracy',我不确定我需要从这里去哪里?问团队他们说我正在寻找一个单一的值来显示我的神经网络的准确性
不确定我是否需要混淆矩阵?或如何呈现单个准确度分数
我看不到你的数据,但我假设这是一个分类问题(你预测的是二元结果),你上面显示的预测结果是由你的神经网络模型产生的概率。
下一步是对这些概率应用决策阈值。即它们中的哪些应该是 1,哪些应该是 0。例如您可以保持 0:1 的比率与训练数据中的比率相同。请注意,将决策应用于概率不属于建模过程。
对测试数据中的每一行进行二元分类后,您可以将这些预测分类与实际分类进行比较。这可以以混淆矩阵的形式完成。在分类问题中,准确率定义为正确预测的数量除以预测总数。
请注意,准确性通常不是模型性能的一个很好的指标,尤其是对于不平衡的数据集。最好根据模型产生的概率而不是决策过程中的分类来评估模型。例如考虑使用 Brier 分数作为替代方法。
我有一个多层神经网络,它使用数据库中的两个变量(酒精和 Malic.Acid)
我的代码
#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)
绘制神经网络
并打印出预测结果
最后一部分是 'Calculate the Accuracy',我不确定我需要从这里去哪里?问团队他们说我正在寻找一个单一的值来显示我的神经网络的准确性
不确定我是否需要混淆矩阵?或如何呈现单个准确度分数
我看不到你的数据,但我假设这是一个分类问题(你预测的是二元结果),你上面显示的预测结果是由你的神经网络模型产生的概率。
下一步是对这些概率应用决策阈值。即它们中的哪些应该是 1,哪些应该是 0。例如您可以保持 0:1 的比率与训练数据中的比率相同。请注意,将决策应用于概率不属于建模过程。
对测试数据中的每一行进行二元分类后,您可以将这些预测分类与实际分类进行比较。这可以以混淆矩阵的形式完成。在分类问题中,准确率定义为正确预测的数量除以预测总数。
请注意,准确性通常不是模型性能的一个很好的指标,尤其是对于不平衡的数据集。最好根据模型产生的概率而不是决策过程中的分类来评估模型。例如考虑使用 Brier 分数作为替代方法。