您的位置:首页 > 其它

数据挖掘概念与技术作业(留复习用)

2016-12-15 11:13 351 查看
最小-最大规范化

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]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: