【机器学习】线性回归

📅 2026/6/30 22:49:43
【机器学习】线性回归
简介利用回归方程函数对一个或多个自变量特征值和因变量目标值之间关系进行建模的一种分析方式。分类一元线性回归目标值只与一个因变量有关系。多元线性回归目标值与多个因变量有关系。常见场景钢轨伸缩长度与温度、昆虫鸣叫次数与天气、GDP与双十一销售额的关系...线性回归API的使用演示线性回归API入门——根据身高预测体重下面是已知数据预测176时对应的体重。from sklearn.linear_model import LinearRegression # 1.准备数据身高体重数据 x_train [[160], [166], [172], [174], [180]] #训练集的特征 y_train [56.3, 60.6, 65.1, 68.5, 75] #训练集的标签 x_test [[176]] #测试集的特征 # 2.数据预处理这里不需要 # 3.特征工程特征提取、特征预处理这里不需要 # 4.模型训练 # 创建模型对象 estimator LinearRegression() # 具体的训练动作 estimator.fit(x_train,y_train) # 因为是线性回归模型我们可以看一下斜率w权重截距b偏置 print(f权重 w {estimator.coef_}) # w [0.92942177] print(f偏置 b {estimator.intercept_}) # b -93.27346938775517 # 模型预测 y_pred estimator.predict(x_test) print(f身高176对应的体重为{y_pred}) # y_pred [70.3047619] # 模型评估还没讲到损失函数判断得到的回归方程的准确率就需要用到损失函数。误差概念用 预测值-真实值 就是误差。损失函数衡量每个样本预测值与真实值效果的函数也叫代价函数、成本函数、目标函数。损失函数越小误差和越小线性回归效果越好。损失函数分类最小二乘每个样本点误差的平方和对应损失函数均方误差Mean-Square Error, MSE:每个样本点误差的平方和 / 样本总数对应损失函数均方根误差Root Mean-Square Error, RMSE均方误差再开根号对应损失函数平均绝对误差Mean Absolute Error, MAE每个样本点误差的绝对值之和 / 样本总数对应损失函数其中是预测值是真实值。总结RMSE会放大预测误差较大的样本被结果的影响RMSE对异常数据敏感。不能只让RMSE无限小这说明模型对异常点也拟合的很好模型容易过拟合。一般MAE和RMSE结合来看。基础知识导数导数的四则运算导数求极值导数为0的位置是函数的极值点。正规方程法理解一元线性回归列出损失函数分别对w和b求偏导令式子等于0就能求解出w和b进而得到线性方程。多元线性回归其中,,,.该方法存在的问题如果运算量过大可能造成内存溢出。假设矩阵没有逆则可能无解。API实现sklearn. linear_model. LinearRegression (fit_interceptTrue)通过正规方程优化。参数fit_intercept是否计算偏置。属性LinearRegression. coef_ 回归系数LinearRegression. intercept_ 偏置用波士顿房价预测作为示例。在具体下面链接中。(没有就是还没写完...敬请期待梯度下降法重点梯度下降优化过程给定初始位置、步长学习率计算改点当前的梯度负方向向该负方向移动步长重复2,3步直至收敛收敛的两种情况1、两次差距小于指定阈值2、达到指定迭代次数梯度下降公式循环迭代求当前点的梯度更新当前的权重参数。其中α为学习率步长不能太大也不能太小在机器学习中一般在[ 0.001, 0.01 ]内取值。关于学习率步长步长决定了在梯度下降迭代的过程中每一步沿梯度负方向前进的长度。学习率太小下降速度会慢。学习率太大容易造成错过最低点产生下降过程中的震荡甚至梯度爆炸。梯度下降法分类全梯度下降算法FGDFull Gradient Descent每次迭代时使用全部样本的梯度值。不足由于使用全部数据集训练速度较慢。随机梯度下降算法SGD每次迭代时随机选择并使用一个样本梯度值。不足简单高效不稳定。若遇上噪声容易陷入局部最优解。小批量梯度下降算法min-batch——目前最多使用每次迭代时随机选择并使用小批量的样本梯度值。从m个样本中选择x个样本进行迭代(1xm)。随机平均梯度下降算法SAG每次迭代时随机选择一个样本的梯度值和以往样本的梯度值的均值。1.随机选择一个样本假设选择D样本计算其梯度值并存储到列表:[D]然后使用列表中的梯度值均值更新模型参数。2.随机再选择一个样本假设选择G样本计算其梯度值并存储到列表:[DG]然后使用列表中的梯度值均值更新模型参数。3.随机再选择一个样本假设又选择了D样本重新计算该样本梯度值并更新列表中D样本的梯度值使用列表中梯度值均值更新模型参数。4....以此类推直到算法收敛。不足初期训练表现不佳优化速度较慢。单变量梯度下降梯度是某一点切线斜率某一点的导数有方向为函数增长最快的方向。举个例子流程就像下图一样多变量梯度下降梯度是某一点的偏导数有方向为偏导数分量的向量方向API实现sklearn. linear model. SGDRegressor (losssquared loss, fit interceptTrue, learning rate constant, eta00.01)SGDRegressor类实现了随机梯度下降学习它支持不同的损失函数和正则化惩罚项来拟合线性回归模型。参数loss 损失函数类型eg:loss squared_lossfit_intercept是否计算偏置learning_rate学习率策略stringoptional可以配置学习率随着迭代次数不断减小。比如:学习率不断变小策略:‘invscaling : eta eta0 / pow (t, power_t0.25)eta00.01(学习率的值)属性SGDRegressorcoe_A回归系数SGDRegressor.intercept_偏置也是用波士顿房价预测作为示例。在具体下面链接中。总结