赞
踩
""" 废话: 不是特别情愿写数据挖掘 一是我觉得对我找工作没啥帮助 二是我写了一遍自己的版本,为了考试还得再写一遍考试的版本 但! 为了考试,为了提(zhe)升(mo)自己, 还是写吧 想要喷考试首先得掌握他才能喷 你这个b怎么内心戏这么多,写不写? 目标:杂食性代码写手 """ # 1.实现滑动平均ma(data, delay)函数,结果保留整数存在序列中并返回, # 主函数总调用ma函数进行验证 # 不想写 if __name__ == "__main__": 这b代码我就懒得写模块调用,也不配,还主程序 def ma_(data, delay): ret = [] for i in range(len(data) - delay + 1): tmp = [] for j in range(delay): tmp.append(data[i + j]) ret.append(sum(tmp) / delay) return ret # 我的能力不足够我看这么长的列表表达式,简单的列表表达式我可以接受,这么长我不能接受,看都不想看 def ma(data, delay): return [sum([data[i + j] for j in range(delay)]) / delay for i in range(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函数进行验证 def calCS(data): ret = 0 column = [sum(data[0]), sum(data[1])] # 每行的和 row = [] # 每列的和 for i in range(len(data[0])): row.append(data[0][i]+data[1][i]) for i in range(len(data)): for j in range(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)
def normalization(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))
# 计算SMC系数和Jaccard系数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。