![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]() ![]()
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 76 Регистрация: 27.04.2014 Пользователь №: 26375 ![]() |
Подскажите, пожалуйста, кто чем может)). Я делаю логистическую регрессию. Все предикторы биноминальные (0,1). Y-зависимая переменная(бинарная 0 - нет события(это хорошо), 1-есть событие(это плохо)). Дело в том, что нули к нулям, он мало мальски правильно соотносит, но 50% единиц(плохих) у него попадают к нулям(хорошим).Т.е. неверное определение. Как понять, почему так происходит и что сделать, чтобы улучшить классификацию, хотя бы до 85% точности?
Доп. инфо, я гуглила, и нашла метод Feature Selection и его реализацию в R Boruta. Выделила 6 предикторов, думала счастье рядом, сейчас построила модель, но не тут-то было, классификация такая же некачественная:(( Может что-то не то сделала?(( Что делать? (с)(Чернышевский Н.Г.)
Прикрепленные файлы
|
|
![]() |
![]() |
![]() |
![]()
Сообщение
#2
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
Подскажите, пожалуйста, кто чем может)). Я делаю логистическую регрессию. Все предикторы биноминальные (0,1). Y-зависимая переменная(бинарная 0 - нет события(это хорошо), 1-есть событие(это плохо)). Дело в том, что нули к нулям, он мало мальски правильно соотносит, но 50% единиц(плохих) у него попадают к нулям(хорошим).Т.е. неверное определение. Как понять, почему так происходит и что сделать, чтобы улучшить классификацию, хотя бы до 85% точности? Доп. инфо, я гуглила, и нашла метод Feature Selection и его реализацию в R Boruta. Выделила 6 предикторов , думала счастье рядом ,сейчас построила модель, но не тут-то было, классификация такая же некачественная:(( Может что-то не то сделала?(( Что делать? (с)(Чернышевский Н.Г.) 1. Откуда "дровишки"? В смысле "датасет"? 2. Код df <- read.csv2("data.csv") df <- data.frame(lapply(df, factor)) > randomForest(Y~., df) Call: randomForest(formula = Y ~ ., data = df) Type of random forest: classification Number of trees: 500 No. of variables tried at each split: 4 OOB estimate of error rate: 38.47% Confusion matrix: 0 1 class.error 0 1305 232 0.1509434 1 602 29 0.9540412 Выборка несбалансирована. Если такое соотношение исходов в генсовокупности, то и пусть так будет. Но если это просто "так сложилось", необходимо получить модель для 1:1 и потом сделать трешоилд оптимальный для генсовокупности в которой модель будет применяться. Код > randomForest(Y~.,df, sampsize=c("0"=500, "1"=500)) Call: randomForest(formula = Y ~ ., data = df, sampsize = c(`0` = 500, `1` = 500)) Type of random forest: classification Number of trees: 500 No. of variables tried at each split: 4 OOB estimate of error rate: 31.83% Confusion matrix: 0 1 class.error 0 907 630 0.40988939 1 60 571 0.09508716 Если балансируем выборку, то видим "забавный" результат. Один из "исходов" зависимой переменной просто практически случаен. Ну а Boruta честно улучшает различение неслучайного исхода зависимой переменной. На ~5 случаев. Код > randomForest(getConfirmedFormula(res.boruta),df, sampsize=c("0"=500, "1"=500))
Call: randomForest(formula = getConfirmedFormula(res.boruta), data = df, sampsize = c(`0` = 500, `1` = 500)) Type of random forest: classification Number of trees: 500 No. of variables tried at each split: 3 OOB estimate of error rate: 31.78% Confusion matrix: 0 1 class.error 0 904 633 0.41184125 1 56 575 0.08874802 Сообщение отредактировал p2004r - 28.06.2017 - 08:08 ![]() |
|
![]() |
![]() |
![]() ![]() |