机器学习--python归一化特征值
2015-08-26 10:43
435 查看
在机器学习的算法训练中,有很多数据的特征值不止一个,特征值中有些属性的数字过大,从而对计算结果的影响太大,但是实际情况是每个属性都同等重要,这时候就要处理这种不同取值范围的特征值,通常采用数值归一化,将取值范围处理为0-1或者-1-1之间。
将任意取值范围的特征值转化为0–1区间内的值,公式如下:
其中oldValue为原始数据
min、max分别是原始数据里最小、最大值
例如:有一组数据如下
400
134000
20000
32000
归一化的过程是:
400归一化之后的值newValue=(400-400)/(134000-400)
134000归一化之后的值newValue=(134000-400)/(134000-400)
20000归一化之后的值newValue=(20000-400)/(134000-400)
32000归一化之后的值newValue=(32000-400)/(134000-400)
上python代码:
说明:dataSet是指数据中某一列的数值
将任意取值范围的特征值转化为0–1区间内的值,公式如下:
newValue=(oldValue-min)/(max-min)
其中oldValue为原始数据
min、max分别是原始数据里最小、最大值
例如:有一组数据如下
400
134000
20000
32000
归一化的过程是:
400归一化之后的值newValue=(400-400)/(134000-400)
134000归一化之后的值newValue=(134000-400)/(134000-400)
20000归一化之后的值newValue=(20000-400)/(134000-400)
32000归一化之后的值newValue=(32000-400)/(134000-400)
上python代码:
def autoNorm(dataSet): min_value=dataSet.min(0)#取出数据集中的最小值 max_value=dataSet.max(0)#取出数据集中的最大值 range=max_value-min_value#计算取值范围 normDataSet=zeros(shape(dataSet))#初始化一个矩阵,该矩阵和所给数据集维度相同用于存放归一化之后的数据 m=dataSet.shape[0]#取出数据集的行数 normDataSet=dataSet-tile(min_value,(m,1))#这里tile()函数创建了一个以min_value为值的m行列向量,然后计算oldValue-min_value normDataSet=normDataSet/tile(range,(m,1))#特征值相除得到归一化后的数值 return normDataSet#返回归一化后的数据
说明:dataSet是指数据中某一列的数值
相关文章推荐
- run fastcgi python
- 《Python 3面向对象编程》试读笔记
- 机器学习常用Python扩展包
- python list set dic tuple总结及转换
- python 安装配置(windows)
- Python入门教程
- MySQL-python “error: command 'gcc' failed with exit status 1”错误
- Floyd算法的C&python实现及对比
- 简介二分查找算法与相关的Python实现示例
- python爬虫教程大全
- 编写地道的python(1)
- python操作Excel读写--使用xlrd
- Python介绍
- 用Python实现基本排序算法01——冒泡排序
- 【python】python实现栈
- python安装第三方库gevent
- subprocessing在python中的应用
- python_学习笔记0825
- python pickle函数应用
- 笔记python函数,python学习网址