scikit支持在[0,1]或[1,1]之间缩放功能

2024-06-10 07:43:41 发布

您现在位置:Python中文网/ 问答频道 /正文

scikit learn的支持向量机是基于LIBSVM的。LIBSVM/SVM要求对数据进行缩放,建议特征值应该在两个范围[0,1]或[-1,1]中的一个。也就是说,在典型的矩阵中,每一列都是一个特征,并且每列都进行缩放。在

LIBSVM FAQ建议使用一个简单的缩放来获得[0,1]之间的特征:

x'=(x-min)/(Max-min)

scikit learn是否支持这种“简单缩放”?有没有其他的建议,以缩放特征使用支持向量机和径向基函数核。有推荐信吗?我发现了一篇参考文章,叫做“支持向量分类的实用指南”,它是基于LIBSVM的,他们建议缩放到[0,1]或[-1,1]。在


Tags: 数据矩阵特征scikitmin向量learn建议
2条回答

是的,包括此功能。您描述的确切公式将在下一个版本中作为sklearn.preprocessing.MinMaxScaler。目前,^{}(在下一个版本中将重命名为StandardScaler,但旧名称将保留为向后兼容)中心和缩放特征具有平均值0和方差1,这对于向支持向量机学习者传递数据来说应该足够了。在

另外,^{}(以及用于文本分类的TfidfVectorizer)将每个样本的值规范化到范围[0,1]。这相当于文本分类和信息检索中常见的长度规范化。在

您可以使用Pipeline对象来构造一个中心化、缩放的SVM分类器:

clf = Pipeline([('scale', Scaler()),
                ('svm', SVC())])

我想你要找的是StandardScaler,至少是[-1,1]的例子。在

相关问题 更多 >