Построение прямой линии границы в Perceptron вручную
[Материал принадлежитКурс машинного обучения курс Эндрю Нг]
Я получил одно из упражнений для работы в R (я мог бы выбрать Python - не обязательно для вопроса), используя другую методологию, и получил следующий график с линией принятия решения о границе:
Красные точки были допущены в колледж, а остальные нет.
Вопрос не в том, как получить линию на графике, а в том, почему работает следующая строка в коде, адаптированном к R из материалов курса:
y = c((-1/coefs[3]) * (coefs[2] * x + coefs[1]))
Так что в действительности это вопрос о математике, лежащей в основе этой команды. Коэффициенты соответствуют коэффициентам логистической регрессии.
Вот набор данныхи вот весь код:
dat = read.csv("perceptron.txt", header=F)
is.data.frame(dat)
colnames(dat) = c("test1","test2","y")
head(dat)
plot(test2 ~ test1, col = as.factor(y), pch = 20, data=dat)
fit = glm(y ~ test1 + test2, family = "binomial", data = dat)
coefs = coef(fit)
(x = c(min(dat[,1])-2, max(dat[,1])+2))
(y = c((-1/coefs[3]) * (coefs[2] * x + coefs[1])))
lines(x, y)