Итак, я создал базовую модель логистической регрессии для R и не пытаюсь провести перекрестную проверку с использованием перекрестной проверки в k-кратном порядке.Я новичок в R и, следовательно, борюсь с тем, как это сделать .. любая помощь будет принята с благодарностью.
Кроме того, я изо всех сил пытаюсь понять выходную причину, которую я предполагал, если я делаю 10-кратное увеличение, тогда будет 10 различных значений, но это не появляется?Пожалуйста, помогите тебе!
Это полная логистическая модель
library(caret)
library(mlbench)
library(ggplot2)
library(caTools)
library(boot)
my_data3 <- read.csv('C:/Users/Magician/Desktop/E-sports/R files/AvangarStats.csv', header=TRUE, stringsAsFactors = FALSE)
my_data3
#converting Map names to the calculated win probability
my_data3[my_data3$Map == "Dust2", "Map"] <- 0.631579
my_data3[my_data3$Map == "Inferno", "Map"] <- 0.630435
my_data3[my_data3$Map == "Mirage", "Map"] <- 0.627907
my_data3[my_data3$Map == "Nuke", "Map"] <- 0
my_data3[my_data3$Map == "Overpass", "Map"] <- 0.514286
my_data3[my_data3$Map == "Train", "Map"] <- 0.53125
my_data3[my_data3$Map == "Vertigo", "Map"] <- 0.705882
my_data3[my_data3$Map == "Cache", "Map"] <- 0.555556
#converting W and L to 1 and 0
my_data3$WinorLoss <- ifelse(my_data3$WinorLoss == "W", 1,0)
my_data3$WinorLoss <- factor(my_data3$WinorLoss, levels = c(0,1))
#converting Map to numeric characters
my_data3$Map <- as.numeric(my_data3$Map)
#Logistic regression model
glm.fit <- glm(WinorLoss ~ Map, family=binomial, data=my_data3)
summary(glm.fit)
#make predictions on the training data
glm.probs <- predict(glm.fit, type="response")
glm.pred <- ifelse(glm.probs>0.5, 1, 0)
attach(my_data3)
table(glm.pred,WinorLoss)
mean(glm.pred==WinorLoss)
#splitting the data for trying and testing
Split <- sample.split(my_data3, SplitRatio = 0.75)
traindata <- subset(my_data3, Split == "TRUE")
testdata <- subset(my_data3, Split == "FALSE")
glm.fit <- glm(WinorLoss ~ Map,
data=traindata,
family="binomial")
glm.probs <- predict(glm.fit,
newdata=testdata,
type="response")
glm.pred <- ifelse(glm.probs > 0.5, "1", "0")
table(glm.pred, testdata$WinorLoss)
mean(glm.pred == testdata$WinorLoss)
summary(glm.fit)
#changing the x axis to 0-100%, min map win prob - max map win prob
newdat <- data.frame(Map = seq(min(traindata$Map), max(traindata$Map), len=100))
newdat$WinorLoss = predict(glm.fit, newdata=newdat, type="response")
ggplot(newdat, aes(x=Map,y=WinorLoss))+
geom_point() +
geom_smooth(method = "glm",
method.args = list(family="binomial"),
fullrange = TRUE,
se = FALSE) +
xlim(0,1) +
ylim(0,1)