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確保您的矩陣包含浮點值。否則,縮放器將無法正常工作。 –