分类与预测——回归分析

分类与预测—回归分析

一、回归分析

  • 回归分析:是一种通过建立模型来研究变量之间相互关系的一切关系、结构状态及进行模型预测的有效工具。
  • 常见的回归方法:线性回归、非线性回归、逻辑斯蒂回归、岭回归、主成分回归。
  • 回归分析通常所预测的目标函数是连续值。

线性回归

例:一元线性回归:某产品电视广告投入x(以百万元为单位)与产品销售量y(以亿个为单位)的数据。

image-20220908184413766

Y = 0.049693x + 6.7784

x=100,y=1174.8

给定由m个属性描述的样本x=(x1;x2;…;xm,其中xi是x在第i个属性上的取值,线性回归(linear regression)试图学得一个通过属性值的线性组合来进行预测的函数∶
f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w m x m + b f(x)=w_1x_1+w_2x_2+...+w_mx_m+b f(x)=w1x1w2x2...+wmxmb
一般用向量的形式写成∶
f ( x ) = w T + b f(x)=w^T+b f(x)=wT+b
其中w=(w1;w2;…;wm)。

给定训练数D={(x1,y1),(x2,y2),…,(xi,yi),…,(xn,yn)}其中xi=(xi1;xi2;…;xim),yi∈R

可用最小二乘法(least square method)对w 和b进行估计。

下面以一元线性回归为例,来详细讲解w和b的最小二乘法估计
f ( x i ) = w x i + b ,使得 f ( x i ) ≃ y i f(x_i)=wx_i+b,使得f(x_i)\simeq y_i fxi=wxib,使得fxiyi
最小二乘法就是基于预测值和真实值的均方差最小化的方法来估计参数w和b∶
( w ∗ , b ∗ ) = arg ⁡ min ⁡ ( w , b ) ∑ i = 1 n ( f ( x i ) − y i ) 2 = arg ⁡ min ⁡ ( w , b ) ∑ i = 1 n ( y i − w x i − b ) 2 \begin{aligned} \left(w^*, b^*\right) &=\underset{(w, b)}{\arg \min } \sum_{i=1}^n\left(f\left(x_i\right)-y_i\right)^2 \\ &=\underset{(w, b)}{\arg \min } \sum_{i=1}^n\left(y_i-w x_i-b\right)^2 \end{aligned} (w,b)=(w,b)argmini=1n(f(xi)yi)2=(w,b)argmini=1n(yiwxib)2
最小化均方误差
E ( w , b ) = ∑ i = 1 n ( y i − w x i − b ) 2 E_{(w,b)}=\sum^n_{i=1}(y_i-wx_i-b)^2 E(w,b)=i=1n(yiwxib)2
分别对 w w w b b b求偏导,可得
∂ E ( w , b ) ∂ w = 2 ( w ∑ i = 1 n x i 2 − ∑ i = 1 n ( y i − b ) x i ) ∂ E ( w , b ) ∂ b = 2 ( n b − ∑ i = 1 n ( y i − w x i ) ) \frac{\partial E_{(w,b)}}{\partial w}=2(w\sum^n_{i=1}x_i^2-\sum^n_{i=1}(y_i-b)x_i)\\ \frac{\partial E_{(w,b)}}{\partial b}=2(nb-\sum^n_{i=1}(y_i-wx_i)) wE(w,b)=2(wi=1nxi2i=1n(yib)xi)bE(w,b)=2(nbi=1n(yiwxi))
令上两式为零可得到 w w w b b b 最优解的闭式(closed-form)解:
w = ∑ i = 1 n y i ( x i − x ˉ ) ∑ i = 1 n x i 2 − 1 n ( ∑ i = 1 n x i ) 2 b = 1 n ∑ i = 1 n ( y i − w x i ) w=\frac{\sum^n_{i=1}y_i(x_i-\bar{x})}{\sum^n_{i=1}x_i^2-\frac{1}{n}(\sum^n_{i=1}x_i)^2} \\b=\frac{1}{n}\sum^n_{i=1}(y_i-wx_i) w=i=1nxi2n1(i=1nxi)2i=1nyi(xixˉ)b=n1i=1n(yiwxi)
其中, x ˉ = 1 n ∑ i = 1 n x i \bar{x}=\frac{1}{n}\sum^n_{i=1}x_i xˉ=n1i=1nxi

只要学到w和b,模型就可以确定;对于任意的测试样例 x x x,只要输入它的属性值,就可以输出它的预测值。

线性回归假定输入空间到输出空间的函数映射成线性关系,但现实应用中,很多问题都是非线性的。为拓展其应用场景,我们可以将线性回归的预测值做一个非线性的函数变化去逼近真实值,这样得到的模型统称为广义线性回归(generalized linear regression):
y = g ( w T x + b ) y=g(w^Tx+b) y=g(wTx+b)
其中g(·)称为联系函数(link function)。

理论上,联系函数g(·)可以是任意函数,比如当g(·)被指定为指数函数时,得到的回归模型称为对数线性回归
y = e w T x + b y=e^{w^Tx+b} y=ewTx+b
之所以叫对数线性回归,是因为它将真实值的对数作为线性回归逼近的目标,即∶
l n y = w T x + b lny=w^Tx+b lny=wTx+b

逻辑斯蒂回归

前面的内容都是在讲解如何利用线性模型进行回归学习,完成回归任务。但如果我们要做的是分类任务该怎么办?

为了简化,我们先考虑二分类任务,其输出标记 y∈ {0,1},但线性回归模型产生的预测值$z=w^Tx+b 是实值,因此,我们需将实值 是实值,因此,我们需将实值 是实值,因此,我们需将实值z$转换为0/1值。最容易想到的联系函数g(·)当然是单位阶跃函数∶
y = { 0 , z < 0 ; 如果预测值大于零就判为正例 0.5 , z = 0 ; 小于零就判为反例 1 , z > 0 ; 预测值为临界值零则可任意判别 y=\begin{cases} &0, & z<0;&\bf{如果预测值大于零就判为正例} \\ &0.5, & z=0; &\bf{小于零就判为反例} \\ &1, & z>0; &\bf{预测值为临界值零则可任意判别} \end{cases} y= 0,0.5,1,z<0;z=0;z>0;如果预测值大于零就判为正例小于零就判为反例预测值为临界值零则可任意判别
但单位阶跃函数不连续,因此不能直接用作联系函数g(·)。于是我们希望找到能在一定程度上近似单位阶跃函数的替代函数,并希望它在临界点连续且单调可微。逻辑斯蒂函数(logistic function)正是这样一个常用的替代函数∶
y = 1 1 + e − z y = 1 1 + e − ( w T x + b ) y=\frac {1}{1+e^{-z}}\\ y=\frac {1}{1+e^{-(w^Tx+b)}} y=1+ez1y=1+e(wTx+b)1

逻辑斯蒂(logistic function)函数形似s,是Sigmoid函数的典型代表,它将z值转化为一个接近0或1的y 值,并且其输出值在z=0附近变化很陡。

其对应的模型称为逻辑斯蒂回归(logistic regression)。需要特别说明的是,虽然它的名字是“回归”,但实际上却是一种分类学习方法。

逻辑斯蒂回归有很多优点∶

  • 1)可以直接对分类可能性进行预测,将 y y y视为样本 x x x作为正例的概率;
  • 2)无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题;
  • 3)是任意阶可导的凸函数,可直接应用现有数值优化算法求取最优解。

