2016-10-10 9 views
0

darch()를 사용하여 모델을 비선형 회귀 분석에 적합 시키려고합니다. 내가 예측의 값을 얻을 수하려고 할 때 그것이 내가 기다리고 값처럼 보이지 않는, 그러나R - darch() 및 predict()를 사용하여 모델을 비선형 회귀에 맞추는 방법?

library(darch) 

x = seq(-10, 10, 0.2) 

e = function(x) { 
    return(rnorm(n = length(x), 0, sqrt(0.1))) 
} 

y = function(x) { 
    return(0.1*x**2 + sin(3*x)) 
} 

f = function(x) { 
    return(y(x)+e(x)) 
} 

plot (x, y(x), type = 'l') 
points (x,f(x), col = 'blue') 
df=data.frame(x,f(x)) 

model = darch(x, f(x), bp.learnRate = 0.01, darch.isClass = FALSE, layers = c(1,3,10,3,1)) 


y_pred = rep(NA, length = length(x)) 
for (i in 1:length(x)){ 
    y_pred[i] = predict(model, newdata=x[i]) 
} 

:

y_pred 

[1] 0.9990583 0.9992179 0.9991225 0.9991374 0.9983996 0.9992237 0.9984544 
[8] 0.9989182 0.9990836 0.9992311 0.9992324 0.9987781 0.9984507 0.9988732 
[15] 0.9986921 0.9992085 0.9991967 0.9984051 0.9991378 0.9983898 0.9992204 
[22] 0.9990966 0.9991587 0.9991696 0.9986069 0.9984612 0.9991242 0.9985350 
[29] 0.9992006 0.9987659 0.9984619 0.9991764 0.9991554 0.9984633 0.9984696 
[36] 0.9984600 0.9986129 0.9989958 0.9985773 0.9984808 0.9984107 0.9983901 
[43] 0.9985983 0.9991682 0.9985102 0.9985920 0.9984892 0.9991399 0.9992277 
[50] 0.9992287 0.9989034 0.9984764 0.9991734 0.9983782 0.9990186 0.9990780 
[57] 0.9985477 0.9986955 0.9991586 0.9985124 0.9991473 0.9984565 0.9991716 
[64] 0.9991440 0.9985235 0.9990681 0.9990596 0.9991788 0.9991864 0.9984982 
[71] 0.9990144 0.9991828 0.9991570 0.9984318 0.9983808 0.9991860 0.9988372 
[78] 0.9991675 0.9989534 0.9984602 0.9985535 0.9984757 0.9992286 0.9988527 
[85] 0.9991903 0.9984676 0.9992313 0.9990943 0.9991951 0.9985524 0.9992317 
[92] 0.9991656 0.9991985 0.9983903 0.9992237 0.9985506 0.9992338 0.9990685 
[99] 0.9987815 0.9990695 
다음

는 이미 수행 한 코드입니다

darch()에 의해 생성 된 모델을 플롯 할 수 있도록 내 스크립트가 새 Y 좌표를 반환하고 내 분포가 맞는지 확인하십시오.

건배!

+0

기다리는 값은 무엇입니까? 당신이 기대하는 바를 정확히 알 수 있습니까? – MrFlick

+0

나는 그가 회귀 값을 기대하고 있다고 생각한다. 음, 출력 레이어는 일반적으로 상대 가중치를 반환한다는 것을 알 수 있습니다. 따라서'preProc.targets = T' ('? darch' 참조) 매개 변수를 설정하면'df'에 대한 회귀선을 얻어야합니다. – Drey

+0

안녕하세요. 새로운 Y 좌표를 반환하여 내 포인트 집합에 맞는 모델을 darch()에서 플롯합니다. –

답변

0

귀하의 질문은 매우 흥미 롭습니다. 코드에 문제가 없습니다. 그러나 더 넓은 창을 사용하고 샘플 밖의 데이터 집합을 테스트하려고 시도 했습니까?

+0

안녕 mg64. 예 나는 당신이 조언 한 두 가지를 시도했습니다. 건배! –