Adr*_*nig 3 algorithm machine-learning svm
我正在尝试不同类型的非线性内核,并试图解释学习模型,这引出了以下问题:是否有一种通用的方法来获得非线性支持向量机的原始权重类似于线性SVM是否可行(参见相关问题)?
我说,你有三个特点a,b,c和所有的子集/多项式内核生成的模型.有没有办法提取这些子集的原始权重,例如,a * b和a^2?
我已经尝试扩展线性内核的方法,您可以在其中为以下示例生成输出:
a, b, c
[0, 0, 0]
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]
Run Code Online (Sandbox Code Playgroud)
如果我对all-subsets内核使用相同的方法,我可以生成更多的样本:
a, b, c
[1, 1, 0]
[1, 0, 1]
...
Run Code Online (Sandbox Code Playgroud)
接下来,为了计算原始权重a * b,我分析预测如下:[1, 1, 0] - ([1, 0, 0] + [0, 1, 0] + [0, 0, 0]).
我看到的问题是它需要大量的样本,不能解决诸如此类的子集,a^2并且它不会推广到其他非线性内核.
不,我并不是自称是最终所有专家,但我已经对SVM进行了大量的阅读和研究,我不认为你说的是可能的.当然,在二次多项式核的情况下,如果属性的数量非常小,则可以枚举由内核引起的特征空间.对于高阶多项式内核和更大数量的属性,这很快变得难以处理.
非线性SVM的强大之处在于它能够在不必在该空间中进行计算的情况下诱导特征空间,并且事实上实际上并不知道该特征空间是什么.一些内核甚至可以诱导无限维度的特征空间.
如果你回顾一下你的问题,你可以看到部分问题 - 你正在寻找原始权重.但是,内核是以双重形式引入的,其中数据显示为点积.在数学上反转这个过程将涉及将核函数分开 - 知道从输入空间到特征空间的映射函数.内核函数非常强大,因为我们不需要知道这种映射.当然,它可以用于线性内核,因为没有使用映射函数.