y y y 视为样本x属于正例的概率 p ( y = 1 ∣ x ) p(y=1|x) p(y=1∣x),根据逻辑斯蒂函数很容易得到∶
y = 1 1 + e − ( w T x + b ) → p ( y = 1 ∣ x ) = e w T x + b 1 + e w T x + b → p ( y = 1 ∣ x ) = 1 1 + e w T x + b y=\frac{1}{1+e^{-(w^Tx+b)}}\\ \rightarrow p(y=1|x)=\frac{e^{w^Tx+b}}{1+e^{w^Tx+b}}\\ \rightarrow p(y=1|x)=\frac{1}{1+e^{w^Tx+b}} y=1+e(wTx+b)1p(y=1∣x)=1+ewTx+bewTx+bp(y=1∣x)=1+ewTx+b1
给定训练数据集 { ( x i , y i ) } i = 1 n \{(x_i,y_i)\}^n_{i=1} {(xi,yi)}i=1n,可通过"极大似然法"(maximum likelihood method)来估计w和b,即最大化样本属于其真实标记的概率(对数似然)∶
ℓ ( w , b ) = ∑ i = 1 n ln ⁡ p ( y i ∣ x i ; w , b ) \ell(\boldsymbol{w}, b)=\sum_{i=1}^n \ln p\left(y_i \mid \boldsymbol{x}_i ; \boldsymbol{w}, b\right) (w,b)=i=1nlnp(yixi;w,b)
逻辑斯蒂回归中的因变量只有1和0(可理解为是/否、发生/不发生等)两种取值。

