一元线性回归
收藏
在数学上变量之间可以用确定的函数关系来表示是比较常见的一种方式。然而在实现应用中,还存在许多变量之间不能用确定的函数关系来表示的例子。前面已经介绍过变量之间可能存在着相关性,那么变量之间的相关关系如何来表示呢?下面我们先介绍简单的一元线性回归,进而再拓展到较为复杂的多元线性回归。最后给出线性回归模型的Python实现方法。
1
收藏
请登录后评论
所谓一元线性回归,就是自变量和因变量只有一个的线性相关关系模型。下面我们先从一个简单的引例开始,介绍一元线性回归模型的提出背景,进而给出其回归模型、回归方程、回归方程的参数估计和拟合优度等基本概念。
有一则新闻:国家旅游局长表示,到2020年中国旅游业总收入将超过3000亿美元。那么他是如何做出这样的预测的呢?
旅游总收入(Y) 居民平均收入(X)……
身高预测问题:
子女的身高(Y) 父母的身高(X) 变量之间的相互关系,主要有三种:
(1)确定的函数关系 Y=f(X)
(2)不确定的统计相关关系
(3)没有关系 不用分析
以上两种例子均属于第2种情况。
Python线性回归应用举例:
在发电场中电力输出(PE)与AT(温度)、V(压力)、AP(湿度)、RH(压强)有关,相关测试数据(部分)如下:
问题如下:
(1)利用线性回归分析命令,求出PE与AT、V、AP、RH之间的线性回归关系式系数向量(包括常数项)和拟合优度(判定系数),并在命令窗口输出来。
(2)今有某次测试数据AT=28.4、V=50.6、AP=1011.9、RH=80.54,试预测其PE值。
数据来源于UCI公共测试数据库 下载地址为:http://archive.ics.uci.edu/ml/machine-learning-databases/00294/
其计算思路及流程如下:
1.读取数据,确定自变量x和因变量y
线性回归分析,其基本步骤如下:
(1)导入线性回归模块,简称为LR
from sklearn.linear_model import LinearRegression as LR
(2)利用LR创建线性回归对象lr
lr = LR()
(3)调用lr对象中的fit()方法,对数据进行拟合训练
lr.fit(x, y)
(4)调用lr对象中的score()方法,返回其拟合优度(判定系数),观察线性关系是否显著
Slr=lr.score(x,y) # 判定系数 R^2
(5)取lr对象中的coef_、intercept_属性,返回x对应的回归系数和回归系数常数项
c_x=lr.coef_ # x对应的回归系数
c_b=lr.intercept_ # 回归系数常数项
利用线性回归模型进行预测
(1)可以利用lr对象中的predict()方法进行预测,比如
import numpy as np
x1=np.array([28.4,50.6,1011.9,80.54])
x1=x1.reshape(1,4)
R1=lr.predict(x1)
(2)也可以利用线性回归方程式进行预测,这个方法需要自行计算,比如:
r1=x1*c_x
R2=r1.sum()+c_b #计算其预测值
接着再来个Python逻辑回归模型应用举例
取UCI公共测试数据库中的澳大利亚信贷批准数据集作为本例的数据集,该数据集共有14个特征数据,1个分类标签y(1-同意贷款,0-不同意贷款),共690个申请者记录,部分数据如表
数据下载地址为: http://archive.ics.uci.edu/ml/machine-learning-databases/statlog/australian/
以前面600个申请者作为训练数据,后90个申请者作为测试数据,利用逻辑回归模型预测其准确率。
首先是数据获取
然后训练样本与测试样本划分,其中训练用的特征数据用x表示,预测变量用y表示,测试样本则分别记为x1和y1。
接着进行逻辑回归分析,其基本步骤如下
预测结果为: [0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1 0] 预测准确率为: 0.8333333333333334
大佬经常分享啊!学习!
何不开设项目
项目开设难度更高的 我得花一天时间才能写好的
最近准备开设个推荐系统算法的系列notebook