python sklearn:sklearn.preprocessing.normalize(X,norm='l2')“和”sklearn.svm.LinearSVC(惩罚=“l2”)

2024-06-01 02:39:23 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是两种规格化方法:

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

2:另一种方法是分类法:sklearn.svm.LinearSVC(惩罚=“l2”)

我想知道,他们之间有什么不同?这两个步骤必须在一个完整的模型中使用吗?仅仅使用一种方法就足够了,对吗?在


Tags: 数据方法模型步骤sklearnnormalize分类法preprocessing
1条回答
网友
1楼 · 发布于 2024-06-01 02:39:23

这两个是不同的东西,你通常都需要它们来制作一个好的SVC模型。在

1)第一个表示为了缩放(规范化)X数据矩阵,需要用每列的L2范数除以,这就是:sqrt(sum(abs(X[:,j]).^2)),其中j是数据矩阵X中的每一列。这样可以确保每个列的值都不会太大,这使得某些算法很难收敛。在

2)不管数据的规模有多大(值有多小),仍然可能有离群值或某些特征(j)太占主导地位,而您的算法(LinearSVC())可能会过度信任它们,而它不应该信任它们。这就是L2正则化发挥作用的地方,这说明除了函数之外,算法最小化,一个成本将被应用到系数,这样他们不会变得太大。换言之,模型的系数成为SVR成本函数的附加成本。多少钱?{2}由cd2}决定

综上所述,第一个是用哪个值来划分X矩阵的每一列。第二个问题是一个系数应该给成本函数增加多少权重。在

相关问题 更多 >