scikit-learn的SVM基于LIBSVM。 LIBSVM/SVM要求应缩放数据,建议特征值应在两个范围[0,1]或[-1,1]之一中。也就是说,在典型的矩阵中,每列都是一个特征,缩放是按每列完成的。scikit支持在[0,1]或[-1,1]之间缩放功能
LIBSVM FAQ表明一个简单的缩放得到[0,1]之间的特征:
x'=(x-min)/(Max-min)
是否scikit学习支持这种“简单的缩放”?是否还有其他建议来扩展要与SVM和RBF内核一起使用的功能。任何参考?我发现了一篇名为“支持向量分类的实用指南”的参考文章,该文章基于LIBSVM,并建议缩放为[0,1]或[-1,1]。
谢谢拉斯曼!很明显,预处理.Scaler()是标准化列(平均值为零,var = 1)。但是,我没有得到范围[-1,+ 1]中的值。我有一个矩阵a。我使用下面的代码:scal = preprocessing.Scaler(),scal.fit(a),scal.transform(a)。结果不在[-1,+ 1]的范围内。 – user963386
@ user963386确保您的矩阵包含浮点值。否则,缩放器将无法正常工作。 –