机器学习线性模型详解:线性回归与逻辑回归原理
一、前言线性模型是机器学习最基础、最经典的一类模型核心思想是通过特征的线性组合来建模输出。本文详细拆解线性回归和逻辑回归两大核心线性模型包含概念、原理、适用场景、推导思路、sklearn代码实战最后做二者的对比总结。二、线性回归2.1 概念线性回归是回归任务的基础模型用来学习自变量特征和连续型因变量标签之间的线性映射关系最终输出一个连续数值比如预测房价、气温、销售额。2.2 原理模型表达式\hat{y} w_1x_1 w_2x_2 … w_nx_n b \boldsymbol{w}^T\boldsymbol{x}b\boldsymbol{w}为权重向量b为偏置\hat{y}是预测值。2. 损失函数采用均方误差MSELoss \frac{1}{m}\sum_{i1}^m (y_i-\hat{y}_i)^2优化目标最小化MSE求解最优的w,b求解方法有两种正规方程直接数学闭式解 \boldsymbol{w}(XTX){-1}X^Ty梯度下降迭代逐步更新参数适合大数据场景2.3 适用范围标签是连续数值的回归问题特征和标签大致呈现线性相关数据尽量减少多重共线性、异常点干扰。2.4 实现逻辑数据预处理标准化特征、处理缺失值/异常值构造线性表达式定义MSE损失选用正规方程/梯度下降优化参数模型评估用MSE、RMSE、R^2指标衡量效果。2.5 sklearn关键代码及注释pythonfrom sklearn.linear_model import LinearRegressionfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import mean_squared_error, r2_scoreimport numpy as np1.构造模拟数据两个特征连续标签X np.random.rand(500,2)y 3 * X[:,0] 5 * X[:,1] 2 np.random.normal(0,0.1,500)2.划分训练集、测试集X_train, X_test, y_train, y_test train_test_split(X,y,test_size0.2,random_state42)3.初始化并训练线性回归底层默认用正规方程求解lr LinearRegression()lr.fit(X_train,y_train)4.预测与评估y_pred lr.predict(X_test)print(“权重w”,lr.coef_)print(“偏置b”,lr.intercept_)print(“均方误差MSE”,mean_squared_error(y_test,y_pred))print(“R²决定系数”,r2_score(y_test,y_pred))代码理解fit() 完成参数求解coef_ 输出各特征权重直观体现特征对结果的影响大小R^2越接近1模型拟合效果越好。三、逻辑回归3.1 概念逻辑回归虽带“回归”二字实际是二分类模型输入特征线性组合再通过Sigmoid函数把输出压缩到[0,1]区间得到样本属于正类的概率最终判定类别。3.2 原理先做线性计算z\boldsymbol{w}^T\boldsymbol{x}bSigmoid激活函数\sigma(z)\frac{1}{1e^{-z}}输出\hat{y}\sigma(z)代表样本为正类的概率一般以0.5为阈值\hat{y}\ge0.5判为正类否则负类。3. 损失函数交叉熵损失不用MSE避免梯度消失Loss-\frac{1}{m}\sum_{i1}^m \left[y_i\log(\hat{y}_i)(1-y_i)\log(1-\hat{y}_i)\right]优化使用梯度下降迭代更新w,b最小化交叉熵。3.3 适用范围二分类任务比如判断是否患病、是否点击广告、文本正负情感特征和对数几率近似线性关系可输出概率对可解释性要求较高的业务场景。3.4 实现逻辑数据预处理标准化特征、标签做0/1编码线性计算Sigmoid得到概率交叉熵损失梯度下降优化参数评估指标准确率、精确率、召回率、AUC。3.5 sklearn关键代码及注释pythonfrom sklearn.linear_model import LogisticRegressionfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_score, roc_auc_scoreimport numpy as np1.构造二分类模拟数据X np.random.rand(500,2)线性规则生成0/1标签z 2X[:,0] - 4X[:,1] 1y (1/(1np.exp(-z)) 0.5).astype(int)2.数据集划分X_train, X_test, y_train, y_test train_test_split(X,y,test_size0.2,random_state42)3.训练逻辑回归logit LogisticRegression()logit.fit(X_train,y_train)4.预测类别与概率y_pred logit.predict(X_test) # 输出0/1类别y_prob logit.predict_proba(X_test)[:,1] # 输出正类概率print(“权重w”,logit.coef_)print(“偏置b”,logit.intercept_)print(“准确率”,accuracy_score(y_test,y_pred))print(“AUC值”,roc_auc_score(y_test,y_prob))代码理解predict_proba 输出两类概率业务中可自定义分类阈值sklearn逻辑回归默认带L2正则防止过拟合。四、线性回归与逻辑回归联系与区别4.1 联系同属线性模型核心底层都是\boldsymbol{w}^T\boldsymbol{x}b的线性特征组合都用梯度下降作为主流参数优化手段都对输入特征做线性假设特征尺度差异大时都建议标准化参数w都具备可解释性权重绝对值越大该特征影响越强。4.2 区别对比维度 线性回归 逻辑回归任务类型 回归预测连续值 分类预测离散类别/概率激活函数 无直接输出线性结果 Sigmoid压缩到0~1概率区间损失函数 均方误差MSE 交叉熵损失输出范围 实数域 概率值模型假设 标签服从高斯分布 标签服从伯努利分布评估指标 MSE、RMSE、 准确率、召回率、AUC、F1五、总结线性回归面向回归任务用均方误差拟合连续输出逻辑回归面向分类任务用Sigmoid交叉熵建模概率二者共享线性内核只是任务目标、激活方式、损失设计不同两个模型都是机器学习入门必学内容工业界常用来做基线模型、业务可解释性建模。