【Python那些事儿】数据放缩
来源:互联网 发布:javabean连接数据库 编辑:程序博客网 时间:2024/05/19 15:39
讨论如何对数据进行放缩:
- 放缩是一种非常重要的数据转换手段;
- 对数据进行放缩之后,能够控制数值的范围;
- 数据集里有很多列的时候,数据较大的列对于其他列更有优势,必须对数据进行放缩以避免这种干扰。
操作方法
缩放到[0, 1]区间
import numpy as npnp.random.seed(10)x = [np.random.randomint(10, 25)*1.0 for i in range(10)]def min_max(x): return [round(round((xx - min(x))/(1.0*(max(x) - min(x))), 2) for xx in x]print(x)print(min_max(x))----------输出:[19.0, 23.0, 14.0, 10.0, 11.0, 21.0, 22.0, 19.0, 23.0, 10.0][0.69, 1.0, 0.31, 0.0, 0.08, 0.85, 0.92, 0.69, 1.0, 0.0]
这样就把原始数值分布缩放到[0, 1]区间内。10原来是最小的数,缩放后为0.0;23是原来最大的数,缩放后是1.0。
缩放到任意范围
假如定义新的区间范围为nr_min
到nr_max
,那min_max
的公式得做如下修改:
x_scaled = (x - min(x)) / (max(x) - min(x)) * (nr_max - nr_min) + nr_min
Python实例代码:
import numpy as npnp.random.seed(10)x = [np.random.randint(10, 25)*1.0 for i in range(10)]#定义函数def min_max_range(x, range_values): return [round( ((xx - min(x)) / (1.0*(max(x) - min(x)))) * (range_values[1] - range_values[0]) + range_values[0], 2) for xx in x]if __name__ == '__main__': print(x) print(min_max_range(x, (100, 200)))----------输出:[19.0, 23.0, 14.0, 10.0, 11.0, 21.0, 22.0, 19.0, 23.0, 10.0][169.23, 200.0, 130.77, 100.0, 107.69, 184.62, 192.31, 169.23, 200.0, 100.0]
将数值缩放到[100, 200],最小值10和最大值23缩放到100和200。
阅读全文
0 0
- 【Python那些事儿】数据放缩
- python那些事儿
- 数据分类那些事儿
- 【Python那些事儿】用图表分析单变量数据
- 【Python那些事儿】为多变量数据绘制散点图
- 大数据的那些事儿
- 【Python那些事儿】Python中的类型转换
- 【Python那些事儿】Python中的读写文件
- 【Python那些事儿】Python中的迭代器
- 【Python那些事儿】Python中的生成器
- 【Python那些事儿】准备数据——训练集和测试集
- 关于Python时间的那些事儿
- 关于Python时间的那些事儿
- 【Python那些事儿之七】Iterators详解
- python编解码的那些事儿
- 【Python那些事儿】range()和xrange()
- 【Python那些事儿】使用箱线图
- 【Python那些事儿】主成分分析PCA
- bzoj 1799: [Ahoi2009]self 同类分布 (数位DP)
- CodeVS 1215 迷宫 题解
- 入门经典_Chap06_例题[二]:二叉树的指针及数组实现
- webrtc编译arm版本
- 【数据压缩】H.264编码
- 【Python那些事儿】数据放缩
- [leetcode]576. Out of Boundary Paths
- Git submodule (1)
- Windows下Mysql5.7忘记root密码的解决方法
- 虫子爬进问题
- juc--CopyOnWriteArraySet
- CodeVS1294 全排列 题解
- :微信打飞机
- 嵌入式软件-STM32串口中断函数