R-概率神经网络-Iris数据集

R-概率神经网络-Iris数据集,r,R,我有一个R iris数据集,用于PNN。这3个物种从0级到3级被重新编码如下:0为刚毛,1为杂色,2为维吉尼亚。训练集是75% 问题1。我不理解函数pred\u pnn,如果有人擅长R,也许你可以解释一下它是如何工作的 问题2。测试集或预测的输出如下所示,我不理解输出,因为它应该接近0,1,2 data = read.csc("c:/iris-recoded.csv" , header = T) size = nrow(data) length = ncol(data) index <-

我有一个R iris数据集,用于PNN。这3个物种从0级到3级被重新编码如下:0为刚毛,1为杂色,2为维吉尼亚。训练集是75%

问题1。我不理解函数
pred\u pnn
,如果有人擅长R,也许你可以解释一下它是如何工作的

问题2。测试集或预测的输出如下所示,我不理解输出,因为它应该接近0,1,2

data = read.csc("c:/iris-recoded.csv" , header = T)
size = nrow(data)
length = ncol(data)
index <- 1:size
positions <- sample(index, trunc(size * 0.75))

training <- data[positions,]
testing <- data[-positions,1:length-1]
result = data[-positions,]
result$actual = result[,length]
result$predict = -1
nn1 <- smooth(learn(training), sigma = 0.9)

pred_pnn <- function(x, nn){
  xlst <- split(x, 1:nrow(x))
  pred <- foreach(i = xlst, .combine = rbind) %dopar% {
  data.frame(prob = guess(nn, as.matrix(i))$probabilities[1], row.names =NULL)                  
  }
}

print(pred_pnn(testing, nn1))
             prob
1  1.850818e-03
2  9.820653e-03
3  6.798603e-04
4  7.421435e-03
5  2.168817e-03
6  3.277354e-03
7  6.541173e-03
8  1.725332e-04
9  2.081845e-03
10 2.491388e-02
11 7.679823e-03
12 1.291811e-03
13 2.197234e-06
14 1.316366e-03
15 1.421219e-05
16 4.639239e-05
17 3.671907e-04
18 1.460001e-04
19 4.382849e-05
20 2.387543e-05
21 1.011196e-05
22 2.719982e-04
23 4.445472e-04
24 1.281762e-04
25 5.931106e-09
26 9.741870e-08
27 9.236434e-09
28 8.384690e-08
29 3.311667e-07
30 6.045306e-11
31 2.949265e-08
32 2.070014e-10
33 8.043735e-06
34 2.136666e-08
35 5.604398e-08
36 2.455841e-07
37 3.445977e-07
38 7.314647e-07
data=read.csc(“c:/iris recocode.csv”,header=T)
大小=nrow(数据)
长度=ncol(数据)

index我假设您使用的是
pnn
包。
?guess
的文档会让我们相信它与
predict
对其他模型的作用类似。换句话说,它可以预测观察结果属于哪一类。所有其他的东西都放在那里记账。为什么你只得到概率?因为编写函数的人是通过提取
guess(x)$probabilities
并只返回它来实现的。如果您查看原始输出,您还将得到隐藏在
$category
列表元素中的预测类。

谢谢。但我真的不确定如何看待原始输出。我试过了,但它看起来不对劲----->猜(nn1,c(1,5))$category[1]“6”>猜(nn1,c(2,5))$category[1]“6.5”>猜(nn1,c(3,5))$category[1]“6.2”@user4745212你能让你的问题重现吗?我对这个软件包没有什么经验,使用具体的数据会更容易。我不确定你所说的可复制性是什么意思。我可以通过电子邮件向您发送数据集。我也是pnn的新手,所以对你没有太多帮助。模拟一些数据(或者加载现有的iris数据集并对其进行适当修改),并在你提供的代码中使用这些数据。可复制意味着我只需将所有内容复制/粘贴到R中,所有内容都可以正常工作。如果需要,我会做一些调整,并粘贴回工作结果。更重要的是,它让您有时间反思您的数据、工作流程和期望的结果。@user4745212您可以阅读有关再现性的更多信息。