假设在 p p p个独立自变量 x 1 , x 2 , … , x p x1,x2,…,xp x1x2xp 的作用下,记y取1的概率为p=P(y=1|X),y取0的概率是1-p,取1和取0的概率之比为 p 1 − p \frac{p}{1-p} 1pp,成为事件的优势比,对这个优势比取对数,也就是进行logistics变化,得到 l o g i t ( p ) = l n ( p 1 − p ) logit(p)=ln(\frac{p}{1-p}) logit(p)=ln(1pp)

l o g i t ( p ) = l n ( p 1 − p ) = z logit(p)=ln(\frac{p}{1-p})=z logit(p)=ln(1pp)=z,则 p = 1 1 + e − z p=\frac{1}{1+e^{-z}} p=1+ez1即为逻辑斯蒂函数。

image-20220909093854444

建模步骤:

① 根据分析目的设置指标变量(因变量和自变量),然后收集数据,根据收集到的数据对特征再次进行筛选。

② y取1的概率是p=P(y=1|X),取0的概率是1-p。用 l n ( p 1 − p ) ln(\frac{p}{1-p}) ln(1pp)和自变量列出线性回归方程,估计出模型中的回归系数。

③ 进行模型检验。模型有效性的检验指标有很多,最基本的是正确率,其次是混淆矩阵、roc曲线,ks值等。

④ 模型应用。输入自变量的取值就可以得到预测变量的值,或者根据预测变量的值去控制自变量的取值。

image-20220909094056077

例题,某银行对降低贷款拖欠率的数据进行个逻辑斯的回归建模。

image-20220909094427561

代码实现:

import pandas as pd
from sklearn.linear_model import LogisticRegression as LR

# 参数初始化
filename = './bankloan.xls'
data = pd.read_excel(filename)

x = data.iloc[:, :8].values
y = data.iloc[:, 8].values

