当前位置: 首页 > news >正文

协会网站建设的优势如何做网站插件

协会网站建设的优势,如何做网站插件,做推广任务的网站有哪些,广西建设网网上办事大厅个人版sklearn-逻辑回归-特征工程示例 在实际应用场景中#xff0c;有时候特征的数量会很多#xff0c;我们出于业务考虑#xff0c;也出于计算量的考虑#xff0c;希望对逻辑回归进行特征选择来降维。比如在判断一个人是否会患乳腺癌的时候#xff0c;医生如果看58个指标来确诊…sklearn-逻辑回归-特征工程示例 在实际应用场景中有时候特征的数量会很多我们出于业务考虑也出于计算量的考虑希望对逻辑回归进行特征选择来降维。比如在判断一个人是否会患乳腺癌的时候医生如果看58个指标来确诊会比看30多个指标容易得多因此就挑选58个至关重要的指标来看 高效的嵌入法 embedded 实现降维 由于 L1 正则化会使得部分特征对应的参数变为0 因此 L1 正则化可以用来做特征选择。结合嵌入法的模块 SelectFromModel可以很容易筛选出让模型十分高效的特征。此时我们的目的是尽量保留原数据上的信息让模型在降维后的数据上拟合效果保持十分优秀因此我们不考虑训练集测试集的问题把所有的数据都放入模型进行降维。 示例代码看效果 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LogisticRegression as LR # load_breast_cancer 为乳腺癌数据集 from sklearn.datasets import load_breast_cancer from sklearn.model_selection import cross_val_score from sklearn.feature_selection import SelectFromModel# 将数据集实例化不考虑测试集和训练集的问题直接把数据集都导入模型中 data load_breast_cancer() # 查看数据集结构, 结果如 图1 所示 data.data.shape# C为0.9, penalty 默认为 L2 LR_ LR(solverliblinear, C0.8, random_state 420) # 进行交叉验证入参依次为 模型、特征矩阵、标签、cv交叉验证次数为10次,mean取平均值得出结果如 图2 所示 cross_val_score(LR_, data.data, data.target, cv10).mean()# 对数据进行降维并打印最终特征矩阵的结构如 图3 所示 # 嵌入法 SelectFromModel 的实例化LR_代表模型norm_order1代表使用l1范式模型会删除所有在 L1 范式下面被判断为无效的特征 # fit_transform 直接输入特征矩阵和标签得出最终的特征矩阵 x_embedded x_embedded SelectFromModel(LR_, norm_order1).fit_transform(data.data, data.target) x_embedded.shape# 使用x_embedded进行交叉验证, 结果如 图4 所示 cross_val_score(LR_, x_embedded, data.target, cv10).mean()图1 图2 图3 图4 调节模型到最佳拟合效果 根据示例代码使用嵌入法完成降维之后特征由 30 个减少到了 9个模型效果由 0.95 下降到 0.93效果并没有下降太多模型还是比较的高效。 如果要求比较高想要让模型的拟合效果更好可以借助学习曲线来观察 通过 threshold 参数画学习曲线 threshold 参数是一个浮点数代表特征的重要性低于这个浮点数的都删除。在逻辑回归中就是系数系数越大这个参数对逻辑回归的影响性就越大所以 threshold 参数可以取到的最大值就是系数的最大值 相关代码 # 查看模型里面所有的系数系数值越大代表这个特征对逻辑回归的贡献越大结果如 图5 所示 LR_.fit(data.data, data.target).coef_ # 完整的特征矩阵结果列表 fullx [] # 特征选择后的特征矩阵结果列表 fsx [] # 取从0开始系数的绝对值最大值结束的20个数的列表作为 threshold 的可选入参进行循环 threshold np.linspace(0, abs(LR_.fit(data.data, data.target).coef_).max(), 20) # 打印 threshold 列表如 图6 所示 print(threshold) k 0 for i in threshold:# threshold从0开始逐渐靠近系数最大值时模型的表现变化X_embedded SelectFromModel(LR_, threshold i).fit_transform(data.data, data.target)# 完整的特征矩阵交叉验证的结果fullx.append(cross_val_score(LR_, data.data, data.target, cv5).mean())# 特征选择后的特征矩阵交叉验证结果fsx.append(cross_val_score(LR_, X_embedded, data.target, cv10).mean())# 打印 threshold 里面取到的每一个值 和 降维后的特征矩阵含有多少个特征如 图7 所示print((threshold[k], X_embedded.shape[1]))k 1plt.figure(figsize(20, 5)) plt.plot(threshold, fullx, labelfull) plt.plot(threshold, fsx, labelfeature selection) plt.xticks(threshold) plt.legend() # 打印学习曲线图如 图8 所示 plt.show()图5 图6 图7 图8 由图7和图8可见threshold 从 0 到 0.1 的时候特征个数删减的最多从30个特征删减到了17个特征后面 threshold 的变动特征个数的变动都比较小最后5个取值特征个数都稳定在1个。学习效果从0.95下降到0.93左右此后随着threshold逐渐变大学习效果也在降低。可见 threshold 的取值设置区间过大没有参考价值。我们要找的是降维之后存在着能够让模型效果保持优异的情况。 可以取0到0.101之间的范围再次查看特征个数和学习曲线是如何波动的结果如 图9 所示 图9 由图9可见threshold 在0.0215之前模型学习效果和全特征学习效果差别不大当 threshold 大于 0.0215的后模型学习效果开始下降。由此最少的特征量取24、25个合适。相较于30个降维并不明显可见该方法不适用于乳腺癌数据集。 通过画C的学习曲线 第二种方式是直接调整逻辑回归的类 LR 本身通过画 C 的学习曲线来实现。 相关代码 # 完整的特征矩阵结果列表 fullx [] # 特征选择后的特征矩阵结果列表 fsx [] # 一般 C 取值范围是 0 到 1这个模型可以试验一下取 0 到 10 比较好 # 以 0.01 为开头10.01 为结尾每隔 0.5 取一个数 C np.arange(0.01, 10.01, 0.5)for i in C:# 根据不同的C构建不同的模型LR_C LR(solverliblinear, Ci, random_state420)# 完整的特征矩阵交叉验证的结果fullx.append(cross_val_score(LR_C, data.data, data.target, cv10).mean())X_embedded SelectFromModel(LR_C,norm_order1).fit_transform(data.data, data.target)# 特征选择后的特征矩阵交叉验证结果fsx.append(cross_val_score(LR_C, X_embedded, data.target, cv10).mean())# 打印特征选择后特征矩阵模型交叉验证分数列表里的最高的值以及对应的 C 值 print(max(fsx), C[fsx.index(max(fsx))])plt.figure(figsize(20, 5)) plt.plot(C, fullx, labelfull) plt.plot(C, fsx, labelfeature selection) plt.xticks(C) plt.legend() # 打印学习曲线图如 图10 所示 plt.show() 图10 由图10可见C为 8.51 的时候模型的学习效果达到最优 0.956并且要比蓝色的全量特征的分值还高。在这条学习曲线中C的取值范围比较大一般来讲C的取值范围在0到1之间我们可以将C范围划定在 8.01 到 9.01 以0.005为间隔画C的学习曲线如图11所示 图11 由图11可见C位8.025000000000002的时候模型的学习效果最好为0.9563164376458386我们可以验证一下当 C 取该值时模型降维效果如何 验证模型降维效果 LR_ LR(solverliblinear, C8.025000000000002, random_state420) # 打印完整的特征矩阵交叉验证的结果 print(完整的特征矩阵交叉验证的结果{}.format(cross_val_score(LR_, data.data, data.target, cv10).mean()))X_embedded SelectFromModel(LR_,norm_order1).fit_transform(data.data, data.target) # 打印降维后的特征矩阵交叉验证的结果 print(降维后的特征矩阵交叉验证的结果{}.format(cross_val_score(LR_, X_embedded, data.target, cv10).mean()))# 打印降维后的维度 print(X_embedded.shape)图12 由图12可见通过C学习曲线找到的最佳C变量完成降维后的模型学习效果达到了 0.956由30个特征成功降维到9个特征
http://www.w-s-a.com/news/992697/

