gpt4 book ai didi

python sklearn : what is the different between "sklearn.preprocessing.normalize(X, norm=' l 2')" and "sklearn.svm.LinearSVC(penalty=' l 2')"

转载 作者:行者123 更新时间:2023-12-01 03:51:49 26 4
gpt4 key购买 nike

这里有两种标准化方法:

1:这个在数据预处理中使用:sklearn.preprocessing.normalize(X,norm='l2')

2:分类方法中使用另一种方法:sklearn.svm.LinearSVC(penalty='l2')

我想知道它们之间有什么区别?这两步是否必须在完整的模型中使用?是不是只用一个方法就够了?

最佳答案

这两者是不同的东西,通常你需要它们来创建一个好的 SVC 模型。

1) 第一个意味着为了缩放(标准化)X 数据矩阵,您需要除以每列的 L2 范数,即: sqrt(sum(abs(X[: ,j]).^2)) ,其中 j 是数据矩阵 X 中的每一列。这可以确保每列的值不会变得太大,从而使某些算法难以收敛。

2) 无论您的数据规模如何(且值多么小),仍然可能存在异常值或某些过于占主导地位的特征 (j) 以及您的算法 (LinearSVC())可能会过度信任他们,但其实不应该。这就是L2正则化发挥作用的地方,这意味着除了算法最小化的函数之外,还将对系数应用成本,以便它们不会变得太大。换句话说,模型的系数成为 SVR 成本函数的额外成本。多少费用 ?由 C (L2) 值决定为 C*(beta[j])^2

总而言之,第一个告诉用哪个值来划分 X 矩阵的每一列。第二个是系数应该给成本函数带来多少权重。

关于 python sklearn : what is the different between "sklearn.preprocessing.normalize(X, norm=' l 2')" and "sklearn.svm.LinearSVC(penalty=' l 2')",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38116078/

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