我正在为 Python 中的 mnist 数据实现 SVM,现在我正在使用 cvxopt 来解决 QP 并获取 alpha。
但我的问题是计算 K-gram 矩阵 ** 有效 **,我只从两个类(数字 6 和 0)开始,训练示例的数量少于前 1k,接下来是 10K。
为了更快地计算整个 1k x 1k 矩阵,我正在使用 Process,并提供不同的原始数据进行计算。但它仍然需要 2 分钟 - 它的 rbf - 高斯。(10k 一个仍在运行!)
如果有人研究它或者可能是 Python 爱好者可以在这里帮助我,那就太好了!
PS:如果有人不知道计算 gram-matrix,这里是详细信息:它很简单:
for i in range(1k):
for j in range(1k):
for K[i,j] = some_fun(x[i], x[j])
其中 some_fun - 是点积或花式高斯。
我正在使用 python 2.7、numpy 和 Mac Air 4G RAM,128G 固态。
[编辑] 如果有人来过这里!是的,SVM 确实需要更长的时间......如果你正在进行多分类,那么你必须再次计算 k-gram 矩阵......所以它会花费很长时间,所以我建议实施算法并检查它两次并让它运行一夜!但你肯定会在第二天看到好结果!:)