2017-03-02 1 views
0
현재 나는 다음과 같은 매개 변수를 사용하여 SVM 함수 호출, 예를 들면, RBF 커널과 SVM 모델을 양성하는 R에 e1071의 라이브러리를 사용하고

:사용자 정의 커널 함수

여기의 질문은 R에서 RBF 커널을 추가로 사용자 지정할 수있는 가능성이 있습니까? 내가 원하는 것은 다음과 같이 원래의 RBF 커널에 추가 계산을 추가하는 것입니다. [! [여기에 이미지 설명을 입력하십시오.] [2]] [2]

Xi와 Xj는 시계열 절대 timestampts 티와 TJ에서 :

어떤 생각을 환영하고 여기 그냥 자신의 솔루션을 기반으로 수식을 편집, @lejlot에서 답변을, 당신은


* 안녕

을 :) 감사 감사입니다 맞아.

denote ai = (xi,ti) and bi = (xi, 1/sqr(g)*ti) 

K(ai, aj) = exp(-g*||xi-xj||^2) exp(-(ti-tj)^2) = 
     = exp(-g*||xi-xj||^2 -(ti-tj)^2) = 
     = exp(-g*||xi-xj||^2 -g(1/sqr(g)*ti-1/sqr(g)*tj)^2) = 
     = exp(-g*(||xi-xj||^2 + (1/sqr(g)*ti-1/sqr(g)*tj)^2)) = 
     = exp(-g*(||xi-xj||^2 + (1/sqr(g)*ti-1/sqr(g)*tj)^2)) = 
     = exp(-g*(||bi-bj||^2)) = RBF(bi, bj)* 

*하지만 여전히 또 다른 질문은 데이터 표현에 ti (1/감마를 곱한 값)를 연결한다고 말했습니까?

X의 행렬은도 4 개와 같은 다음과 같은 기능이 포함되어있는 것으로, 각각의 행은 동일한 베일을 가지고 있기 때문에, 응답 행렬이 될 수있다, 타임 스탬프 값에 관련된

x1 x2 x3 x4 
3 5 6 7 
4 3 2 4 
8 5 2 2 
3 2 1 0 
9 9 3 2 

을 :

t1 t2 t3 t4 
1 1 1 1 
2 2 2 2 
3 3 3 3 
4 4 4 4 
5 5 5 5 

e1071의 패키지에서 svm 함수는 x를 입력 행렬로 포함하고 있습니다. 어떻게 모델링을위한 타임 스탬프 행렬을 포함 할 수 있습니까? 이것은 간단하거나 바보 같은 질문인지는 모르겠지만, 지금은

그래서 이것은 일반적인 해결책이 아니다,하지만 특별한 경우에 필요가 없습니다 당신 :

+1

이것은 유효한 커널이 아닙니다. 어쩌면 당신은 ... x exp (- (ti-tj)^2)를 의미할까요? – lejlot

+0

안녕하세요, 감사합니다. 당신 말이 맞아요, 그냥 설명을 수정 :), 당신은 그것에 대한 제안이 있습니까? – ZAWD

+2

[R의 svm 작성 커스텀 커널]의 가능한 복제본 (http://stackoverflow.com/questions/42633265/write-custom-kernel-for-svm-in-r) – ZAWD

답변

1

감사 :(나를 미치게 만든다 사용자 정의 커널, 그래서 당신은 모두가 할 나타낸다 AI = (XI, TI)와 양방향 = (XI, 1/SQRT (g) * TI)

K(ai, aj) = exp(-g*||xi-xj||^2) exp(-(ti-tj)^2) = 
      = exp(-g*||xi-xj||^2 -(ti-tj)^2) = 
      = exp(-g*||xi-xj||^2 -g(1/sqrt(g)*ti-1/sqrt(g)*tj)^2) = 
      = exp(-g*(||xi-xj||^2 + (1/sqrt(g)*ti-1/sqrt(g)*tj)^2)) = 
      = exp(-g*(||xi-xj||^2 + (1/sqrt(g)*ti-1/sqrt(g)*tj)^2)) = 
      = exp(-g*(||bi-bj||^2)) = RBF(bi, bj) 

||bi-bj||^2 = SUM_k (bik-bjk)^2 = SUM_k (xik-xjk)^2 + (ti-tj)^2 

이후를 할 수 있습니다 ti (1/sqrt (감마) 곱하기)를 d에 연결합니다. 표현을하고 정규 RBF 커널을 적용합니다.

+0

안녕하세요, 답변 주셔서 감사합니다. bi = (xi, 1/g * ti)가 bi = (xi, 1/sqr (g) * ti)가되어야 함 : – ZAWD

+0

yes, 나는^2를 잃었다 :) – lejlot

+0

안녕하세요, 감사합니다. 회신하지만, 당신의 생각에 따라 어떻게 R에서 그것을 구현할 수 있습니까? 예를 들어 (x1, x2, x3, x4,1/sqrt (g) * t1,1/sqrt (g) * t2,1/sqrt와 같이 원래 행렬 xi에 ti의 값을 더하는 것입니다. g) * t3,1/sqrt (g) * t4, 심지어 t1 = t2 = t3 = t4라고 생각할지라도. RBF를 사용하여 svm 모델을 정상적으로 적용하십시오. 정말 답을 기다리고 있습니다. 감사합니다! – ZAWD