本文是为机器学习初学者准备的,目的是了解制作一个真正好的机器学习模型所涉及的不同步骤,以及应该避免哪些错误。本文并不是任何特定的语言,它涵盖了训练模型所需的所有必要步骤。
加载数据将数据加载到DataFrame中(为了方便起见,我假设您的数据可以以表格形式存储)
将数据拆分为训练和验证数据需要注意的一点是,我们在完成任何拟合,输入或任何其他预处理步骤之前拆分数据。验证旨在衡量模型对之前未考虑过的数据的处理方式。如果预处理步骤中一起使用(训练 验证)数据,则会导致验证的漏洞。这意味着,验证数据也会影响我们的预处理步骤/拟合,这是我们从不想要的,应该避免。
因此,我们在开始时将数据分为训练和验证。有很多方法可以做到,但最常用的方法之一是:train_test_split()
处理数据处理意味着填充数据中的缺失值。缺失值可能是由于许多原因 - 有人不同意提供年收入,有人没有透露家庭成员的数量,传输过程中的数据丢失等。大多数算法,不能用于缺失数据。所以我们的目标是估计数据本身的缺失值并填充它们。
请记住,我们应该仅处理训练数据(出于上一步中描述的原因)。根据数据类型有不同的输入方法,例如均值/中位数方法(对于数值数据),one-hot编码(对于分类数据)等。选择任何方法并确保您的最终数据不包含任何遗漏值。
特征选择特征选择是数据科学家工作流程中非常关键的组成部分。这意味着仅选择用于预测目标标签的相关特征,而不是考虑数据中存在的所有特征。在现实生活中,我们有100个,1000个甚至10,000个特征,所有特征对预测都不是同样重要。此外,当模型呈现具有非常高维度的数据时,通常会导致以下问题:
- 训练时间随着特征的数量呈指数增长。
- 随着特征数量的增加,模型的过度拟合风险也在增加。
- 数据冗余不会以任何方式使模型受益,反而增加了复杂性。因此,冗余数据删除是最大化特征相关性同时减少特征冗余的重要部分。
有不同的特征选择方法,这有助于减少维数,而不会损失太多的总信息。这可以提高模型的整体精度,帮助理解特征及其重要性。
- 删除低方差的特征
- 单变量特征选择
- 递归特征消除(RFE)
应用上述任何策略,并找到最有意义的特征子集。
训练你的模型现在是训练模型的主要部分。训练模型意味着找到最合适的权重/参数,以便最大限度地分类(在分类问题中)或预测与实际值之间的误差最小(在回归问题中)。
选择您感兴趣的任何类型的模型 - 线性回归,决策树,随机森林,XGBoost或任何其他机器学习模型,并仅使用具有所选特征的新修改的训练数据训练您的模型。
在验证数据上测试您的模型在验证数据上重复您的步骤:
- 使用计算和用于训练数据的相同参数来验证验证数据。
- 在估算的验证数据上,选择在训练数据的特征选择期间的相同特征。
- 继续使用验证数据预测模型的准确性。判断模型质量的方法有很多种 - mean_absolute_error,cross_validation_error等等。目的是最小化验证数据的输出误差。
这是最棘手的部分,这里给出一个概述。一旦您尝试了不同的模型,不同的特征和不同的精度参数,并满足自己的机器学习模型质量,您的学习模型就可以用于实际数据了。请记住,您永远无法达到100%的准确率。