对于不同比例的输入数据,我理解用于训练分类器的值必须标准化以进行正确分类(SVM)。
用于预测的输入向量是否也需要进行标准化?
我的方案是训练数据被规范化并序列化并保存在数据库中,当必须进行预测时,序列化数据被反序列化以获得规范化的numpy数组,然后numpy数组适合分类器和用于预测的输入矢量用于预测。那么这个输入向量是否也需要规范化?如果是这样,怎么做,因为在预测时我没有实际的输入训练数据来规范化?
我也沿着轴= 0,即沿着列进行标准化。
我的规范化代码是:
preprocessing.normalize(data, norm='l2',axis=0)
有没有办法序列化preprocessing.normalize
答案 0 :(得分:1)
在SVM中,建议使用缩放器,原因有几个。
当您将要素放在相同比例时,必须删除均值并除以标准差。
xi - mi
xi -> ------------
sigmai
您必须存储训练集中每个要素的均值和标准差,以便在将来的数据中使用相同的操作。
在python中,你有能力为你做到这一点:
http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html
获得手段和标准偏差:
scaler = preprocessing.StandardScaler().fit(X)
要标准化然后训练集(X是矩阵,其中每一行都是数据,每列都是一个特征):
X = scaler.transform(X)
培训结束后,您必须在分类前对未来数据进行标准化:
newData = scaler.transform(newData)