Бинарная классификация

Имя входного файла: data.csv
Код для обработки данных:
Деление на обучающую/тестовую выборку: random
Условие попадания в обучающую выборку: t<0
Инициализация (seed) деления на выборки: 123
Доля обучающей выборки при делении: 0.7
Формула: y~.
Модель предсказывает: probability
Порог на вероятность для классификации: 0.5
Инициализация (seed) случайного леса: 456
Базовый методЛогистическая регрессияРегрессионное деревоСлучайный лес
library(ROCR)
library(caTools)

# загрузка данных
data=read.csv('data.csv')
# деление данных на обучающую/тестовую выборку
set.seed(123)
split=sample.split(data$y,SplitRatio=0.7)
data.train=data[split,]
data.test=data[!split,]
# построение модели
data.model=mean(data.train$y)
# предсказание вероятностей на обучающей выборке
data.train.prob=rep_len(data.model,nrow(data.train))
# предсказание классов на обучающей выборке
data.train.class=+(data.train.prob>=0.5)
# точность (accuracy) на обучающей выборке
data.train.acc=mean(data.train$y==data.train.class)
# чувствительность на обучающей выборке
data.train.sen=mean(data.train.class[data.train$y==1]==1)
# специфичность на обучающей выборке
data.train.spe=mean(data.train.class[data.train$y==0]==0)
# AUC на обучающей выборке
data.train.auc=performance(
	prediction(data.train.prob,data.train$y),'auc'
)@y.values[[1]]
# предсказание вероятностей на тестовой выборке
data.test.prob=rep_len(data.model,nrow(data.test))
# предсказание классов на тестовой выборке
data.test.class=+(data.test.prob>=0.5)
# точность (accuracy) на тестовой выборке
data.test.acc=mean(data.test$y==data.test.class)
# чувствительность на тестовой выборке
data.test.sen=mean(data.test.class[data.test$y==1]==1)
# специфичность на тестовой выборке
data.test.spe=mean(data.test.class[data.test$y==0]==0)
# AUC на тестовой выборке
data.test.auc=performance(
	prediction(data.test.prob,data.test$y),'auc'
)@y.values[[1]]
library(ROCR)
library(caTools)

# загрузка данных
data=read.csv('data.csv')
# деление данных на обучающую/тестовую выборку
set.seed(123)
split=sample.split(data$y,SplitRatio=0.7)
data.train=data[split,]
data.test=data[!split,]
# построение модели
data.model=glm(y~.,data=data.train,family=binomial)
# предсказание вероятностей на обучающей выборке
data.train.prob=predict(data.model,type='response')
# предсказание классов на обучающей выборке
data.train.class=+(data.train.prob>=0.5)
# точность (accuracy) на обучающей выборке
data.train.acc=mean(data.train$y==data.train.class)
# чувствительность на обучающей выборке
data.train.sen=mean(data.train.class[data.train$y==1]==1)
# специфичность на обучающей выборке
data.train.spe=mean(data.train.class[data.train$y==0]==0)
# AUC на обучающей выборке
data.train.auc=performance(
	prediction(data.train.prob,data.train$y),'auc'
)@y.values[[1]]
# предсказание вероятностей на тестовой выборке
data.test.prob=predict(data.model,newdata=data.test,type='response')
# предсказание классов на тестовой выборке
data.test.class=+(data.test.prob>=0.5)
# точность (accuracy) на тестовой выборке
data.test.acc=mean(data.test$y==data.test.class)
# чувствительность на тестовой выборке
data.test.sen=mean(data.test.class[data.test$y==1]==1)
# специфичность на тестовой выборке
data.test.spe=mean(data.test.class[data.test$y==0]==0)
# AUC на тестовой выборке
data.test.auc=performance(
	prediction(data.test.prob,data.test$y),'auc'
)@y.values[[1]]
library(ROCR)
library(caTools)
library(rpart)

# загрузка данных
data=read.csv('data.csv')
# деление данных на обучающую/тестовую выборку
set.seed(123)
split=sample.split(data$y,SplitRatio=0.7)
data.train=data[split,]
data.test=data[!split,]
# построение модели
data.model=rpart(y~.,data=data.train)
# предсказание вероятностей на обучающей выборке
data.train.prob=predict(data.model)
# предсказание классов на обучающей выборке
data.train.class=+(data.train.prob>=0.5)
# точность (accuracy) на обучающей выборке
data.train.acc=mean(data.train$y==data.train.class)
# чувствительность на обучающей выборке
data.train.sen=mean(data.train.class[data.train$y==1]==1)
# специфичность на обучающей выборке
data.train.spe=mean(data.train.class[data.train$y==0]==0)
# AUC на обучающей выборке
data.train.auc=performance(
	prediction(data.train.prob,data.train$y),'auc'
)@y.values[[1]]
# предсказание вероятностей на тестовой выборке
data.test.prob=predict(data.model,newdata=data.test)
# предсказание классов на тестовой выборке
data.test.class=+(data.test.prob>=0.5)
# точность (accuracy) на тестовой выборке
data.test.acc=mean(data.test$y==data.test.class)
# чувствительность на тестовой выборке
data.test.sen=mean(data.test.class[data.test$y==1]==1)
# специфичность на тестовой выборке
data.test.spe=mean(data.test.class[data.test$y==0]==0)
# AUC на тестовой выборке
data.test.auc=performance(
	prediction(data.test.prob,data.test$y),'auc'
)@y.values[[1]]
library(ROCR)
library(caTools)
library(randomForest)

# загрузка данных
data=read.csv('data.csv')
# деление данных на обучающую/тестовую выборку
set.seed(123)
split=sample.split(data$y,SplitRatio=0.7)
data.train=data[split,]
data.test=data[!split,]
# построение модели
set.seed(456)
data.model=randomForest(y~.,data=data.train)
# предсказание вероятностей на обучающей выборке
data.train.prob=predict(data.model)
# предсказание классов на обучающей выборке
data.train.class=+(data.train.prob>=0.5)
# точность (accuracy) на обучающей выборке
data.train.acc=mean(data.train$y==data.train.class)
# чувствительность на обучающей выборке
data.train.sen=mean(data.train.class[data.train$y==1]==1)
# специфичность на обучающей выборке
data.train.spe=mean(data.train.class[data.train$y==0]==0)
# AUC на обучающей выборке
data.train.auc=performance(
	prediction(data.train.prob,data.train$y),'auc'
)@y.values[[1]]
# предсказание вероятностей на тестовой выборке
data.test.prob=predict(data.model,newdata=data.test)
# предсказание классов на тестовой выборке
data.test.class=+(data.test.prob>=0.5)
# точность (accuracy) на тестовой выборке
data.test.acc=mean(data.test$y==data.test.class)
# чувствительность на тестовой выборке
data.test.sen=mean(data.test.class[data.test$y==1]==1)
# специфичность на тестовой выборке
data.test.spe=mean(data.test.class[data.test$y==0]==0)
# AUC на тестовой выборке
data.test.auc=performance(
	prediction(data.test.prob,data.test$y),'auc'
)@y.values[[1]]