网站建设的验收公司网站制作重庆

张小明 2026/1/12 4:27:14
网站建设的验收,公司网站制作重庆,学画图设计用什么软件,淘宝网中国站电脑版登录《深入浅出python机器学习》读书笔记#xff08;四#xff09; 第四章 广义线性模型 文章目录《深入浅出python机器学习》读书笔记#xff08;四#xff09;前言一、线性回归模型线性回归模型的基础示例使用线性回归预测糖尿病数据集模型评估要点#xff1a;二、岭回归—…《深入浅出python机器学习》读书笔记四第四章 广义线性模型文章目录《深入浅出python机器学习》读书笔记四前言一、线性回归模型线性回归模型的基础示例使用线性回归预测糖尿病数据集模型评估要点二、岭回归——使用L2正则化的线性模型使用岭回归预测糖尿病数据集岭回归参数调节线性回归 vs 弱正则化岭回归的对比三、套索回归——使用L1正则化的线性模型使用套索回归预测糖尿病数据集套索回归的参数调节Lasso回归的应用场景前言在机器学习领域常用的线性模型包括线性回归、岭回归、套索回归、逻辑回归和线性SVC等。我们这里只讨论线性回归、岭回归和套索回归。一、线性回归模型线性回归模型的基础示例# 导入必要的库importnumpyasnp# 用于数值计算和数组操作importmatplotlib.pyplotasplt# 用于数据可视化fromsklearn.linear_modelimportLinearRegression# 线性回归模型fromsklearn.datasetsimportmake_regression# 生成回归数据集# 1. 生成回归数据集# n_samples50: 生成50个样本# n_features1: 每个样本只有1个特征一维数据# n_informative1: 1个有效特征所有特征都有用# noise50: 添加噪声控制数据点的分散程度值越大数据越分散# random_state1: 随机种子确保每次运行生成相同的数据集X,ymake_regression(n_samples50,n_features1,n_informative1,noise50,random_state1)# 2. 创建和训练线性回归模型regLinearRegression()# 创建线性回归模型实例reg.fit(X,y)# 使用生成的数据训练模型# fit()方法会计算模型参数系数(斜率)和截距# 3. 准备绘图用的测试数据# 生成从-3到3的200个等间距点用于绘制回归线# reshape(-1, 1)将一维数组转换为二维数组符合sklearn的输入格式要求znp.linspace(-3,3,200).reshape(-1,1)# 4. 数据可视化plt.figure(figsize(8,6))# 创建图形窗口通常默认大小这里显式设置更好# 绘制原始数据点散点图# X: 特征值y: 目标值# cb: 蓝色点s60: 点的大小plt.scatter(X,y,cb,s60)# 绘制回归线# 使用训练好的模型预测z对应的y值并绘制连续曲线# reg.predict(z): 用训练好的模型预测输入z对应的输出plt.plot(z,reg.predict(z),ck,linewidth3)# 添加标题plt.title(Linear Regression)# 添加坐标轴标签建议添加代码中缺失plt.xlabel(X (Feature))# X轴特征plt.ylabel(y (Target))# Y轴目标值# 显示图形plt.show()# 可选打印模型参数print(f回归系数 (斜率):{reg.coef_[0]:.2f})print(f截距:{reg.intercept_:.2f})print(fR²得分:{reg.score(X,y):.3f})回归系数 (斜率): 79.52 截距: 10.92 R²得分: 0.782使用线性回归预测糖尿病数据集# 导入必要的库fromsklearn.datasetsimportload_diabetes# 导入糖尿病数据集fromsklearn.model_selectionimporttrain_test_split# 数据分割工具fromsklearn.linear_modelimportLinearRegression# 线性回归模型# 1. 加载糖尿病数据集# load_diabetes()返回一个Bunch对象包含数据和元数据# data: 特征矩阵包含10个特征年龄、性别、BMI等医学指标# target: 目标变量糖尿病进展的定量测量一年后的疾病进展diabetesload_diabetes()# 创建数据集对象Xdiabetes.data# 特征矩阵 (442个样本 × 10个特征)ydiabetes.target# 目标向量 (442个值)# 2. 分割数据集为训练集和测试集# train_test_split默认分割比例为75%训练25%测试# random_state8: 随机种子确保每次分割结果相同便于结果复现X_train,X_test,y_train,y_testtrain_test_split(X,y,random_state8)# 3. 创建并训练线性回归模型lrLinearRegression()# 创建线性回归模型实例lr.fit(X_train,y_train)# 使用训练数据拟合模型# 4. 查看模型参数和评估结果print(回归系数 (每个特征的权重):)print(lr.coef_[:])# 打印所有特征系数# coef_是一个数组长度等于特征数量(10个)# 每个值表示对应特征对目标变量的影响权重# 正数表示正相关负数表示负相关print(\n截距 (偏置项):)print(lr.intercept_)# 打印截距项# 当所有特征值为0时的预测值print(\n训练集R²分数:)print(lr.score(X_train,y_train))# R²分数决定系数# 1.0表示完美拟合# 0表示模型不比简单取平均值好# 负数表示模型表现比简单取平均值还差print(\n测试集R²分数:)print(lr.score(X_test,y_test))# 测试集上的R²分数评估模型泛化能力回归系数 (每个特征的权重): [ 11.51226671 -282.51443231 534.2084846 401.73037118 -1043.90460259 634.92891045 186.43568421 204.94157943 762.46336088 91.95399832] 截距 (偏置项): 152.5625670974632 训练集R²分数: 0.5303801379270054 测试集R²分数: 0.45934221748744397模型评估要点训练集分数 vs 测试集分数训练集分数(0.53) 测试集分数(0.48)轻微过拟合。如果差异很大说明模型过度记忆训练数据R²分数解释0.5左右中等预测能力医学数据通常难以获得很高的R²值0.48表示模型解释了约48%的目标变量方差二、岭回归——使用L2正则化的线性模型岭回归是回归分析中常用的线性模型实际上是一种改良的最小二乘法从使用的角度出发它能够避免过拟合。L2正则化是指保留全部特征变量只是降低特征变量的系数值来避免过拟合的方法。使用岭回归预测糖尿病数据集# 导入岭回归模型# 岭回归在sklearn.linear_model模块中fromsklearn.linear_modelimportRidge# 创建岭回归模型实例# 默认参数alpha1.0正则化强度ridgeRidge()# 使用训练数据拟合岭回归模型# fit方法会计算带正则化的最小二乘解ridge.fit(X_train,y_train)# 评估模型性能print(训练集R²分数:,ridge.score(X_train,y_train))print(测试集R²分数:,ridge.score(X_test,y_test))训练集R²分数: 0.43263658371006664 测试集R²分数: 0.4325221097526063岭回归参数调节# 岭回归的参数调节# alpha参数控制正则化强度# - alpha0等同于普通线性回归无正则化# - alpha→∞所有系数趋近于0模型变成常数模型fromsklearn.linear_modelimportRidge# 创建alpha10的岭回归模型较强正则化ridge10Ridge(alpha10)# 训练模型ridge10.fit(X_train,y_train)# 评估模型性能print(训练集R²分数:,ridge10.score(X_train,y_train))print(测试集R²分数:,ridge10.score(X_test,y_test))# 观察现象测试集分数 训练集分数# 这表明正则化有效减少了过拟合训练集R²分数: 0.15119902171779698 测试集R²分数: 0.16202035231681033# 导入岭回归模型fromsklearn.linear_modelimportRidge# 创建弱正则化的岭回归模型alpha0.1# alpha0.1表示轻度惩罚大系数但比线性回归的alpha0强一些ridge01Ridge(alpha0.1)# 训练模型ridge01.fit(X_train,y_train)# 评估模型性能print(ridge01.score(X_train,y_train))# 训练集R²分数print(ridge01.score(X_test,y_test))# 测试集R²分数# 注释中的关键观察# 1. 训练集得分相比线性回归降低# 2. 测试集得分相比线性回归上升# 这表明即使很小的正则化也能改善泛化性能0.521563232713 0.47340124798816186线性回归 vs 弱正则化岭回归的对比importmatplotlib.pyplotasplt# 1. 创建不同alpha值的模型进行比较fromsklearn.linear_modelimportLinearRegression# 线性回归alpha0lrLinearRegression().fit(X_train,y_train)lr_train_scorelr.score(X_train,y_train)lr_test_scorelr.score(X_test,y_test)# 弱岭回归alpha0.1ridge01Ridge(alpha0.1).fit(X_train,y_train)ridge01_train_scoreridge01.score(X_train,y_train)ridge01_test_scoreridge01.score(X_test,y_test)# 默认岭回归alpha1.0ridge1Ridge(alpha1.0).fit(X_train,y_train)ridge1_train_scoreridge1.score(X_train,y_train)ridge1_test_scoreridge1.score(X_test,y_test)# 2. 可视化对比plt.figure(figsize(12,5))# 子图1性能对比plt.subplot(1,2,1)models[linear Regression\n(alpha0),Ridge\n(alpha0.1),Ridge\n(alpha1.0)]train_scores[lr_train_score,ridge01_train_score,ridge1_train_score]test_scores[lr_test_score,ridge01_test_score,ridge1_test_score]xnp.arange(len(models))width0.35plt.bar(x-width/2,train_scores,width,labeltraining_R²,colorskyblue,alpha0.8)plt.bar(xwidth/2,test_scores,width,labeltest_R²,colorlightcoral,alpha0.8)plt.xlabel(model)plt.ylabel(R²)plt.title(scores)plt.xticks(x,models)plt.legend()plt.grid(True,alpha0.3,axisy)# 添加数值标签fori,(train,test)inenumerate(zip(train_scores,test_scores)):plt.text(i-width/2,train0.01,f{train:.3f},hacenter,vabottom,fontsize9)plt.text(iwidth/2,test0.01,f{test:.3f},hacenter,vabottom,fontsize9)# 子图2泛化差距过拟合程度plt.subplot(1,2,2)generalization_gap[train-testfortrain,testinzip(train_scores,test_scores)]plt.bar(models,generalization_gap,color[steelblue,orange,green],alpha0.7)plt.axhline(y0,colorgray,linestyle--,linewidth0.8)plt.xlabel(model)plt.ylabel(training_R² - test_R²)plt.title(generalization gap)plt.grid(True,alpha0.3,axisy)# 添加数值标签fori,gapinenumerate(generalization_gap):plt.text(i,gap(0.005ifgap0else-0.015),f{gap:.3f},hacenter,vabottomifgap0elsetop,fontsize9)plt.tight_layout()plt.show()# 3. 分析系数稳定性print(\n*60)print(系数稳定性分析弱正则化的优势:)print(*60)# 计算系数变化coef_lrlr.coef_ coef_ridge01ridge01.coef_ coef_changenp.abs(coef_ridge01-coef_lr)/np.abs(coef_lr)*100print(\n线性回归 vs 岭回归(alpha0.1)系数对比:)fori,(lr_coef,ridge_coef,change)inenumerate(zip(coef_lr,coef_ridge01,coef_change)):print(f特征{i}: 线性回归{lr_coef:7.2f}, 岭回归{ridge_coef:7.2f}, f变化{change:6.1f}%)# 总结分析print(\n*60)print(关键发现:)print(*60)print(f1. 训练集性能轻微下降:{lr_train_score:.4f}→{ridge01_train_score:.4f})print(f 下降幅度:{(lr_train_score-ridge01_train_score)/lr_train_score*100:.1f}%)print()print(f2. 测试集性能提升:{lr_test_score:.4f}→{ridge01_test_score:.4f})print(f 提升幅度:{(ridge01_test_score-lr_test_score)/lr_test_score*100:.1f}%)print()print(f3. 泛化差距缩小:{lr_train_score-lr_test_score:.4f}→{ridge01_train_score-ridge01_test_score:.4f})print(f 缩小幅度:{((lr_train_score-lr_test_score)-(ridge01_train_score-ridge01_test_score))/(lr_train_score-lr_test_score)*100:.1f}%) 系数稳定性分析弱正则化的优势: 线性回归 vs 岭回归(alpha0.1)系数对比: 特征0: 线性回归 11.51, 岭回归 24.78, 变化 115.2% 特征1: 线性回归-282.51, 岭回归-228.33, 变化 19.2% 特征2: 线性回归 534.21, 岭回归 495.55, 变化 7.2% 特征3: 线性回归 401.73, 岭回归 361.21, 变化 10.1% 特征4: 线性回归-1043.90, 岭回归-109.83, 变化 89.5% 特征5: 线性回归 634.93, 岭回归 -78.33, 变化 112.3% 特征6: 线性回归 186.44, 岭回归-190.70, 变化 202.3% 特征7: 线性回归 204.94, 岭回归 108.24, 变化 47.2% 特征8: 线性回归 762.46, 岭回归 383.72, 变化 49.7% 特征9: 线性回归 91.95, 岭回归 107.43, 变化 16.8% 关键发现: 1. 训练集性能轻微下降: 0.5304 → 0.5216 下降幅度: 1.7% 2. 测试集性能提升: 0.4593 → 0.4734 提升幅度: 3.1% 3. 泛化差距缩小: 0.0710 → 0.0482 缩小幅度: 32.2%三、套索回归——使用L1正则化的线性模型L1正则化一部分特征值的系数会正好等于零即一些特征会彻底被模型忽略掉。使用套索回归预测糖尿病数据集# L1正则化的线性模型——套索回归Lasso# Lasso回归的正则化会使一部分特征的系数正好等于0# 这意味着Lasso可以自动进行特征选择fromsklearn.linear_modelimportLasso# 创建Lasso回归模型实例# 默认参数alpha1.0正则化强度lassoLasso()# 使用训练数据拟合模型lasso.fit(X_train,y_train)# 评估模型性能print(训练集R²分数:,lasso.score(X_train,y_train))print(测试集R²分数:,lasso.score(X_test,y_test))# 统计非零系数的数量print(非零系数的特征数量:,np.sum(lasso.coef_!0))# 这个数字通常小于总特征数因为Lasso会使一些系数变为0训练集R²分数: 0.3624222204154226 测试集R²分数: 0.36561940472905163 非零系数的特征数量: 3套索回归的参数调节# alpha参数对Lasso的影响比岭回归更明显# 需要调整alpha以获得最佳性能# 1. 测试不同alpha值alphasnp.logspace(-4,2,20)# 从10^-4到10^2train_scores[]test_scores[]non_zero_counts[]foralphainalphas:lasso_tempLasso(alphaalpha,max_iter10000)# 增加迭代次数确保收敛lasso_temp.fit(X_train,y_train)train_scores.append(lasso_temp.score(X_train,y_train))test_scores.append(lasso_temp.score(X_test,y_test))non_zero_counts.append(np.sum(lasso_temp.coef_!0))# 2. 可视化结果fig,axesplt.subplots(1,3,figsize(15,4))# 图1性能 vs alphaax1axes[0]ax1.plot(alphas,train_scores,b-,labeltraining_R²,linewidth2)ax1.plot(alphas,test_scores,r--,labeltest_R²,linewidth2)ax1.axvline(x1,colorgray,linestyle:,labelalpha1(default))ax1.set_xscale(log)ax1.set_xlabel(alpha)ax1.set_ylabel(R²)ax1.set_title(Lasso scores vs alpha value)ax1.legend()ax1.grid(True,alpha0.3)# 图2非零系数数量 vs alphaax2axes[1]ax2.plot(alphas,non_zero_counts,g-,linewidth2)ax2.axvline(x1,colorgray,linestyle:,labelalpha1)ax2.set_xscale(log)ax2.set_xlabel(alpha)ax2.set_ylabel(Feature Count)ax2.set_title(Feature Count vs alpha value)ax2.legend()ax2.grid(True,alpha0.3)# 图3找到最佳alphabest_alpha_idxnp.argmax(test_scores)best_alphaalphas[best_alpha_idx]ax3axes[2]ax3.axvline(xbest_alpha,colorred,linestyle--,labelfbest alpha{best_alpha:.4f})ax3.text(best_alpha,max(test_scores)*0.9,fbest alpha\n{best_alpha:.4f},hacenter,vatop)ax3.plot(alphas,test_scores,r--,linewidth2)ax3.set_xscale(log)ax3.set_xlabel(alpha)ax3.set_ylabel(test_R²)ax3.set_title(best alpha)ax3.legend()ax3.grid(True,alpha0.3)plt.tight_layout()plt.show()print(f\n最佳alpha值:{best_alpha:.4f})print(f此时测试集R²:{test_scores[best_alpha_idx]:.4f})print(f此时非零系数数量:{non_zero_counts[best_alpha_idx]})最佳alpha值: 0.1438 此时测试集R²: 0.4822 此时非零系数数量: 7Lasso回归的应用场景高维数据特征数量远大于样本数量时特征选择需要识别重要特征时模型简化需要简单、可解释的模型时多重共线性特征高度相关时注意可能的不稳定性在实践中岭回归是两个模型中的优选。如果特征过多而其中只有一小部分是真正重要的套索回归就是更好的选择。scikit-learn还提供了弹性网模型Elastic Net。弹性网模型总和了套索回归和岭回归的惩罚因子表现更好代价是需要调整L1正则化参数和L2正则化参数。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

