【发布时间】:2013-04-14 19:21:09
【问题描述】:
有关机器学习的文献强烈建议对 SVM 的数据进行标准化 (Preprocessing data in scikit-learn)。和answered before 一样,同样的StandardScalar 应该应用于训练和测试数据。
- 使用StandardScalar 与手动减去平均值并除以标准差相比有什么优势(除了在管道中使用它的能力)?
- scikit-learn 中的 LinearSVC 依赖于 one-vs-the-rest 用于多个类(正如 larsmans 所提到的,SVC 依赖于多类的一对一)。那么,如果我有多个类使用规范化作为第一个估计量的管道进行训练,会发生什么?它还会计算每个类别的均值和标准变差,并在分类时使用吗?
- 更具体地说,以下分类器是否在流水线的 svm 阶段之前对每个类应用不同的均值和标准差?
estimators = [('normalize', StandardScaler()), ('svm', SVC(class_weight = 'auto'))]
clf = Pipeline(estimators)
# Training
clf.fit(X_train, y)
# Classification
clf.predict(X_test)
【问题讨论】:
-
SVC是否不为多类案例进行 OvR 训练;那是您所指的LinearSVC。SVC的行为由multiclass参数控制,默认为 OvO(一对一)。 -
@larsmans- 感谢您的更正,我将更新文本以避免它被索引。
标签: python scikit-learn svm