我正在r中使用penalizedLDA软件包对LASSO执行LDA。 它给出了此错误。
lambda * sum(abs(v))中的错误:二进制运算符的非数字参数
我正在使用UCI机器学习存储库中的sampbase数据集。(我已将标题添加到列中,并在适当的地方将列返回到间隔[0,1]。)
library(penalizedLDA)
library(caTools)
data = read.csv("spambase.csv",header = TRUE)
new_data = data/100
new_data[,c(55,56,57,58)] = data[,c(55,56,57,58)]
new_data[,58][new_data[,58] == 0] = 2
new_data[,58]= factor(new_data[,58])
# Splitting dataset into Training set and Test set
#set.seed(seeds)
library(caTools)
split = sample.split(new_data$factor, SplitRatio = 0.7)
training_set = subset(new_data, split == TRUE)
test_set = subset(new_data, split == FALSE)
#scale data
training_set[-58] = scale(training_set[,-58])
test_set[-58] = scale(test_set[,-58])
#Sparse linear discriminant Analysis
classifier = PenalizedLDA( x = training_set[,-58], y =training_set[,58],K = 1,lambda = "standard")