norm='l2'在什么地方sklearn.preprocessing.normalize做矩阵标准化吗?

2024-09-29 23:33:25 发布

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

我在这里用sklearn.preprocessing.normalize规范化了scipy.sparse矩阵sA。我阅读了文档,但不了解norm='l...'嗯,所以我测试了它。在

norm='l1'进行得很好,我得到的结果与预期的一样,在所有行中为1。在

A = np.array([[1,2,0],[0,0,3],[1,0,4]])
sA = sp.csr_matrix(A)   
normsA = normalize(sA, norm='l1', axis=0)
print normsA
print "---"
print sum(normsA)

>>(0, 0)    0.5
  (2, 0)    0.5
  (0, 1)    1.0
  (1, 2)    0.428571428571
  (2, 2)    0.571428571429
  ---
  (0, 0)    1.0
  (0, 1)    1.0
  (0, 2)    1.0

但是,当我尝试l2时,我无法找到它是如何规范化矩阵的。矩阵或转置矩阵之和不等于1。l2在这里规范化有什么作用?在

^{pr2}$

Tags: 文档norml1npsa矩阵scipysklearn
1条回答
网友
1楼 · 发布于 2024-09-29 23:33:25

即使用l2 norm(或欧几里德范数/距离),换句话说,元素的平方和给出一。在

以下输出1的预期向量:

sum(normsA2 ** 2, axis=0)

相关问题 更多 >

    热门问题