В настоящее время я изучаю логистическую регрессию и классификацию LDA (линейный дискриминантный анализ).Я пытаюсь генерировать данные по-разному, чтобы изучить логистическую регрессию и поведение LDA.
Вот визуализация данных двумерных предикторов с классом, нанесенным на график цветом:
Вот мой код:
library(ggplot2)
library(MASS)
set.seed(1)
a <- mvrnorm(n = 1000, mu = c(0,0), Sigma = matrix(c(0.4,0,0,0.4), nrow = 2, ncol = 2))
b <- mvrnorm(n = 1000, mu = c(0,0), Sigma = matrix(c(10,0,0,10), nrow = 2, ncol =2 ))
#I want to make sure b1 separated from a
b1 <- b[sqrt(b[,1]^2 + b[,2]^2) > 4,]
df <- as.data.frame(rbind(a,b1))
names(df) <- c('x','y')
labelA <- rep('A', nrow(a))
labelB <- rep('B', nrow(b1))
#Put the label column to the data frame
df$labs <- c(labelA,labelB)
ggplot(df, aes(x = x, y = y, col = labs)) + geom_point()
prd <- glm(as.factor(labs) ~ x + y, family = binomial('probit'), data = df)
prd_score <- predict(prd, type = 'response')
plot(roc(df$labs,prd_score))
auc(roc(df$labs,prd_score))
И это график кривой roc
Это действительно расстраивает, потому что я не смог найти ошибку в своем коде, которая порождает такие проблемы.Может ли кто-нибудь помочь мне указать на ошибку в моем коде, которая порождает этот странный вид ROC, или на любое объяснение, почему ROC может стать таким странным?
Примечание: пожалуйста, предположите, что сгенерированные данные, указанные выше, являются данными обучения, и я хочу снова предсказать данные обучения.