线性回归线性回归是最简单的有监督回归算法用于建立自变量特征 x 和因变量预测值 y 之间的线性数学关系目标是用一条直线高维为超平面拟合数据实现连续值预测。损失函数误差 预测值 - 真实值损失函数就是用来描述每个样本和其预测值之间关系的各个样本的误差和越小越好公式正规方程求解线性回归最小二乘的最优参数不需要迭代一步直接算出解析解。正规方程的问题如果运算量可能内存溢出如果矩阵没有逆则计算不出来公式梯度下降梯度下降是机器学习最基础、最常用的优化算法核心目的不断迭代更新参数最小化损失函数代价函数找到函数最小值点。更新公式例子梯度下降分类全梯度下降每次更新参数使用全部 m 条样本计算梯度随机梯度下降每次只用 1 条随机样本更新参数每看完一条样本立刻更新 θ不用等全部样本算完。小批量梯度下降 Mini-batch GD深度学习最常用把数据集切成一小块一小块batch如 32/64 条每次取一小批样本算梯度更新。线性回归例子# 导包fromsklearn.linear_modelimportLinearRegression# 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.模型训练estimatorLinearRegression()estimator.fit(x_train,y_train)# 显示权重(斜率)与偏置截距print(f权重{estimator.coef_})print(f偏置{estimator.intercept_})# 5.模型预测y_predestimator.predict(x_test)print(y_pred)欠拟合、过拟合、正好拟合欠拟合欠拟合就是训练集和测试集表现都不好解决方法增加模型复杂度添加特征列过拟合过拟合就是训练集表现好但是测试集表现不好解决方法手动筛选(减少)特征还可以L1和L2正则化L1和L2都是基于惩罚系统来修改特征列的权重惩罚系数越大修改力度越大对应的权重就越小正好拟合正好拟合就是训练集和测试集表现都好线性回归的正则化L1 正则Lasso 套索回归Lasso几乎全部权重归零只剩极少数有用特征不重要权重直接 0自动删除特征L2 正则Ridge 岭回归Ridge所有权重无限贴近 0模型变成水平线欠拟合所有权重同步缩小全部不为 0保留所有特征