最小-最大规范化
z分数规范化
小数定标
ages=[13,15,16,16,19,20,20,21,22,22,25,25,25,25,30,33,33,35,35,35,36,40,45,46,52,70];
#3.7第一问
def get_standard(age):
vi=(age-ages[0])*1.0/(ages[len(ages)-1]-ages[0])*(1-0)+0;
return vi;
#3.7第二问
def get_zscore(age,ave,var):
return (age-ave)*1.0/var;
#3.7第三问
def get_demicalScale(age,max):
j=get_j(max);
number=get_num(j);
return age*1.0/(number*1.0);
#求j
def get_j(maxnum):
j=0;
while(maxnum>1):
maxnum=maxnum*1.0/10.0;
j=j+1;
return j;
#求倍数
def get_num(j):
if(j==0):
return 1;
return get_num(j-1)*10;
#求均值
def get_ave():
length=len(ages);
sum=0;
for x in ages:
sum+=x;
return sum*1.0/(length*1.0);
print "age为35使用最小-最大规范化变换到【0,1】区间的值为",get_standard(35);
print "age为35使用z分数规范化为",get_zscore(35,get_ave(),12.94);
print "age为35使用小数定标为",get_demicalScale(35,ages[len(ages)-1]);