数据挖掘 数据挖掘——回归分析 回归分析 回归分析(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_ 回归分析是一种统计学方法,用于探索自变量(输入变量)与因变量(输出变量)之间的关系。在数据挖掘中,回归分析是预测和建模的关键技术,它通过建立数学模型来预测因变量的发展趋势。主要分为线性回归分析和非线性回归分析。 一、线性回归分析 1. 简单线性回归分析:涉及一个自变量和一个因变量,建立的模型为 y = a + bx + e,其中a是截距,b是斜率,e是随机误差。通过最小二乘法确定最佳拟合直线,即最小化残差平方和RSS。相关系数R2或判定系数衡量模型的拟合优度,R2越接近1,表示模型拟合得越好。 2. 多重线性回归分析:涉及多个自变量,模型为 y = a + b1x1 + b2x2 + ... + bnxn + e。除了最小二乘法,还需要考虑多重共线性问题,即自变量之间高度相关。调整判定系数R2用于纠正因变量数量的影响,考虑了自由度减少的情况。 二、非线性回归分析 1. 逻辑回归:用于处理二分类问题,自变量与因变量间呈非线性关系,通过sigmoid函数将连续值映射到(0,1)区间,表示概率。常用于预测事件发生的可能性。 2. 神经网络:复杂非线性模型,由多层节点构成,能模拟大脑的神经元工作原理,可以捕捉复杂的数据模式,适应多种类型的非线性关系。 回归分析的步骤: 1. 定义问题,确定自变量和因变量。 2. 制作散点图观察变量间的关系,并选择合适的回归模型类型。 3. 使用最小二乘法等方法估计模型参数,构建回归方程。 4. 对模型进行检验,如残差分析、假设检验等,评估模型的可靠性和有效性。 5. 应用模型进行预测,输入新数据预测因变量值。 示例代码中展示了如何在Python中使用`sklearn`库实现简单线性回归和多重线性回归。对于非线性回归,可以利用多项式特征转换将非线性问题转化为线性问题,例如,通过`PolynomialFeatures`类创建高次多项式特征,然后使用线性回归模型进行拟合。 回归分析广泛应用于经济、工程、社会科学等领域,对于理解和预测数据间的复杂关系具有重要价值。在实际应用中,除了基本的线性和非线性模型,还可以采用更高级的回归技术,如岭回归、套索回归、局部加权回归等,以提高预测的准确性和稳定性。
- 粉丝: 195
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助