python线性回归算法——自变量x与输出变量y存在线下关系时

目录

python线性回归算法——自变量x与输出变量y存在线下关系时

用途范围:线下相关的数据进行分析预测时候

核心公式​

 python代码实现

拟合效果

 


用途范围:线下相关的数据进行分析预测时候

一元线性拟合 y=a+bx,根据最小二乘法有

其中a、b通过最小二乘法求得为: 

核心公式

                                                                 python线性回归算法-相关型数据分析
     python代码实现
 


#!/usr/bin/python
#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import math
#使用以后的数据集进行线性回归(这里是波士顿房价数据)
loaded_data=datasets.load_boston()
data_X=[1,2,3,4,5,6,7,8,9,10]
data_y=[1.3,3.5,4.2,5.0,7.0,8.8,10.1,12.5,13.0,15.6]
print('datax:',data_X)

#画散点图
fig=plt.figure()
ax1 = fig.add_subplot(111)#设置标题
ax1.set_title('line ')#设置X轴标签
plt.xlabel('X')#设置Y轴标签
plt.ylabel('Y')
x=np.array(data_X)
y=np.array(data_y)
print('x:',x)
print('y:',y)

plt.legend('x1')#设置图标

#线性拟合
x_avage=sum(x)/len(x)
y_avage=sum(y)/len(y)
print("x平均是:",x_avage," y平均是:",y_avage)
def sub(ava1,ava2,list1,list2):
    c1=ava1-list1
    c2=ava2-list2
    c=sum(c1*c2)
    print("c1 * c2 =c", c1, c2,c)
    return c

def sub_x(num1,ava1):
    c=num1-ava1
    print("c=",c)
    print("c{}=",c)
    return sum(pow(c,2))

fenzi=sub(x_avage,y_avage,x,y)
fenmu=sub_x(x,x_avage)
a=fenzi/fenmu
b=y_avage-a*x_avage

print("x平均是:",x_avage," y平均是:",y_avage,"fenzi=",fenzi,"fenmu=",fenmu)
print("a=",a," b=:",b)

ax1.scatter(x,y,c = 'm',marker = '.')
plt.plot([0,10],[0*a+b,10*a+b])
plt.show()


拟合效果

python线性回归算法-相关型数据分析









 

 

 

相关文章:

  • 2021-12-18
  • 2021-10-28
  • 2022-12-23
  • 2021-07-31
  • 2022-12-23
  • 2021-12-03
  • 2021-04-01
猜你喜欢
  • 2022-12-23
  • 2021-05-14
  • 2021-11-05
  • 2018-09-01
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案