准确率调整研究中心
1. 数据预处理
- 填充缺失值:你已经填充了
Age
、Embarked
和Fare
的缺失值。如果你没有处理Cabin
字段(可以用'Unknown'
填充,或者删除该列),可以考虑处理它。 - 特征编码:
- 使用 One-Hot Encoding 对
Sex
和Embarked
进行编码。 - 使用 Label Encoding 或 One-Hot Encoding 对
Pclass
和Embarked
进行编码。 - Title(称谓)特征(例如:
Mr.
,Mrs.
,Miss.
)是个有用的特征,可以从Name
字段提取出来进行编码。
- 使用 One-Hot Encoding 对
- 年龄分类:将
Age
划分为多个区间(例如:0-18
,19-35
,36-50
等),然后将其作为类别变量。
2. 特征工程
- 创建新特征:从现有特征中提取更多信息:
- FamilySize:将
SibSp
(兄弟姐妹/配偶数)与Parch
(父母/子女数)相加,得出乘客家庭的大小。 - IsAlone:基于
FamilySize
,如果乘客家庭大小为 1,则设置为 1(表示单独旅行),否则为 0。 - AgeClass:根据
Age
和Pclass
创建一个新的特征,可能会有助于区分不同社会阶层和年龄段的生还概率。
- FamilySize:将
3. 模型选择
- 基线模型:从简单的模型(如 逻辑回归 或 决策树)开始,如果效果不好再考虑更复杂的模型。
- 集成学习:
- 随机森林(Random Forest)和 梯度提升树(如 XGBoost 或 LightGBM)通常能显著提升准确率。
- 你可以考虑集成多种模型的结果,使用投票法或堆叠(Stacking)方法进一步提高模型表现。
4. 超参数调优
- 使用 GridSearchCV 或 RandomizedSearchCV 来调整模型的超参数。
- 调整 XGBoost 或 LightGBM 的参数,如
max_depth
、learning_rate
、n_estimators
等。
5. 正则化与防止过拟合
- L1/L2 正则化:对于线性模型,添加正则化项帮助避免过拟合。
- Early Stopping:如果使用深度学习模型,可以使用早停技术避免过拟合。
- 交叉验证:使用交叉验证评估模型在不同数据划分上的表现,确保模型的泛化能力。
6. 模型集成
- 投票法(Voting Classifier):将多个模型(如逻辑回归、随机森林、XGBoost)进行组合,使用多数投票方法提高准确率。
- Stacking:使用简单模型(如逻辑回归、决策树等)作为基学习器,然后训练一个更复杂的模型(如 XGBoost 或深度学习模型)作为终极预测器。
一、数据预处理
1.特征编码
对于泰坦尼克号的案例,刚开始我是使用单纯的数值对应,结果的准确率是0.622,然后我通过one-hot编码后准确率达到0.72248提升了0.10。下面探究原因:
- 数值编码,只是单纯的对性别如果是男记为0,如果是女记为1,那么如果有两个人一个男一个女,那么他们对应的性别特征如下:第一个人:性别:1,第二个人:性别:0。这会产生一个问题,就是当你把这个特征输入到模型中后,如果是是男生的话,就说明预测的值与性别特征无关,也就是说对于男生的这个样本的性别特征是0,就会让模型认为,对于这个样本的性别特征对于预测值的影响不大,导致准确率低。模型会 错误地认为 0 和 1 之间存在顺序关系,就像它们是坐标轴上的两个点,模型会把这种顺序理解为一种有意义的数值差异,从而让模型学习到 0 和 1 之间的变化对预测结果有影响。
- one-hot编码,one-hot编码会把性别编码成[0,1],编码成一个一维的长度为二的向量,这样不管是男是女,特征都会对预测值有影响,就是把性别特征更细分了,所有模型可以更好的学到性别与预测值的关系。
解决方案:当我们发现某个特征在数据上表现出了顺序性,但实际上不存在这样的顺序性,当类别之间有明显顺序时,可以考虑使用 Ordinal Encoding 或 One-Hot Encoding 来避免这种问题。
注意:如果你在训练过程中没有设置 早期停止,模型可能会继续训练,即使它已经达到最优或接近最优的性能。过度训练通常会导致性能下降,特别是在验证集上。也会产生过拟合