Python线性回归实例--Python,sklearn,LinearRegression

       分析按照自变量因变量之间的关系类型,可分为线性回归分析和非线性回归分析。如果在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。

最小二乘法估计参数b,设服从正态分布,分别求对a、b
线性回归方程求法 线性回归方程求法
的偏导数并令它们等于零,得方程组解为
其中 ,且为观测值的 样本方差. 线性方程称为关于的线性回归方程,称为 回归系数,对应的直线称为 回归直线.顺便指出,将来还需用到,其中为观测值的样本方差.
先求x,y的平均值 X,Y
再用公式代入求解:b=(x 1y 1+x 2y 2+...x ny n-n XY)/(x 1 2+x 2 2+...x n 2-n X 2)
后把x,y的平均数 X,Y代入a= Y-b X
求出a并代入总的公式 y=bx+a得到线性回归方程
(X为xi的 平均数,Y为yi的平均数)
Python sklearn中的LinearRegreesion实例
import pandas as pd
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
import numpy as np
#数据数据为两列数据x和y,有表头
df = pd.read_table('d:/LinearRegression.txt')
#通过pandas读取为DataFrame,回归用的是矩阵数据而不是列表,数据为n个样品点和m个特征值,这里特征值只有一个因此换证nx1的矩阵
dataSet_x = df.loc[:, 'X'].as_matrix(columns=None)
#T为矩阵转置把1xn变成nx1
dataSet_x = np.array([dataSet_x]).T
dataSet_y = df.loc[:, 'Y'].as_matrix(columns=None)
dataSet_y = np.array([dataSet_y]).T
#regr为回归过程,fit(x,y)进行回归
regr = LinearRegression().fit(dataSet_x, dataSet_y)
#输出R的平方
print(regr.score(dataSet_x, dataSet_y))
plt.scatter(dataSet_x, dataSet_y,  color='black')
#用predic预测,这里预测输入x对应的值,进行画线
plt.plot(dataSet_x, regr.predict(dataSet_x), color='red', linewidth=1)
plt.show()
输出结果: 0.34761554226

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值