【金山文档 | WPS云文档】 机器学习回归分析
https://kdocs.cn/l/cdh84symuVEI
很多图没显示,懒的弄了,文章内容挺多的,参考学习了6-8篇文档,整理到word里,很多没来得及留下出处,主要是以学习为主,分享学习内容,请多包涵
回归分析
◆回归分析是一种预测模型,用于研究自变量和因变量之间的关系
◆核心思想:当自变量发生变化时,分析因变量的变化值,并且对自变量的要求是彼此独立。
回归分析分为:
单变量线性回归:
针对只有一个自变量的情况,通过最小二乘法求解最佳拟合直线,使得预测值与真 实值的误差平方和最小。
多变量线性回归:
针对多个自变量的情况,通过最小二乘法求解最佳拟合平面或超平面,使得预测值 与真实值的误差平方和最小。
非线性回归:
当自变量和因变量之间的关系不是线性的时,采用非线性回归模型,例如指数回归、 幂函数回归等。
泊松回归:
适用于因变量是计数数据,且服从泊松分布的情况。泊松回归以自变量为因素,建 立因变量的期望与自变量的关系,并用极大似然估计法来估计参数。
常用的回归评价指标
均方误差(MSE)、
均方根误差(RMSE)、
平均绝对误差(MAE)等。
同时,可以采用交叉验证和正则化等方法来对模型进行优化和泛化。
线性回归
在使用线性回归进行数据分析时,要求自变量是连续的,换句话说,线性回归是使用直线(也称之为回归线)来建立因变量与一个或者多个自变量之间的联系。
我们将y作为因变量,x作为自变量,得到方程:
当我们只用一个x来预测y,就是一元线性回归,也就是在找一个直线来拟合数据。
统计会将理论与实际间的差别表示出来,也就是“误差”。
损失函数
残差说白了就是真实值和预测值间的差值(也可以理解为差距、距离),用公式表示是:
于某个广告投入xi,我们有对应的实际销售量yi,和预测出来的销售量yi(通过将xi代入公式y=β0+β1x计算得到),计算ei=yi−yi的值,再将其平方(为了消除负号),对于我们数据中的每个点如此计算一遍,再将所有的 ei2相加,就能量化出拟合的直线和实际之间的误差。
用公式表示就是:
残差平方和,即SSE(Sum of Squares for Error),在机器学习中它是回归问题中最常用的损失函数。这个函数的值越小,说明直线越能拟合我们的数据。
主要特征
①自变量和因变量之间的关系是线性的。
②多重共线性,自相关和异方差对多元线性回归的影响均较大。
③线性回归对异常值非常地敏感,异常值的存在会影响预测的结果。
④当同时处理的自变量较多时,需要使用逐步回归的方式来逐步确定显著性变量,而无需人工干预
核心思想
逐个引入自变量至模型中,并执行F检验,t检验等来对变量进行筛选,当新的变量被引入且模型的结果不能得到优化时,对该变量的操作即是消除,直至模型的结果相对稳定为止。
逐步回归的目的:
选择重要的自变量,使用最少的变量来实现具有最大化预测能力的模型。
在选择变量的同时,逐步回归也是降维技术的一种,其主要方法包括前进法和后退法
◆前进法:首先选择最显著的变量,之后逐渐增加次显著变量
◆后退法:首先选择所有的变量,并且逐渐剔除不显著的变量,即无关紧要的变量。
逻辑回归
逻辑(Logistic)回归是数据分析当中较为常用的机器学习算法
◆算法输出是概率估算值,使用Sigmoid函数将该概率估算值映射到[0,1]区间内,便可以完成样本的类别划分。
◆逻辑回归算法对样本的数据量有一定的要求。当样本数据量较小时,概率估计存在的误差较大。
逻辑回归(Logistic Regression)是一种用于解决分类问题的线性回归算法。尽管它名为"回归",但实质上是一种分类算法,用于预测二元或多元离散的类别标签。
问题描述和转化
一个二分类问题给的条件:
分类标签Y {0,1},特征自变量X{x1,x2,……,xn}
如何根据我们现在手头上有的特征X来判别它应该是属于哪个类别(0还是1)
问题的求解转化为:
我们如何找一个模型,即一个关于X的函数来得出分类结果(0或1)
输入:
初步思路:
找一个线性模型来由X预测Y
Sigmoid函数(逻辑函数)
判断标准
回归的结果输入到sigmoid函数当中
输出结果:
[0, 1]区间中的一个概率值,默认为0.5为阈
通过属于某个类别的概率值来判断是否属于某个类别,并且这个类别默认标记为1(正 例),另外的一个类别会标记为0(反例)。(方便损失计算)
结果解释(重要):
假设有两个类别A,B,并且假设我们的概率值为属于A(1)这个类别的概率值。现在有一个样本的输入到逻辑回归输出结果0.55,那么这个概率值超过0.5,意味着我们训练或者预测的结果就是A(1)类别。那么反之,如果得出结果为0.3那么,训练或者预测结果就为B(0)类别。
逻辑回归的阈值是可以进行改变的
对数似然损失
其中y为真实值,hθ(x)为预测值
−log(P), P 值越大,结果越小,所以我们可以对着这个损失的式子去分析
优化
同样使用梯度下降优化算法,去减少损失函数的值。这样去更新逻辑回归前面对应算法的权重参数,提升原本属于1类别的概率,降低原本是0类别的概率。
逻辑回归api介绍
sklearn.linear_model.LogisticRegression(solver='liblinear', penalty=‘l2’, C = 1.0)
solver可选参数:{liblinear, sag, saga,newton-cg, lbfgs},
·默认: ‘liblinear’;用于优化问题的算法。
·对于小数据集来说,“liblinear”是个不错的选择,而“sag”和’saga’对于 大型数据集会更快。
·对于多类问题,只有newton-cg、sag、'saga和lbfgs可以处理多项损失; “liblinear”仅限于“one-versus-rest”分类。
penalty:正则化的种类
C:正则化力度
默认将类别数量少的当做正例
LogisticRegression方法相当于 SGDClassifier(loss=“log”, penalty=" "),SGDClassifier实现了一个普通的随机梯度下降学习。而使用LogisticRegression(实现了SAG)
特点:
1. 简单而高效:逻辑回归计算成本低,并且易于实现。
2. 可解释性强:逻辑回归能够提供模型参数的解释和各个特征对结果的影响程度。
3. 鲁棒性好:逻辑回归对于异常值和噪声的影响较小。
4. 可扩展性强:逻辑回归可以通过引入正则化项等方法来处理过拟合问题。
需要注意的是,逻辑回归假设数据服从伯努利分布或二项分布,因此适用于二元分类问题。对于多元分类问题,可以借助一对多(One-vs-All)或一对一(One-vs-One)的策略进行拓展。
多项式回归
在回归分析中,有时会遇到线性回归的较差的直线拟合效果,如果发现散点图中的数据点是多项式曲线,则可以考虑使用多项式回归进行分析。多项式回归通过引入高次项来拟合数据的非线性关系
◆多项式回归的使用可以减少模型的误差,但是如果处理不当,很容易导致模型过拟合,回归分析完成后,需要对结果进行分析,并对结果进行可视化以查看拟合程度。
多项式回归(Polynomial Regression)是一种通过拟合多项式函数来解决回归问题的机器学习算法。与线性回归不同,多项式回归可以拟合出更复杂的曲线关系,从而更好地适应非线性的数据分布。
在多项式回归中,我们通过将输入特征的多项式项添加到线性模型中,来扩展线性模型的表达能力。其数学形式为:
y = w0 + w1*x + w2*x^2 + ... + wn*x^n
其中,y 是待预测的因变量,x 是自变量,w0、w1、...、wn 是模型的参数,n 是多项式的阶数。
多项式回归的关键在于选择适当的多项式阶数。当阶数为1时,多项式回归等价于线性回归;当阶数大于1时,多项式回归能够拟合出曲线关系,并更好地描述数据间的非线性关系。
步骤
1. 准备数据:收集并准备包含自变量和因变量的数据集。
2. 特征转换:将自变量进行特征转换,添加多项式项,并进行标准化处理。
3. 模型训练:使用训练数据拟合多项式回归模型,估计模型参数。
4. 模型评估:使用测试数据评估模型的性能,可以借助均方误差(Mean Squared Error)等指标进行评估。
5. 模型预测:利用训练好的多项式回归模型进行预测。
在选择多项式的阶数时需要权衡模型的复杂度和泛化能力,可以通过交叉验证等方法选择合适的阶数。
适用于以下场景:
数据中的非线性关系显著,如某些时间序列预测、经济数据分析等。
需要通过模型捕捉复杂的模式和趋势。
有足够的数据支持模型训练,避免过拟合风险。
多项式回归的优缺点
优点
捕捉非线性关系:多项式回归能够很好地捕捉数据中的非线性关系,通过引入多项式特征,使模型能够拟合更加复杂的模式。
扩展性:在现有线性回归模型的基础上,只需引入多项式特征,就能扩展为多项式回归,具有较好的灵活性和扩展性。
易于理解:相比其他复杂的非线性模型(如神经网络),多项式回归具有较好的可解释性,模型参数和特征之间的关系更易于理解和解释。
缺点
容易过拟合:多项式回归在引入高阶多项式特征时,容易导致模型过拟合。尤其是在样本量较少的情况下,高阶多项式可能会过度拟合训练数据,无法很好地泛化到新数据。
特征间的共线性问题:当特征之间存在较高的相关性时,多项式回归模型可能会受到共线性问题的影响,导致模型参数估计不稳定。
计算复杂度高:随着多项式阶数的增加,模型的计算复杂度会显著增加,尤其是在处理大规模数据集时,训练和预测的计算时间和资源消耗较大。
正则化方法
为了解决过拟合问题,可以在多项式回归中引入正则化方法。
常见的正则化方法有岭回归(L2正则化)和Lasso回归(L1正则化)。
岭回归
◆岭回归广泛用于共线性数据分析,它是有偏估计的回归方法,在最小二乘估计方法的基础上进行了改进,通过舍弃最小二乘法的无偏性,使回归系数更加稳定和稳健。
岭回归(Ridge Regression)是一种用于解决线性回归中的过拟合问题的技术,其主要思想为通过引入正则化项来限制模型参数的大小,从而降低模型的复杂度。
在线性回归中,我们可以使用最小二乘法估计模型参数。然而,当自变量之间存在多重共线性(Multicollinearity)时,即自变量之间存在高度相关性时,最小二乘法的估计会变得不稳定,容易受到噪声的干扰,导致过拟合问题。
损失函数
岭回归通过在损失函数中加入参数的平方和惩罚项,来限制模型参数的大小,从而防止过拟合。其损失函数如下:
其中,ruanmuda是正则化参数,用于控制惩罚项的权重。
岭回归通过在损失函数中引入L2正则化项,对模型参数进行惩罚,使得模型参数更加平滑、稳定,从而降低过拟合风险。其数学形式为:
min ||y - Xw||2 + alpha * ||w||2
其中,y 是因变量,X 是自变量的设计矩阵,w 是待求解的模型参数,alpha 是正则化系数,||w||^2 表示 w 的平方和。
需要注意的是,正则化系数 alpha 控制了正则化项对模型参数的影响程度,因此需要根据实际情况进行选择和调整。当 alpha=0 时,岭回归退化成普通的最小二乘法;当 alpha 值较大时,对模型参数的惩罚力度增大,会导致模型更加趋向于简单、稳定。
优点
1. 能够有效处理自变量之间存在多重共线性的情况,减少过拟合问题。
2. 可以通过交叉验证等方法来确定正则化系数的最佳取值。
3. 能够保留所有自变量,不需要进行特征选择。
缺点
如不易处理非线性关系、对异常值敏感等
LASSO回归
LASSO回归的特征与岭回归的特征相似,在拟合模型的同时进行变量筛选和复杂性调整。
◆变量筛选:将变量逐步放入模型中,以获得自变量的更好组合。
◆复杂度调整:通过参数调整来控制模型的复杂度,例如减少自变量的数量,以避免过拟合。
LASSO回归还擅长处理多重共线性以及具有一定噪声和冗余的数据,并且可以支持对连续因变量,二元、多元离散变量的数据分析。
LASSO回归(Least Absolute Shrinkage and Selection Operator Regression)是一种用于线性回归的正则化方法,与岭回归类似。LASSO回归通过在损失函数中引入L1正则化项,对模型参数进行惩罚,从而实现特征选择和模型稀疏性。
与岭回归相比,LASSO回归的优势之一在于它能够将某些模型参数压缩到零,从而实现自动的特征选择。这是因为L1正则化项具有稀疏化的特性,它倾向于使得一部分模型参数为零,从而将相关特征排除在模型之外。
损失函数:
Lasso回归通过在损失函数中加入参数的绝对值和惩罚项,来进行特征选择和防止过拟合。
LASSO回归的数学形式为:
min (1/2n) * ||y - Xw||^2 + alpha * ||w||
其中,y 是因变量,X 是自变量的设计矩阵,w 是待求解的模型参数,alpha 是正则化系数,||w|| 表示 w 的L1范数。
与岭回归类似,LASSO回归也可以通过调整正则化系数 alpha 的取值来控制特征选择的程度。当 alpha=0 时,LASSO回归退化成普通的最小二乘法;当 alpha 值较大时,对模型参数的惩罚力度增加,会导致更多的模型参数被压缩到零,从而实现了特征选择。
优点
1. 能够自动进行特征选择,剔除对目标变量影响较小的特征,提高模型的解释能力和泛化能力。
2. 可以通过交叉验证等方法来确定正则化系数的最佳取值。
3. 产生稀疏模型,减少模型复杂度,避免过拟合问题。
缺点
对相关特征的选择有时不稳定、不易处理相关特征
常见误区与注意事项
误区一:过度拟合多项式阶数
在使用多项式回归时,可能会倾向于增加多项式的阶数,以期获得更好的拟合效果。然而,过高的多项式阶数往往会导致模型过拟合,即在训练数据上表现很好,但在新数据上的表现很差。为避免过拟合,应根据实际情况选择适当的多项式阶数,并使用交叉验证等方法评估模型的泛化能力。
误区二:忽视数据预处理
数据预处理在多项式回归中同样重要。在建模之前,应对数据进行充分的清洗和处理,包括处理缺失值、异常值和特征缩放等。这可以帮助提高模型的训练效果和预测准确性。例如,特征缩放可以防止在多项式特征生成时出现数值不稳定的问题。
注意事项:选择合适的模型评估方法
均方误差(MSE): 衡量模型预测值与实际值之间的平均平方误差。MSE 越小,模型性能越好。
决定系数(R²): 衡量模型对数据的解释能力。R² 取值范围为 0 到 1,R² 越接近 1,模型性能越好。
交叉验证: 将数据集划分为若干子集,依次使用一个子集作为验证集,其余子集作为训练集,计算每次验证的性能指标,并取平均值。常见的交叉验证方法有 k 折交叉验证和留一法交叉验证等。