我收到错误消息Error in eval(predvars, data, env) : object 'B' not found
,我不知道该怎么做:
nn <- neuralnet(B+M~ area+texture+smoothness, data=cancertrain, hidden=3,
B+M 是两个潜在的值,要么是良性的,要么是恶性的,对判断影响较大的三个属性是面积、纹理和平滑度。我假设我只是错误地完成了函数神经网络中的参数,有人知道吗?这是公共 Google 电子表格中的癌症数据集。
library(neuralnet)
library(ISLR)
library(rpart)
library(rpart.plot)
library(caTools)
library(random)
#setwd("**change to your working directory**")
data <- read.csv("WDBC.csv", header=T)
#head(data)
cancer.dataset <- data
#according to previous models and studies, area, texture, and smoothness are the
#attributes with the highest relevance to the diagnosis of benign or malignant
cancer.dataset$b <- cancer.dataset$Diagnosis == "B"
cancer.dataset$m = cancer.dataset$Diagnosis == "M"
cancer.dataset$area <- cancer.dataset$Diagnosis == "area"
cancer.dataset$texture = cancer.dataset$Diagnosis == "texture"
cancer.dataset$smoothness = cancer.dataset$Diagnosis == "smoothness"
cancerdata <- data.frame(cancer.dataset$Diagnosis, cancer.dataset$texture, cancer.dataset$smoothness, cancer.dataset$area)
cancerdata
train <- sample(x = nrow(cancerdata), size = nrow(cancerdata)*0.5)
train
cancertrain <- cancer.dataset[train,]
cancervalid <- cancer.dataset[-train,]
print(nrow(cancertrain))
print(nrow(cancervalid))
nn <- neuralnet(B+M~ area+texture+smoothness, data=cancertrain, hidden=3,
rep = 2, err.fct = "ce", linear.output = F, lifesign = "minimal", stepmax = 10000000)
这是教授给出的正确示例使用标准 Iris 数据集的样子,我不确定根据这个示例的完成方式是否正确:
iris.dataset$setosa <- iris.dataset$Species=="setosa"
iris.dataset$virginica = iris.dataset$Species == "virginica"
iris.dataset$versicolor = iris.dataset$Species == "versicolor"
train <- sample(x = nrow(iris.dataset), size = nrow(iris)*0.5)
train
iristrain <- iris.dataset[train,]
irisvalid <- iris.dataset[-train,]
print(nrow(iristrain))
print(nrow(irisvalid))
nn <- neuralnet(setosa+versicolor+virginica ~ Sepal.Length + Sepal.Width, data=iristrain, hidden=3,
rep = 2, err.fct = "ce", linear.output = F, lifesign = "minimal", stepmax = 10000000)
plot(nn, rep="best")