机器学习线性模型学习笔记——线性回归与逻辑回归一、线性回归1.概念线性回归是回归任务的基础线性模型用于预测连续型数值。它假设目标值与特征之间存在线性关系通过特征的线性组合来输出预测结果。模型表达式y^w1x1w2x2⋯wnxnb \hat y w_1x_1w_2x_2\dotsw_nx_n by^w1x1w2x2⋯wnxnbw1…wnw_1\dots w_nw1…wn特征权重bbb偏置项y^\hat yy^为预测值。2.原理以**均方误差(MSE)**作为损失函数衡量预测值y^\hat yy^与真实值yyy之间的差距Loss1m∑i1m(y^i−yi)2 Loss\frac1m\sum_{i1}^m(\hat y_i-y_i)^2Lossm1i1∑m(y^i−yi)2求解目标找到最优的权重www和偏置bbb最小化均方误差。求解方法最小二乘法直接解析求解或者梯度下降法迭代更新参数。3.适用范围任务预测连续数值例如房价预测、销量预测、温度预测。前提特征和目标变量近似满足线性关系。缺点对异常点敏感无法拟合非线性关系。4.实现逻辑数据准备读取数据集划分特征矩阵XXX与连续标签yyy数据集分割分为训练集训练模型、测试集评估模型模型实例化与训练在训练集上拟合求解KaTeX parse error: Cant use function \( in math mode at position 1: \̲(̲w,b\)模型预测输入测试集特征得到预测值模型评估使用MSE、R2R^2R2等指标评估拟合效果。5.sklearn关键代码及理解#导入包fromsklearn.linear_modelimportLinearRegressionfromsklearn.model_selectionimporttrain_test_splitfromsklearn.metricsimportmean_squared_error,r2_scoreimportpandasaspd#1.加载数据datapd.read_csv(house_data.csv)Xdata.drop(price,axis1)#特征ydata[price]#目标连续标签#2.划分训练集、测试集X_train,X_test,y_train,y_testtrain_test_split(X,y,test_size0.2,random_state10)#3.创建线性回归模型并训练modelLinearRegression()model.fit(X_train,y_train)#fit()自动学习权重w和截距b#4.预测y_predmodel.predict(X_test)#输出连续预测值#5.查看参数与评估print(特征权重w,model.coef_)print(截距b,model.intercept_)print(均方误差MSE,mean_squared_error(y_test,y_pred))print(\(R^2\)得分,r2_score(y_test,y_pred))代码理解LinearRegression()创建线性回归对象.fit(X_train,y_train)在训练数据上拟合模型求解参数.predict()输入特征输出连续预测结果coef_获取各特征权重intercept_获取偏置。二、逻辑回归Logistic Regression1.概念逻辑回归名字带有“回归”本质是二分类线性模型。在线性计算的基础上套入Sigmoid函数将线性输出压缩到KaTeX parse error: Cant use function \( in math mode at position 1: \̲(̲(0,1)\)区间代表样本属于正类的概率一般以0.5作为分类阈值。公式KaTeX parse error: Cant use function \( in math mode at position 16: \hat y\sigma(\̲(̲wxb\))\frac{1…2.原理先做线性运算KaTeX parse error: Cant use function \( in math mode at position 1: \̲(̲z\(wxb\)\)Sigmoid函数将zzz映射到0~1之间作为概率使用交叉熵损失函数衡量预测概率与真实标签之间差距通过梯度下降不断更新权重www和偏置bbb最小化损失。3.适用范围任务二分类问题例如判断是否患病、垃圾邮件识别、判断是否违约适合需要输出概率的场景特征与分类边界近似线性可分可以做特征重要性解释。4.实现逻辑数据准备读取数据集划分特征XXX和0/1形式的分类标签yyy数据集分割划分训练集、测试集模型实例化在训练集上训练预测可以直接输出类别0或1或者输出属于每一类的概率模型评估使用准确率、精确率、召回率评估。5.sklearn关键代码及理解fromsklearn.linear_modelimportLogisticRegressionfromsklearn.model_selectionimporttrain_test_splitfromsklearn.metricsimportaccuracy_scoreimportpandasaspd#1.读取数据集datapd.read_csv(class_data.csv)Xdata.drop(label,axis1)#特征ydata[label]#0/1分类标签#2.划分训练集和测试集X_train,X_test,y_train,y_testtrain_test_split(X,y,test_size0.2,random_state10)#3.创建并训练逻辑回归模型log_modelLogisticRegression()log_model.fit(X_train,y_train)#4.预测y_predlog_model.predict(X_test)#输出分类结果0/1y_pred_problog_model.predict_proba(X_test)#输出每一类的概率#5.输出参数与评估print(特征权重,log_model.coef_)print(模型准确率,accuracy_score(y_test,y_pred))print(各类别预测概率,y_pred_prob)代码理解LogisticRegression()创建逻辑回归模型.fit()训练数据学习参数.predict()直接输出分类结果0或者1.predict_proba()输出样本属于负类、正类的概率。三、线性回归与逻辑回归对比联系和区别✅ 联系二者都属于线性模型核心计算都包含KaTeX parse error: Cant use function \( in math mode at position 1: \̲(̲wxb\)线性表达式都可以用梯度下降算法优化参数都对异常值比较敏感需要对数据预处理在sklearn中使用范式一致fit()训练、predict()预测。✅ 区别对比项线性回归逻辑回归任务类型回归任务预测连续数值分类任务做二分类判断模型输出任意实数0~1之间的概率值激活函数无激活函数Sigmoid激活函数损失函数均方误差MSE交叉熵损失函数评价指标MSE、R²准确率、精确率、召回率四、总结线性回归与逻辑回归是机器学习最基础的线性模型。线性回归用于预测连续数值逻辑回归在线性计算基础上增加Sigmoid函数用来完成二分类任务。掌握这两个模型是学习机器学习的基础。