LDA 分析,尽管已定义但未在数据框中找到对象
LDA analysis, not finding object in data frame despite it being defined
正在对 ISLR 库中的某些数据集进行 LDA 分析,
我将另一列定义为“犯罪”,我通过 glm() 运行 分析并再次使用 lda 运行 它,但是它没有找到犯罪变量列,这很奇怪,因为它是相同的火车数据集我用过,这是我的代码
Library(ISLR)
data(Boston)
Boston
nrow(Boston)
ncol(Boston)
colnames(Boston)
summary(Boston)
Boston$crime<-ifelse(Boston$crim>median(Boston$crim),1,0)
split_size=0.7
sample_size=floor(split_size*nrow(Boston))
set.seed(123)
train_indices<-sample(seq_len(nrow(Boston)),size=sample_size)
boston.train<-Boston[train_indices,]
boston.test<-Boston[-train_indices,]
summary(boston.train)
summary(boston.test)
boston.lda<-lda(crime~.,abs(-crime-crim),data=boston.train)
lda.pred<-predict(boston.lda,boston.test)
boston.train
它找不到 crime
因为 lda
期待 data
你提供它 abs(-crime-crim)
abs(-crime-crim)
在 lda
调用中应该做什么?如果你只是删除它,调用将有效。
顺便说一句,波士顿数据集在MASS库中,不在ISLR库中。
正在对 ISLR 库中的某些数据集进行 LDA 分析, 我将另一列定义为“犯罪”,我通过 glm() 运行 分析并再次使用 lda 运行 它,但是它没有找到犯罪变量列,这很奇怪,因为它是相同的火车数据集我用过,这是我的代码
Library(ISLR)
data(Boston)
Boston
nrow(Boston)
ncol(Boston)
colnames(Boston)
summary(Boston)
Boston$crime<-ifelse(Boston$crim>median(Boston$crim),1,0)
split_size=0.7
sample_size=floor(split_size*nrow(Boston))
set.seed(123)
train_indices<-sample(seq_len(nrow(Boston)),size=sample_size)
boston.train<-Boston[train_indices,]
boston.test<-Boston[-train_indices,]
summary(boston.train)
summary(boston.test)
boston.lda<-lda(crime~.,abs(-crime-crim),data=boston.train)
lda.pred<-predict(boston.lda,boston.test)
boston.train
它找不到 crime
因为 lda
期待 data
你提供它 abs(-crime-crim)
abs(-crime-crim)
在 lda
调用中应该做什么?如果你只是删除它,调用将有效。
顺便说一句,波士顿数据集在MASS库中,不在ISLR库中。