有關機器學習的文獻強烈建議SVM數據的規範化(Preprocessing data in scikit-learn)。如answered before,同樣的StandardScalar應該適用於訓練和測試數據。scikit-learn預處理支持流水線中多個類的SVM
- 使用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(一對一)。 – 2013-04-27 10:46:21
@ larsmans-感謝您的糾正,我會更新文本以避免被索引。 – dashesy 2013-04-27 15:04:27