相关文章:

  • 如何做后台网站的教程网站建设 关于我们
  • 极速网站建设哪家好连云港百度推广网站建设
  • 医院网站建设的目标wordpress中英文网站模板
  • 门户型网站开发难度网站导航栏有哪些
  • 推荐做任务网站软件定制开发哪家好
  • 邯郸兄弟建站第三方仓储配送公司
  • 商丘家具网站建设wordpress 添加代码
  • 基础建设的网站有哪些内容成都科技网站建设咨询电话
  • 券多多是谁做的网站招聘网站开发模板
  • 网站主机一般选哪种的企业数字展厅
  • 网站建设该如何学衡水建设局网站首页
  • 高校网站建设工作总结番禺网站开发哪家好
  • 苏州 网站的公司wordpress主页代码
  • 怎么用html做图片展示网站外贸网站建设推广费用
  • 可以做本地生活服务的有哪些网站中油七建公司官网
  • 如何建设谷歌网站网站建设优点
  • 做网站的目标是什么产品宣传片制作公司
  • 柳州建设公司网站辽宁建设工程信息网评标专家入库
  • 合肥建设学校官方网站excel导入wordpress
  • 禹城网站设计做网站需要考虑哪些
  • 深圳做营销网站建设wordpress添加文章封面
  • 阿里云的网站建设方案织梦和wordpress哪个安全
  • 聊城网站建设公司电话wordpress怎么重新配置文件
  • 创业如何进行网站建设泰州公司注册
  • 免费网站建设培训学校手机百度高级搜索入口在哪里
  • 建站经验安徽六安发现一例新冠阳性检测者
  • 滨州内做网站系统的公司汕头网络营销公司
  • 苏州制作网站的公司哪家好wordpress google搜索
  • c语言做项目网站wordpress博客被书为什么还
  • 企业建站用什么系统网站建设补充协议模板