机器学习实战之k-近邻算法(4)--- 如何归一化数据
来源:互联网 发布:香港阿里云 编辑:程序博客网 时间:2024/05/20 06:22
归一化的公式:
newValue = (oldValue - min) / (max - min)
就是把数据归一化到[0, 1]区间上。
好处:
防止某一维度的数据的数值大小对距离就算产生影响。多个维度的特征是等权重的,所以不能被数值大小影响。
下面是归一化特征值的代码:
#归一化特征值def autoNorm(dataSet): minVals = dataSet.min(0) maxVals = dataSet.max(0) ranges = maxVals - minVals normDataSet = zeros(shape(dataSet)) m = dataSet.shape[0] normDataSet = dataSet - tile(minVals, (m, 1)) normDataSet = normDataSet / tile(ranges, (m, 1)) return normDataSet, ranges, minVals
然后在Python shell中:
>>> reload(kNN)<module 'kNN' from 'kNN.py'>>>> normMat, ranges, minVals = kNN.autoNorm(datingDataMat)>>> normMatarray([[ 0.44832535, 0.39805139, 0.56233353], [ 0.15873259, 0.34195467, 0.98724416], [ 0.28542943, 0.06892523, 0.47449629], ..., [ 0.29115949, 0.50910294, 0.51079493], [ 0.52711097, 0.43665451, 0.4290048 ], [ 0.47940793, 0.3768091 , 0.78571804]])>>> rangesarray([ 9.12730000e+04, 2.09193490e+01, 1.69436100e+00])>>> minValsarray([ 0. , 0. , 0.001156])
其中datingDataMat是调用前面的函数得到的:
>>> import kNN>>> reload(kNN)<module 'kNN' from 'kNN.pyc'>>>> datingDataMat, datingLabels = kNN.file2matrix('datingTestSet2.txt', 3)
下面解释一下归一化的函数:
(1)tile函数是把第一个参数复制成一个m*1的矩阵中去。
(2)这里的 / 是每个元素相除,如果是矩阵的除法,需要用到linalg.solve(matA, matB)
0 0
- 机器学习实战之k-近邻算法(4)--- 如何归一化数据
- 机器学习实战之k-近邻算法(3)---如何可视化数据
- 机器学习实战之K-近邻算法
- 《机器学习实战》之K-近邻算法
- 机器学习实战之k-近邻算法
- 机器学习实战之K近邻算法
- 机器学习实战笔记之二(k-近邻算法)
- K近邻算法(机器学习实战)
- 机器学习实战之k-近邻算法(5)--- 完整版约会网站数据分类
- 机器学习之K-近邻算法(Python描述)实战百维万组数据
- 机器学习之k近邻算法——4、特征值归一化
- 《机器学习实战》学习笔记之k-近邻算法1
- 《机器学习实战》学习笔记之k-近邻算法2
- 《机器学习实战》学习笔记之k-近邻算法3
- 《机器学习实战》学习笔记(三)之K-近邻算法
- 机器学习实战笔记之k-近邻算法
- 2.机器学习实战之K-近邻算法
- 《机器学习实战》读书笔记之k-近邻算法
- nodejs中UDP服务的构建
- Convert Picture or Video to ascii
- Centos安装vsftp
- 解决“Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
- SEO搜索引擎优化(总结学习)
- 机器学习实战之k-近邻算法(4)--- 如何归一化数据
- ARM、DSP、FPGA的技术特点和区别
- 【web++_第三阶_特殊篇_运维】让百度搜到我的网站
- centos7 安装mysql
- ThreadLocal简介及用法
- How to Set Relative Path for Jasper Reports Image
- DB2数据库ALTER命令(修改表结构相关)
- windows下androidNDK环境配置
- Course(简单的字符串处理问题)