线性回归(一)---一元线性回归

线性回归(一)

线性回归是分析因变量与自变量呈现线性关系的一种方法,来确定一个因变量如何依赖一个或多个自变量的变化而变化,运用十分广泛。
在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
线性回归常用参数:
regression.intercept_ : 截距, 默认为True,可选False
regression.coef_ : 斜率,回归系数,x对y的具体影响
regression.predict: 预测
normalize: (标准化) 默认为True,可选False
copy_X: (复制X数据)默认为True,可选False。如果选False会覆盖原数
n_jobs: (计算性能)默认为1,可选int,工作使用的数量计算。

一元线性回归

from sklearn import linear_model #导入线性模型模块
regression = linear_model.LinearRegression()  #创建线性回归模型
x = [[3],[10]]    #创建x坐标
y = [6,22]        #创建y坐标
regression.fit(x,y)  #拟合

LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
regression.intercept_   #截距,以下划线结束
-0.8571428571428559
regression.coef_    #斜率,回归系数,x对y的具体影响
array([2.28571429])
regression.predict([[6]])  #对未知点进行预测
array([12.85714286])
regression.score([[6],[7],[8],[9]],[12.8,14.6,17.8,19.5])   #返回可决系数R2
0.9825215658041578
#练习
regression1 = linear_model.LinearRegression()  #创建线性回归模型
x1 = [[3],[10],[12],[15]]    #创建x坐标
y1 = [6,22,24,29]        #创建y坐标
regression1.fit(x1,y1)  #拟合
regression1.intercept_

0.8910256410256423
regression1.coef_ 
array([1.93589744])
regression1.predict([[6],[7],[8]])
array([12.50641026, 14.44230769, 16.37820513])
regression1.score([[6],[7],[8],[9]],[12.8,14.6,17.8,19.5]) 
0.8716272717012157
# 案例:假如研究学生学习时长(分钟)与考试成绩(分)的关系,考试成绩为因变量,学习时长为自变量,首先导入回归模块
import pandas as pd #导入pandas库
import numpy as np #导入numpy库
#from sklearn import linear_model #导入线性模型模块
#regression = linear_model.LinearRegression()  #创建线性回归模型,导入线性模块也可采用下列方式一次性导入
from sklearn.linear_model import LinearRegression #导入机器学习库中的线性回归模块
data=pd.DataFrame({'times':[150,200,250,300,350,400,600],
                   'scores':[64,68,75,79,85,89,93]})
#创建一组7行2列的数据,times为学习时长,scores为对应成绩

data_train=np.array(data['times']).reshape(data['times'].shape[0],1)#这里是将数据转化为一个1维矩阵
data_test=data['scores']
#创建线性回归模型,拟合学习时长与学习成绩的关系,并预测成绩
reg1=LinearRegression() #创建线性回归模型,参数默认
reg1.fit(data_train,data_test)#拟合数据
a=reg1.predict(268.5)  #预测学习时长为268.5分钟的学习成绩
print(a)#查看预测结果
print(reg1.score(data_train,data_test))#查看拟合准确率情况,这里的检验是 R^2 ,趋近于1模型拟合越好

[75.43295213]
0.8788360721074254
#预测的结果:学习时长为268.5分钟,则对应的学习成绩为75.43分, R^2 =0.8788
#我们来画个图看一下数据最后是什么样的
import matplotlib.pyplot as plt
plt.scatter(data['times'],data['scores']) #画散点图
plt.plot(data['times'],reg1.predict(np.array(data['times']).reshape(data['times'].shape[0],1)),color='red') #画拟合线型图

[<matplotlib.lines.Line2D at 0x21c131f8128>]

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈伦2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值