gpt4 book ai didi

machine-learning - SVM 中的预测是否需要标准化输入向量?

转载 作者:行者123 更新时间:2023-11-30 09:10:25 27 4
gpt4 key购买 nike

对于不同规模的输入数据,我知道用于训练分类器的值必须进行标准化才能正确分类(SVM)。

那么预测的输入向量是否也需要归一化?

我遇到的情况是训练数据被标准化和序列化并保存在数据库中,当必须进行预测时,序列化数据被反序列化以获得标准化的 numpy 数组,然后将 numpy 数组拟合应用分类器和用于预测的输入向量进行预测。那么这个输入向量是否也需要归一化呢?如果是这样,该怎么做,因为在预测时我没有实际的输入训练数据来标准化?

我还沿着 axis=0 进行标准化,即沿着列。

我的规范化代码是:

preprocessing.normalize(data, norm='l2',axis=0)

有没有办法序列化 preprocessing.normalize

最佳答案

在 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)

训练结束后,您必须在分类之前对 future 数据进行归一化:

newData = scaler.transform(newData)

关于machine-learning - SVM 中的预测是否需要标准化输入向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40531152/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com