python 线性回归 最小二乘法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_36811967/article/details/84309546

公式

在这里插入图片描述

代码

# -*- coding:utf-8 -*-


def least_square(x,y):
    n = len(x)
    sumX , sumY, sumXY, sumXX =0, 0, 0, 0
    for i in range(0,n):
        sumX  += x[i]
        sumY  += y[i]
        sumXX += x[i]*x[i]
        sumXY += x[i]*y[i]
    mean_x = sumX / n
    mean_y = sumY / n
    a = (n*sumXY - sumX*sumY)/(n*sumXX - sumX*sumX)
    b = mean_y - a * mean_x
    return a, b


xi = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
yi = [10, 11.5, 12, 13, 14.5, 15.5, 16.8, 17.3, 18, 18.7]
a, b = least_square(xi, yi)
print("y = %10.5fx + %10.5f" % (a, b))

Reference

https://zh.wikipedia.org/wiki/最小二乘法
https://blog.csdn.net/wangyangzhizhou/article/details/60133958

猜你喜欢

转载自blog.csdn.net/sinat_36811967/article/details/84309546