[该材料属于Coursera Machine Learning course by Andrew Ng]
我得到了一个在R中工作的练习(我可以选择使用Python - 对于这个问题不是必不可少的),使用不同的方法,并使用边界决策线得到以下情节:
红点被录取进了大学,其余则没有。
问题不在于如何在剧情中获得这条线,而是为什么代码中的以下行适用于课程材料中的R:
y = c((-1/coefs[3]) * (coefs[2] * x + coefs[1]))
所以实际上是在询问支持这个命令的数学。系数对应于逻辑回归系数。
Here is the dataset,这是整个代码:
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)
答案 0 :(得分:0)
答案实际上非常简单:
边界位于:
0 = theta_0 + theta_1 x_1 + theta_2 x_2
因此,由于情节是x_2
对x_1
,我们选择x_1
的两个极值点并在决策边界计算预期的x_2
:
x_2 = (- 1 / theta_2) * (theta_0 + theta_1 x_1)