机器学习(ML)开发是一个复杂和迭代的过程。但我们可以概括ML生命周期有四个阶段:
第一个阶段是"准备"阶段,占据了ML团队大部分的生产力和时间。2016年的一项福布斯研究显示,ML工程团队80%的时间用于准备数据。数据准备是乏味的、耗资源和耗时的,因为数据通常在原始形式下是"脏的”,无法直接用于机器学习。“脏"数据可能包括缺失或错误的值、异常值等,这些都会影响ML模型。
尽管数据可能是"脏的”,但ML团队仍需要时间通过可视化和分析来探索和理解他们的数据。一旦他们对数据有了良好的理解,他们就可以应用特征工程来将原始数据转换为有价值的输入。数据中的每个"独特"属性都被视为一个"特征”。在我们的例子中,每个预订记录包含诸如"到达日期”、“入住时间”、“入住天数”、“入住人数"等特征。特征工程选择和转换变量以创建预测模型。由于特征的质量影响模型的质量,特征工程是ML工作流程的关键部分。
第二个阶段是"构建"阶段。这是ML团队选择合适的ML算法的地方,这通常是通过反复试验完成的。即使拥有深厚行业和领域知识的ML团队,也必须探索不同算法在数据集上的性能,才能创建一个模型。ML团队也可能使用许多不同的深度学习框架来构建自己的算法或神经网络。
现在我们已经有了清洁过的数据集,并选择了一个算法,就可以进入"训练和调优"阶段。在这里,我们可以根据数据和算法创建一个模型。根据我们的算法,我们可能需要调整不同的超参数来提高模型的质量。这通常需要一些时间,因为我们可以调整成千上万种不同的超参数组合,这些都会影响模型的结果。
当我们对模型满意时,就可以进入"部署和监控"阶段。我们将模型部署到生产环境中,提供实时推理或批量预测。同时,我们还需要监控模型,并根据最终用户的需求对其进行扩展。
Data wrangler重点关注"准备"阶段,即ML团队如何准备数据并进行特征工程,以生成最佳模型。
机器学习模型的质量取决于用于训练它们的数据。为了了解手头数据的性质/质量,我们需要从探索性数据分析(EDA)开始。EDA有助于通过识别数据中的模式来了解我们的数据。例如,我们可能会发现预订度假酒店的客户比预订城市酒店的客户停留时间更长。或者周末入住的客户购买更多餐点。由于这些模式在表格数据中并不明显,数据科学家使用可视化工具来帮助他们识别模式。
一旦我们识别出数据中的模式,我们就可以准备数据,确保有合适的训练数据可用,并针对学习和泛化进行优化。我们可以使用像SageMaker Data Wrangler这样的可视化交互式工具来进行数据分析和模型构建。Data Wrangler具有无代码/低代码、自动化和可视化功能,可提高我们的数据准备生产力,并降低交互式分析的成本。
数据准备包括数据预处理和特征工程。
数据预处理将数据整理成适合训练的形状和质量。一些数据预处理策略包括:数据清洁、平衡、替换、填充、分区、缩放、增强和去偏等。
在探索和理解我们的数据后,我们可以进入特征工程。每个数据属性都是一个特征,例如到达日期
、入住时间
、入住时长
、入住人数
等。
特征工程是在创建预测模型时选择和转换变量的过程。特征工程通常包括:
特征创建是从现有数据创建新特征,以帮助进行更好的预测。特征创建技术的示例包括:one-hot编码、分箱、拆分和计算特征等。
特征转换是一种数学转换,我们对特定列(特征)应用数学公式并转换值,这对于进一步分析很有用。它还包括插补技术来管理替换缺失的特征或无效的特征。一些技术包括:形成特征的笛卡尔积、非线性转换(如将数字变量分箱为类别)以及创建特定于领域的特征。
特征提取涉及使用主成分分析(PCA)等降维技术减少要处理的数据量。这减少了处理过程中所需的内存和计算能力,同时仍然准确地保持了原始数据特征。
特征选择是选择提取特征子集的过程。该子集是相关的,并有助于最小化训练模型的错误率。特征重要性得分和相关矩阵可能是选择最相关特征进行模型训练的因素。
特征提取和特征选择技术用于降维的关键区别在于,在特征选择算法的情况下,原始特征得以保留,而在特征提取算法中,数据被转换到一个新的特征空间。