"""
废话:
不是特别情愿写数据挖掘
一是我觉得对我找工作没啥帮助
二是我写了一遍自己的版本,为了考试还得再写一遍考试的版本
但!
为了考试,为了提(zhe)升(mo)自己,
还是写吧
想要喷考试首先得掌握他才能喷
你这个b怎么内心戏这么多,写不写?
目标:杂食性代码写手
"""# 1.实现滑动平均ma(data, delay)函数,结果保留整数存在序列中并返回,# 主函数总调用ma函数进行验证# 不想写 if __name__ == "__main__": 这b代码我就懒得写模块调用,也不配,还主程序defma_(data, delay):
ret =[]for i inrange(len(data)- delay +1):
tmp =[]for j inrange(delay):
tmp.append(data[i + j])
ret.append(sum(tmp)/ delay)return ret
# 我的能力不足够我看这么长的列表表达式,简单的列表表达式我可以接受,这么长我不能接受,看都不想看defma(data, delay):return[sum([data[i + j]for j inrange(delay)])/ delay for i inrange(len(data)- delay +1)]
a =[1437,1532,1503,1498,1524,1552,1542,1632]print(ma(a,3))print(ma(a,5))
# 2.实现卡方值计算函数calCS(data),主程序用调用calCS函数进行验证defcalCS(data):
ret =0
column =[sum(data[0]),sum(data[1])]# 每行的和
row =[]# 每列的和for i inrange(len(data[0])):
row.append(data[0][i]+data[1][i])for i inrange(len(data)):for j inrange(len(data[0])):
o = data[i][j]
e = row[j]* column[i]/sum(column)
ret +=(o-e)**2/ e
return ret
data =[[40,11],[24,19]]print(calCS(data))
# 3. 实现特征归一函数 normalization(data, minV, maxV)defnormalization(data, minV, maxV):
ret =[]for i in data:
n =(i -min(data))/(max(data)-min(data))*(maxV - minV)+ minV
ret.append(n)return ret
v0 =[1,2,3,4,5,4,3,2,1]print(normalization(v0,-1,1))