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

准确率调整研究中心

1. 数据预处理

  • 填充缺失值:你已经填充了 AgeEmbarkedFare 的缺失值。如果你没有处理 Cabin 字段(可以用 'Unknown' 填充,或者删除该列),可以考虑处理它。
  • 特征编码
    • 使用 One-Hot EncodingSexEmbarked 进行编码。
    • 使用 Label EncodingOne-Hot EncodingPclassEmbarked 进行编码。
    • Title(称谓)特征(例如:Mr., Mrs., Miss.)是个有用的特征,可以从 Name 字段提取出来进行编码。
  • 年龄分类:将 Age 划分为多个区间(例如:0-18, 19-35, 36-50 等),然后将其作为类别变量。

2. 特征工程

  • 创建新特征:从现有特征中提取更多信息:
    • FamilySize:将 SibSp(兄弟姐妹/配偶数)与 Parch(父母/子女数)相加,得出乘客家庭的大小。
    • IsAlone:基于 FamilySize,如果乘客家庭大小为 1,则设置为 1(表示单独旅行),否则为 0。
    • AgeClass:根据 AgePclass 创建一个新的特征,可能会有助于区分不同社会阶层和年龄段的生还概率。

3. 模型选择

  • 基线模型:从简单的模型(如 逻辑回归决策树)开始,如果效果不好再考虑更复杂的模型。
  • 集成学习
    • 随机森林(Random Forest)和 梯度提升树(如 XGBoost 或 LightGBM)通常能显著提升准确率。
    • 你可以考虑集成多种模型的结果,使用投票法或堆叠(Stacking)方法进一步提高模型表现。

4. 超参数调优

  • 使用 GridSearchCVRandomizedSearchCV 来调整模型的超参数。
  • 调整 XGBoostLightGBM 的参数,如 max_depthlearning_raten_estimators 等。

5. 正则化与防止过拟合

  • L1/L2 正则化:对于线性模型,添加正则化项帮助避免过拟合。
  • Early Stopping:如果使用深度学习模型,可以使用早停技术避免过拟合。
  • 交叉验证:使用交叉验证评估模型在不同数据划分上的表现,确保模型的泛化能力。

6. 模型集成

  • 投票法(Voting Classifier):将多个模型(如逻辑回归、随机森林、XGBoost)进行组合,使用多数投票方法提高准确率。
  • Stacking:使用简单模型(如逻辑回归、决策树等)作为基学习器,然后训练一个更复杂的模型(如 XGBoost 或深度学习模型)作为终极预测器。

一、数据预处理

1.特征编码

对于泰坦尼克号的案例,刚开始我是使用单纯的数值对应,结果的准确率是0.622,然后我通过one-hot编码后准确率达到0.72248提升了0.10。下面探究原因:

  1. 数值编码,只是单纯的对性别如果是男记为0,如果是女记为1,那么如果有两个人一个男一个女,那么他们对应的性别特征如下:第一个人:性别:1,第二个人:性别:0。这会产生一个问题,就是当你把这个特征输入到模型中后,如果是是男生的话,就说明预测的值与性别特征无关,也就是说对于男生的这个样本的性别特征是0,就会让模型认为,对于这个样本的性别特征对于预测值的影响不大,导致准确率低。模型会 错误地认为 0 和 1 之间存在顺序关系,就像它们是坐标轴上的两个点,模型会把这种顺序理解为一种有意义的数值差异,从而让模型学习到 0 和 1 之间的变化对预测结果有影响。
  2. one-hot编码,one-hot编码会把性别编码成[0,1],编码成一个一维的长度为二的向量,这样不管是男是女,特征都会对预测值有影响,就是把性别特征更细分了,所有模型可以更好的学到性别与预测值的关系。

解决方案:当我们发现某个特征在数据上表现出了顺序性,但实际上不存在这样的顺序性,当类别之间有明显顺序时,可以考虑使用 Ordinal Encoding 或 One-Hot Encoding 来避免这种问题。


注意:如果你在训练过程中没有设置 早期停止,模型可能会继续训练,即使它已经达到最优或接近最优的性能。过度训练通常会导致性能下降,特别是在验证集上。也会产生过拟合



http://www.mrgr.cn/news/74835.html

相关文章:

  • Python学习从0到1 day26 第三阶段 Spark ④ 数据输出
  • 【全面系统性介绍】虚拟机VM中CentOS 7 安装和网络配置指南
  • adb 命令查看设备存储占用情况
  • MySQL核心业务大表归档过程
  • Maven 项目模板
  • 抖音小程序上线全揭秘:开启抖音生态盈利新征程
  • cpp中vector的push_back和emplace_back精简小结
  • LeetCode【0047】全排列II
  • HarmonyOS基础:选项卡组件(Tabs)
  • PostgreSQL 查看重复索引
  • 第一课-Rust入门
  • 数据结构查找-哈希表(创建+查找+删除)+(C语言代码)
  • Tofu识别跟踪变焦镜头控制接口与协议
  • 云服务器安装mysql8.0(阿里云或者腾讯云都可以)
  • 比高考还严?该地软考报考减少了5420人,工作人员却增加100多人!
  • 如何使用Jupyter
  • 【机器学习chp2】贝叶斯最优分类器、概率密度函数的参数估计、朴素贝叶斯分类器、高斯判别分析。万字超详细分析总结与思考
  • 真的别跟风了!PMP认证原来只对这些人有用...
  • leveldb存储token的简单实现
  • 理解 C++ 中的 `const` 关键字
  • 域名绑定服务器小白教程
  • [刷题]入门1.矩阵转置
  • MATLAB和Python及R瑞利散射
  • 37邮件服务器
  • Sorvall Legend Micro 17 微量离心机产品特性
  • 开放式耳机怎么戴?不入耳的蓝牙耳机推荐