用LASSO执行LDA

时间:2019-02-04 18:35:08

标签: r statistics

我正在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")

0 个答案:

没有答案