本文共 992 字,大约阅读时间需要 3 分钟。
程序清单2-3
归一化特征值:
def autoNorm(dataSet):
/*
>>> b
array([[ 1., 2., 3.], [ 2., 3., 4.], [ 10., 0., 0.]])>>> b.max(0)array([ 10., 3., 4.])>>> b.min(0)array([ 1., 0., 0.])如上面的例子,求每一列的最大值(或者最小值),组成一个向量
*/
minVals = dataSet.min(0) maxVals = dataSet.max(0)/*
最大向量和最小向量想减
*/
ranges = maxVals - minVals/*
创建一个二维0数组,shape(dataSet)返回二维数组的维数,例如(2,3),2行3列
zeros((2,3))
返回
array([[ 0., 0., 0.],
[ 0., 0., 0.]])*/
normDataSet = zeros(shape(dataSet))//shape[0]返回行数
m = dataSet.shape[0]/*举例:
>>> tile([1,0,0],(3,1))
array([[1, 0, 0], [1, 0, 0], [1, 0, 0]])>>> b
array([[ 1., 2., 3.], [ 2., 3., 4.], [ 10., 0., 0.]])>>> a=tile([1,0,0],(3,1))>>> b-aarray([[ 0., 2., 3.], [ 1., 3., 4.], [ 9., 0., 0.]])求出数据集和最小值的差
*/
normDataSet = dataSet - tile(minVals, (m,1))/*
用差除以区间大小,得到归一化数组
*/
normDataSet = normDataSet/tile(ranges, (m,1)) return normDataSet, ranges, minVals作者: 博客地址: 个人博客: 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如果觉的博主写的可以,收到您的赞会是很大的动力,如果您觉的不好,您可以投反对票,但麻烦您留言写下问题在哪里,这样才能共同进步。谢谢!