Мне бы хотелось, чтобы столько алгоритмов выполняли ту же задачу, что и логистическая регрессия. Это алгоритмы / модели, которые могут дать прогноз двоичного ответа (Y) с некоторой пояснительной переменной (X).
Я был бы рад, если после того, как вы назовете алгоритм, если вы также покажете, как реализовать его в R. Вот код, который можно обновить с помощью других моделей:
set.seed(55)
n <- 100
x <- c(rnorm(n), 1+rnorm(n))
y <- c(rep(0,n), rep(1,n))
r <- glm(y~x, family=binomial)
plot(y~x)
abline(lm(y~x), col='red', lty=2)
xx <- seq(min(x), max(x), length=100)
yy <- predict(r, data.frame(x=xx), type='response')
lines(xx, yy, col='blue', lwd=5, lty=2)
title(main='Logistic regression with the "glm" function')
r
regression
logistic
classification
predictive-models
Tal Galili
источник
источник
Ответы:
Сейчас популярны randomForest и gbm (в литературе по машинному обучению называемые MART или Gradient Boosting), rpart для простых деревьев. Также популярен bayesglm, который использует MAP с априорами для регуляризации.
источник
На самом деле, это зависит от того, что вы хотите получить. Если вы выполняете логистическую регрессию только для прогнозов, вы можете использовать любой контролируемый метод классификации, подходящий для ваших данных. Другая возможность: дискриминантный анализ (lda () и qda () из пакета MASS)
С другой стороны, если вам нужны доверительные интервалы вокруг ваших прогнозов или стандартных ошибок в ваших оценках, большинство алгоритмов классификации вам не помогут. Вы можете использовать обобщенные аддитивные (смешанные) модели, для которых доступно несколько пакетов. Я часто использую пакет mgcv Саймона Вуда. Обобщенные аддитивные модели обеспечивают большую гибкость, чем логистическая регрессия, поскольку вы можете использовать сплайны для моделирования ваших предикторов.
Есть еще много чего сделать:
...
Я бы порекомендовал книгу Саймона Вуда о обобщенных аддитивных моделях
источник
Я согласен с Джо и добавил бы:
В принципе можно использовать любой метод классификации, хотя это будет зависеть от данных / ситуации. Например, вы также можете использовать SVM, возможно, с популярной моделью C-SVM. Вот пример из kernlab с использованием функции ядра с радиальной базой:
источник
Существует около 100 моделей классификации и регрессии, которые можно тренировать с помощью пакета карет . Любая из классификационных моделей будет для вас вариантом (в отличие от регрессионных моделей, которые требуют постоянного ответа). Например, чтобы обучить случайный лес:
Смотрите полный перечень доступных моделей, см. Учебную виньетку модели карет, которая входит в комплект поставки Он разделен на модели двойного использования и классификации (обе из которых вы можете использовать) и только регрессионные (которые вы не можете). Caret автоматически подберет параметры для выбранной вами модели.
источник
Наивный байесовский метод - хороший простой метод обучения данных, чтобы найти двоичный ответ.
источник
Есть два варианта логистической регрессии, которые еще не обрисованы в общих чертах. Во-первых, логистическая регрессия оценивает вероятности, используя логистическую функцию, которая является кумулятивным логистическим распределением (также известным как сигмоид). Вы также можете оценить вероятности, используя функции, полученные из других распределений. Наиболее распространенным способом помимо логистической регрессии является регрессия пробита, которая получается из нормального распределения. Для более детального обсуждения различий между пробитами и логитами, пожалуйста, посетите следующий сайт.
Разница между логитовой и пробитной моделями
Второй вариант указывает на недельную логистическую функцию, которую вы реализовали. Если у вас небольшой размер выборки и / или отсутствуют значения, логистическая функция не рекомендуется. Следовательно, точная логистическая регрессия - лучшая модель. Логарифмические шансы на результат моделируются как линейная комбинация переменных предиктора.
Кроме того, есть и другие альтернативы, такие как:
Последнее замечание: логистическая регрессия - это то же самое, что небольшая нейронная сеть без скрытых слоев и только одна точка в последнем слое. Поэтому вы можете использовать реализации нейронных сетевых пакетов, таких как
nnet
в R.Редактировать:
Несколько недель спустя я понял, что есть также алгоритм Виннов и Перцептрон . Оба являются классификаторами, которые работают также для классификации на две группы, но за последние 15 лет они потеряли популярность.
источник