如何在R中使用神经网络预测值?

时间:2019-11-15 06:41:38

标签: r machine-learning neural-network

我试图根据给定的时间,区域类型(0,1,2,3),是否在工业区域(0,1)以及该区域中是否有主要道路来预测AQI值,1)。我有350,000对数据,并使用下面的代码训练了神经网络。那么,在给定时间,区域类型,区域和rd输入的情况下,如何使用它来预测新的AQI?还是我不了解神经网络的目的?谢谢!

DECLARE length INT64;
BEGIN
  SET length = 1000;
  WHILE (length > 0) DO
    SET length = length -1;
  END WHILE;
END;

1 个答案:

答案 0 :(得分:1)

您有一个多类预测。如@ user2974951所述,请使用预测。在下面,我补充说明您必须解释结果。需要注意的是,如果您的预测变量为0或1,则对其进行归一化将不会更改任何内容(请参见函数归一化)。

library(neuralnet)
set.seed(1111)

# training /testing data
trn <- sample(1:nrow(iris),100)
trainData <- iris[trn,]
testData <- iris[-trn,]

# before you fit, check what are the levels of the labels
# in your case should be 0,1,2,3
levels(iris$Species)
1] "setosa"     "versicolor" "virginica" 

# fit nn
nn <- neuralnet(Species ~ Petal.Length + Petal.Width,trainData , linear.output = FALSE)
# predictions
pred <- predict(nn,testData)
head(pred)
> head(pred)
   [,1]       [,2]         [,3]
3     1 0.10672416 1.855968e-61
5     1 0.10944693 1.214708e-60
8     1 0.11238864 8.835106e-60
9     1 0.10944693 1.214708e-60

从标题pred中可以看到,这些是概率,第一列是setosa(物种的第一级)概率,第二列是杂色,等等。每行都是trainData的观察值

我们可以取回标签,并做一个混淆矩阵

pred_labels <- levels(testData$Species)[apply(pred,1,which.max)]
actual_labels <- testData$Species

table(pred_labels,actual_labels)
            actual_labels
pred_labels  setosa versicolor virginica
  setosa         16          0         0
  versicolor      0         18         0
  virginica       0          2        14