Plotagem manual de linhas de contorno retas no Perceptron
[O material pertence aoCurso Coursera Machine Learning de Andrew Ng]
Eu fiz um dos exercícios para trabalhar em R (eu poderia ter optado pelo Python - não essencial para a pergunta), usando uma metodologia diferente, e obtive o seguinte gráfico com a linha de decisão do limite:
Os pontos vermelhos foram admitidos em uma faculdade, enquanto o resto não.
A questão não é como obter a linha no gráfico, mas por que a seguinte linha no código adaptada a R a partir dos materiais do curso funciona:
y = c((-1/coefs[3]) * (coefs[2] * x + coefs[1]))
Então, na realidade, é perguntar sobre a matemática subjacente a este comando. Os coeficientes correspondem aos coeficientes de regressão logística.
Aqui está o conjunto de dadose aqui está o código inteiro:
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)