栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python:在一组数字中找到趋势

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python:在一组数字中找到趋势

可能是您想在图表上绘制这些数字并找到一条直线,使这些直线和数字之间的总距离最小化?这称为线性回归

def linreg(X, Y):    """    return a,b in solution to y = ax + b such that root mean square distance between trend line and original points is minimized    """    N = len(X)    Sx = Sy = Sxx = Syy = Sxy = 0.0    for x, y in zip(X, Y):        Sx = Sx + x        Sy = Sy + y        Sxx = Sxx + x*x        Syy = Syy + y*y        Sxy = Sxy + x*y    det = Sxx * N - Sx * Sx    return (Sxy * N - Sy * Sx)/det, (Sxx * Sy - Sx * Sxy)/detx = [12, 34, 29, 38, 34, 51, 29, 34, 47, 34, 55, 94, 68, 81]a,b = linreg(range(len(x)),x)  //your x,y are switched from standard notation

趋势线不太可能穿过您的原始点,但是它将尽可能接近直线可以到达的原始点。使用该趋势线(a,b)的梯度和截距值,您将可以推断出超出数组末尾的线:

extrapolatedtrendline=[a*index + b for index in range(20)] //replace 20 with desired trend length


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/625262.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号