有哪些可以在线做app的网站温州建设学校网站

第一章:Open-AutoGLM应急隐私保护方案概述在数据驱动的智能时代,大语言模型的广泛应用带来了显著的效率提升,同时也引发了对用户隐私泄露的严重关切。Open-AutoGLM 应急隐私保护方案应运而生,旨在为基于 AutoGLM 架构的应用提供实…

张小明 2026/1/10 17:36:28 网站建设

如何查看网站关键词做网站租用那个服务器好

终极电量管理神器:AirBattery让你的Mac变身设备电量指挥中心 【免费下载链接】AirBattery Get the battery level of all your devices on your Mac and put them on the Dock / Status Bar / Widget! && 在Mac上获取你所有设备的电量信息并显示在Dock / 状…

张小明 2026/1/10 17:36:27 网站建设

做网站维护需要学什么互联网门户网站是什么

你是否曾经面对这些扫描图像处理难题而束手无策?扫描的文档总是歪歪斜斜,页面边界模糊不清,双页扫描无法准确分割,图像质量差强人意?这些问题正是Scan Tailor要为你解决的痛点。 【免费下载链接】scantailor 项目地…

张小明 2026/1/10 17:36:32 网站建设

国内网站做网站设计服务商

早上有客户咨询——说他现在能从本地用127.0.0.1:10000拿到EasyGBS的FLV直播流,但这本地IP只能自己电脑用,想换成实际IP让外部设备也能访问,不知道咋操作。我一看这问题挺常见的,直接跟他说:“你把地址里的127.0.0.1换…

张小明 2026/1/10 17:36:32 网站建设

电子商务网站建设的风险分析网络营销渠道的类型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请生成一个基于Java和OpenCV的图像处理项目代码,要求实现以下功能:1.读取本地图片;2.使用OpenCV进行人脸检测;3.在检测到的人脸区域绘…

张小明 2026/1/10 17:36:35 网站建设

红色网站 后台深圳公租房

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。 😊 座右铭:不…

张小明 2026/1/10 17:36:34 网站建设