lr = LR()  # 建立逻辑回归模型
lr.fit(x, y)  # 用筛选后的特征数据来训练模型
print('模型的平均准确度为:%s' % lr.score(x, y))

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据挖掘 数据挖掘——回归分析 回归分析 回归分析(Regerssion Analysis) ——研究⾃变量与因变量之间关系形式的分析⽅法,它主要是通过建⽴因变量y 与影响他的⾃变量Xi 之间的回归模型,来预测因变量y 的发 展趋势。 ⼀、回归分析分类 线性回归分析 1. 简单线性回归分析 2. 多重线性回归分析 ⾮线性回归分析 1. 逻辑回归 2. 神经⽹络 ⼆、回归分析的步骤: 根据预测⽬标,确定⾃变量与因变量 绘制散点图,确定回归模型类型 估计模型参数,建⽴回归模型 对回归模型进⾏检验 利⽤回归模型进⾏预测 简单线性回归模型: y = a + bx + e (e为随机误差, ei 2 为残差,是判断模型拟合好坏的重要指标),使⽤最⼩⼆乘法获得模型参数   回归⽅程的精度就是⽤来表⽰实际观测点和回归⽅程的拟合程度的指标,使⽤判定系数来度量。   判定系数 = 相关系数R2 = ESS/TSS = 1- (RSS/TSS) ,其中TSS 为总离差平⽅和,ESS 为回归平⽅和 ,RSS 为残差平⽅和 #绘制散点图和相关系数 plt.scatter(data.⼴告投⼊,data.销售额) data.corr() #估计模型参数,建⽴回归模型 lrmodel = LinearRegression() x = data[['⼴告投⼊']] y = data[['销售额']] #训练模型 lrmodel.fit(x,y) #对模型进⾏检验,得到模型评分 lrmodel.score(x,y) #利⽤模型进⾏预测,⾃变量需要⽤数组进⾏传⼊ lrmodel.predict([[50]]) #查看参数 a = lrmodel.intercept_[0] b = lrmodel.coef_[0][0] 多重线性回归模型(Multiple Linear Regression): y = a + b1 x1 + b2 x2 + b3 x3 + …… + bn xn + e (e为随机误差, ei 2 为残差,是判断模型 拟合好坏的重要指标),使⽤最⼩⼆乘法获得模型参数   回归⽅程的精度就是⽤来表⽰实际观测点和回归⽅程的拟合程度的指标,使⽤判定系数来度量。   调整判定系数 = 相关系数R2 = ESS/TSS = 1- [RSS/(n-k-1)] / [TSS/(n-1)] ,其中TSS 为总离差平⽅和,ESS 为回归平⽅和 ,RSS 为残 差平⽅和 ,n为样本个数 ,k为变量个数 import matplotlib from pandas.tools.plotting import scatter_matrix #绘制两两之间的散点图并得到相关系数 font = {'family':'SimHei'} matplotlib.rc('font',**font) scatter_matrix(data_1[['店铺的⾯积','距离最近的车站','⽉营业额']], figsize=(10,10),diagonal='kde') data_1[['店铺的⾯积','距离最近的车站','⽉营业额']].corr() #估计模型参数,建⽴回归模型 lrmodel_1 = LinearRegression() x1 = data_1[['店铺的⾯积','距离最近的车站']] y1 = data_1[['⽉营业额']] #训练模型 lrmodel_1.fit(x1,y1) #对模型进⾏检验,得到模型评分 lrmodel_1.score(x1,y1) #利⽤模型进⾏预测,⾃变量需要⽤数组进⾏传⼊ lrmodel_1.predict([[10,110]]) lrmodel_1.predict([[10,110],[20,120]]) #查看参数 a1 = lrmodel_1.intercept_[0] b1 = lrmodel_1.coef_[0][0] b2 = lrmodel_1.coef_[0][1] ⼀元⾮线性回归模型(Univariate Nonlinear Regression):只包括⼀个⾃变量和⼀个因变量,且⼆者的关系可⽤⼀条曲线近似表⽰,则称 为⼀元⾮线性回归(⼀元n次⽅程) y = a2 x2+ a1 x1 + a0 x0 (⼀元⼆次⽅程) 核⼼思想:⽤换元法将⼀元多次⽅程转化为多元⼀次⽅程 使⽤的关键类:from sklearn.preprocessing import PolynomialFeatures 例如:两个变量的散点图类似于⼀元⼆次⽅程的⼀部分,所以可以使⽤⼀元⼆次⽅程作为模型; 为了得到模型的结果,需要⽣成⼀个次⽅为2次的转换类对象: pf = PolynomialFeatures(degree=2) #degree为次数 x_
matlab常用代码大全,帮助你科研,论文实证分析,数模竞赛 第44章 层次分析法 第45章 灰色关联度 第46章 熵权法 第47章 主成分分析 第48章 主成分回归 第49章 偏最小二乘 第50章 逐步回归分析 第51章 模拟退火 第52章 RBF,GRNN,PNN-神经网络 第53章 竞争神经网络与SOM神经网络 第54章 蚁群算法tsp求解 第55章 灰色预测GM1-1 第56章 模糊综合评价 第57章 交叉验证神经网络 第58章 多项式拟合 plotfit 第59章 非线性拟合 lsqcurefit 第60章 kmeans聚类 第61章 FCM聚类 第62章 arima时间序列 第63章 topsis 第1章 BP神经网络的数据分类——语音特征信号分类 第2章 BP神经网络的非线性系统建模——非线性函数拟合 第3章 遗传算法优化BP神经网络——非线性函数拟合 第4章 神经网络遗传算法函数极值寻优——非线性函数极值寻优 第5章 基于BP_Adaboost的强分类器设计——公司财务预警建模 第6章 PID神经元网络解耦控制算法——多变量系统控制 第7章 RBF网络的回归--非线性函数回归的实现 第8章 GRNN网络的预测----基于广义回归神经网络的货运量预测 第9章 离散Hopfield神经网络的联想记忆——数字识别 第10章 离散Hopfield神经网络的分类——高校科研能力评价 第11章 连续Hopfield神经网络的优化——旅行商问题优化计算 第12章 初始SVM分类与回归 第13章 LIBSVM参数实例详解 第14章 基于SVM的数据分类预测——意大利葡萄酒种类识别 第15章 SVM的参数优化——如何更好的提升分类器的性能 第16章 基于SVM的回归预测分析——上证指数开盘指数预测. 第17章 基于SVM的信息粒化时序回归预测——上证指数开盘指数变化趋势和变化空间预测 第18章 基于SVM的图像分割-真彩色图像分割 第19章 基于SVM的手写字体识别 第20章 LIBSVM-FarutoUltimate工具箱及GUI版本介绍与使用 第21章 自组织竞争网络在模式分类中的应用—患者癌症发病预测 第22章 SOM神经网络的数据分类--柴油机故障诊断 第23章 Elman神经网络的数据预测----电力负荷预测模型研究 第24章 概率神经网络的分类预测--基于PNN的变压器故障诊断 第25章 基于MIV的神经网络变量筛选----基于BP神经网络的变量筛选 第26章 LVQ神经网络的分类——乳腺肿瘤诊断 第27章 LVQ神经网络的预测——人脸朝向识别 第28章 决策树分类器的应用研究——乳腺癌诊断 第29章 极限学习机在回归拟合及分类问题中的应用研究——对比实验 第30章 基于随机森林思想的组合分类器设计——乳腺癌诊断 第31章 思维进化算法优化BP神经网络——非线性函数拟合 第32章 小波神经网络的时间序列预测——短时交通流量预测 第33章 模糊神经网络的预测算法——嘉陵江水质评价 第34章 广义神经网络的聚类算法——网络入侵聚类 第35章 粒子群优化算法的寻优算法——非线性函数极值寻优 第36章 遗传算法优化计算——建模自变量降维 第37章 基于灰色神经网络的预测算法研究——订单需求预测 第38章 基于Kohonen网络的聚类算法——网络入侵聚类 第39章 神经网络GUI的实现——基于GUI的神经网络拟合、模式识别、聚类 第40章 动态神经网络时间序列预测研究——基于MATLAB的NARX实现 第41章 定制神经网络的实现——神经网络的个性化建模与仿真 第42章 并行运算与神经网络——基于CPU/GPU的并行神经网络运算 第43章 神经网络高效编程技巧——基于MATLAB R2012b新版本特性的探讨

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

W_chuanqi

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

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

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

打赏作者

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

抵扣说明:

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

余额充值