【发布时间】:2017-07-22 19:57:00
【问题描述】:
目前我正在使用R中的e1071库来训练一个带有RBF内核的SVM模型,例如调用带有以下参数的SVM函数:
这里的问题是是否有可能在 R 中进一步定制 RBF 内核?我想要做的是在原始 RBF 内核中添加一个额外的计算,例如: [![在此处输入图片说明][2]][2]
Xi 和 Xj 是表示绝对时间戳 Ti 和 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/gamma)连接到数据表示,但是如何?
假设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 作为输入矩阵,我们如何还包含用于建模的时间戳矩阵?我不知道这是一个简单还是愚蠢的问题,但现在它让我疯狂:(
谢谢你:)
【问题讨论】:
-
这不是一个有效的内核。也许你的意思是... x exp( -(ti-tj)^2 ) ?
-
嗨,谢谢,是的!你是对的,我刚刚更正了描述:),你有什么建议吗?