资源经验分享浅谈聚类

浅谈聚类

2019-12-17 | |  120 |   0

原标题:数据预处理-归一化

原文来自:博客园      原文链接:https://www.cnblogs.com/xuxiaowen1990/p/10775016.html


归一化是指一种简化计算的方式,将数据经过处理之后限定到一定范围之内,如数据较大,可通过归一化计算后,将数据限定在[0,1]内。数据归一化可加速算法的快速收敛,而且在后续数据处理上更加方便。

数学公式为y=(x-minValue)/(maxValue-minValue),maxValue、minValue、x、y分别代表每一个字段的最大值、最小值、字段值和最终归一化结果,例:[3,4,5,6,7],归一化后的结果为[0,1/4,1/2,3/4,1]。


def uniformData(dataMat):
    '''
    :param dataMat:原始数据
    :return: dataMat处理后的数据
    '''
    col=0
    for i in dataMat[0]:#取矩阵第一行,求出列数
        col+=1
    rol=len(dataMat)    #矩阵的行数
    maxNum=[0]*col      #设定最大值均为0
    minNum=[9999999999]*col     #设定最小值均为9999999999

    for i in dataMat:#求每列的最大值
        for j in range(0,col):
            if i[j]>maxNum[j]:
                maxNum[j]=i[j]

    for i in dataMat:#求每列的最小值
        for j in range(0,col):
            if i[j]<minNum[j]:
                minNum[j]=i[j]

    #section=list(map(lambda x:x[0]-x[1],zip(maxNum,minNum))) 不好理解,用换成下面写法
    section=list(map(lambda x,y:x-y,maxNum,minNum))#最大最小值差
    sample=[]
    for i in dataMat:
         sample.append(list(map(lambda x,y,z:(x-y)/z,i,minNum,section)))   #利用公式计算最终的值
    return sample
#测试数据
data=[[63,145,233,150,2.3,0],
     [67,160,286,108,1.5,3],
     [67,120,229,129,2.6,2],
     [37,130,250,187,3.5,0],
     [41,130,204,172,1.4,0],
     [56,120,236,178,0.8,0],
     [62,140,268,160,3.6,2],
     [57,120,354,163,0.6,0],
     [63,130,254,147,1.4,1]]

for i in uniformData(data):
    print(i)


测试结果:


E:Anaconda3python.exe E:/归一化.py
[0.8666666666666667, 0.625, 0.19333333333333333, 0.5316455696202531, 0.5666666666666665, 0.0]
[1.0, 1.0, 0.5466666666666666, 0.0, 0.3, 1.0]
[1.0, 0.0, 0.16666666666666666, 0.26582278481012656, 0.6666666666666666, 0.6666666666666666]
[0.0, 0.25, 0.30666666666666664, 1.0, 0.9666666666666667, 0.0]
[0.13333333333333333, 0.25, 0.0, 0.810126582278481, 0.26666666666666666, 0.0]
[0.6333333333333333, 0.0, 0.21333333333333335, 0.8860759493670886, 0.0666666666666667, 0.0]
[0.8333333333333334, 0.5, 0.4266666666666667, 0.6582278481012658, 1.0, 0.6666666666666666]
[0.6666666666666666, 0.0, 1.0, 0.6962025316455697, 0.0, 0.0]
[0.8666666666666667, 0.25, 0.3333333333333333, 0.4936708860759494, 0.26666666666666666, 0.3333333333333333]

进程已结束,退出代码 0


 

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:win10+Ubuntu16.04双系统下深度学习环境的搭建

下一篇:用CapsNets做电能质量扰动分类

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...