Построение прямой линии границы в 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)

Ответы на вопрос(1)

Ваш ответ на вопрос