sklearn 的 Normalizer的L1和 L2
来源:互联网 发布:简单片头制作软件 编辑:程序博客网 时间:2024/06/02 03:41
Normalizer 正则化,跟z-score,对数转换,指数转换 这种数据转换方式不同。
L1 norm 是指对每个样本的每一个元素都除以该样本的L1范数.
L2 norm 是指对每个样本的每一个元素都除以该样本的L2范数.
bag of words features need to normalize with L1 norm
fisher vector features need to normalize with L2 norm
a = np.array([[10,4,5,2], [1,4,5,7]])from sklearn.preprocessing import Normalizernorm1 = Normalizer(norm='l1')>>>norm1.fit_transform(a)array([[ 0.47619048, 0.19047619, 0.23809524, 0.0952381 ], [ 0.05882353, 0.23529412, 0.29411765, 0.41176471]])比如a[0][0] = 10/(10+4+5+2) = 0.476.., 所以每一行的和为1。>>> norm2 = Normalizer(norm='l2')>>> norm2.fit_transform(a)array([[ 0.8304548 , 0.33218192, 0.4152274 , 0.16609096], [ 0.10482848, 0.41931393, 0.52414242, 0.73379939]])比如 10/np.sqrt(100+16+25+4)=0.830....
另外 sklearn中还有一种常用的normlize的方法z-score,也就是我们常用的 减去样本均值除以样本方差。
from sklearn import preprocessing a = np.array([[10,4,5,2], [1,4,5,7]], dtype=float)scaler = preprocessing.StandardScaler().fit(a)scaler.mean_返回: array([ 5.5, 4. , 5. , 4.5])scaler.scale_返回:array([ 4.5, 1. , 1. , 2.5])scaler.transform(a)返回:array([[ 1., 0., 0., -1.], [-1., 0., 0., 1.]])注意这个地方的均值和方差是按列算的,上面的L1和L2范数是样本内的操作,而这里 z-score 是样本间的,将每个样本的第一个变量之间取均值,除以方差。
阅读全文
0 0
- sklearn 的 Normalizer的L1和 L2
- 关于L1和L2的一些思考
- L1范数和L2范数的区别
- L1和L2的区别和各自的优势
- L1归一化和L2归一化范数的详解和区别
- 范数、L1范数和L2范数的基本概念
- 关于L0,L1和L2范数的规则化
- L0,L1,L2范式的区别和应用
- L0,L1和L2正则的含义及区别
- L1正则化和L2正则化的解释
- L1正则和L2正则的比较分析详解
- dropout和L1,L2正则化的理解笔记
- 理解正则化项l1和l2的区别
- sklearn.preprocessing.Normalizer
- l1和l2正则
- L1 和 L2 缓存
- <zz>L1, L2 regularization的深层次理解
- CPU的缓存L1,L2,L3
- 515. Find Largest Value in Each Tree Row
- 删除链表中带有重复值得节点
- Excel学习4_ java poi 读取有合并单元格的EXCEL文件
- 第5章 过渡
- mysql存储过程中 declare 和 set 定义变量的区别
- sklearn 的 Normalizer的L1和 L2
- 关于全排列的递归算法(Ruby实现)
- 数据库存长字符串
- python3花式秀操作--文件读写
- java05_数据结构嵌套的一个有趣的问题
- SpringMVC解决中文乱码
- 深入理解JAVA虚拟机读书笔记----虚拟机性能监控与故障处理工具
- [简单dp]H
- 九月六日 学习笔记_SQL语句(一)