实现功能
判断一组序列(列表)的变化趋势
实现代码
from sklearn.linear_model import LinearRegression
import numpy as np
# 计算相邻两个数之间的差值的均值,并判断变化趋势。
def trend(lst):
diff = [lst[i+1] - lst[i] for i in range(len(lst)-1)]
trend = sum(diff)/len(diff)
if trend > 0:
return '上升'
elif trend < 0:
return '下降'
else:
return '不明显'
# 使用线性回归模型来拟合数据,并根据回归系数的正负来判断整体变化趋势。
def lr_trend(lst):
# 训练线性回归模型
reg = LinearRegression().fit(np.arange(len(lst)).reshape(-1, 1), lst)
# 判断整体变化趋势
if reg.coef_ > 0:
return '上升'
elif reg.coef_ < 0:
return '下降'
else:
return '不明显'
lst = [453, 443, 388, 454, 366]
t = trend(lst)
print(t)
t = lr_trend(lst)
print(t)
实现效果
本人读研期间发表5篇SCI数据挖掘相关论文,现在某研究院从事数据挖掘相关科研工作,对数据挖掘有一定认知和理解,会结合自身科研实践经历不定期分享关于python机器学习、深度学习、数据挖掘基础知识与案例。
致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。
1、邀请三个朋友关注本订阅号或2、分享/在看任意订阅号的三篇文章即可在后台联系我获取相关数据集和源码,送有关数据分析、数据挖掘、机器学习、深度学习相关的电子书籍。