2016-06-24 2 views
0

직선 경계선 음모를 꾸미고 나는 (질문에 필수적이지 내가 파이썬을 선택했다 있었다) R에서 일하기 운동 중 하나를 가지고수동 퍼셉트론

[재료는 Coursera Machine Learning course by Andrew Ng에 속하는] , 그 위에 경계 결정 라인에 다음과 같은 줄거리를 가지고 : 나머지는하지 동안

enter image description here

붉은 점은, 대학에 입학했다. 그래서

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

가된다

문제는 어떻게-하는 플롯 라인을 얻을 것이 아니라 왜이 교재에서 R에 적응 코드의 다음 줄이 작동하지 않습니다이다 실제로이 명령을 뒷받침하는 수학에 관해 묻습니다. 계수는 로지스틱 회귀 계수에 해당합니다. 플롯이기 때문에,

0 = theta_0 + theta_1 x_1 + theta_2 x_2 

따라서 :

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

대답은 실제로 매우 간단하다 :

경계가에있다

Here is the dataset

, 여기에 전체 코드입니다 x_2x_1 인 경우 x_1을 따라 극단적 인 두 점을 선택하고 예상 값은결정 경계에서 10 :

x_2 = (- 1/theta_2) * (theta_0 + theta_1 x_1)