Manuelles Zeichnen einer geraden Grenzlinie in Perceptron

[Das Material gehört zumCoursera Machine Learning Kurs von Andrew Ng]

Ich habe eine der Übungen in R (ich hätte mich für Python entscheiden können - für die Frage nicht unbedingt erforderlich) mit einer anderen Methodik erstellt und die folgende Darstellung mit der Grenzentscheidungslinie erhalten:

ie roten Punkte wurden in ein College aufgenommen, der Rest nich

Die Frage ist nicht, wie man die Linie auf den Plot bekommt, sondern warum die folgende Zeile im Code, der an R aus den Kursmaterialien angepasst ist, funktioniert:

y = c((-1/coefs[3]) * (coefs[2] * x + coefs[1]))

So ist es in Wirklichkeit, nach der Mathematik zu fragen, die diesem Befehl zugrunde liegt. Die Koeffizienten entsprechen den logistischen Regressionskoeffizienten.

Hier ist der Datensatz, und hier ist der gesamte Code:

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)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage