通用机器学习工作流程问题

数据挖掘 机器学习
2022-02-22 19:31:39

我对机器学习非常陌生,想了解执行它的一般过程。我已经完成了著名的 'iris' 教程,并想询问该教程中的原则是否适用于我未来承担的每个机器学习项目。

我在生物科学领域工作,并且有兴趣将机器学习算法应用于生物序列数据,而不是进行分类或进行无监督聚类。据我了解,每个项目都从以下内容开始:

  1. 我定义我想从原始数据中学习的“范围”或目标。
  2. 从我的 OWN 代码/算法生成可能区分这两个类的特性/属性
  3. 这基本上通过 y_entries 生成了一个巨大的 x_features 矩阵
  4. 将矩阵输入机器学习算法(我确信这被大大简化了)。

举个例子,假设我有 10,000 个蛋白质序列,我相信 5000 个是“Class1”,5000 个是“Class2”,但我不知道如何用肉眼区分它们。我需要使用我自己的自定义算法生成此序列的 x_features(以某种知情方式),并将生成的 10000 个条目输入算法。

这是正确的方法吗?如果有人能指导我学习一个围绕分析生物序列数据的初学者教程,我将永远感激不尽。

1个回答

我同意大部分答案。但是,我认为您遗漏了一些要点,包括交叉验证步骤。我尝试在下面提供一个常见机器学习项目的概述。我假设一个常见的项目是一个有监督的机器学习问题(比如 iris 数据集)。

1.您定义项目的“范围”或目标:

  • 你必须定义学习的目的。

  • 在公司与业务合作时,正确表达项目的需求、价值及其目标是一个好主意。

  • 您必须定义评估指标(准确率、召回率、F1 分数、AUC ......)。您还可以定义要达到的最小结果(例如 80% 的准确度)。
  • 你也可以问问自己你需要的可解释性水平(你关心模型解释吗?如果不关心,也许你可以尝试更多的黑盒算法,比如 boosting、神经网络……)。

2. 探索您的数据:

  • 使用统计、可视化和直觉,尝试学习您的数据集并了解您的特征和标签。

  • 您还可以搜索缺失的数据和异常值。纠正这些观察称为数据清洗过程。

  • 了解您的输入变量将极大地帮助您创建和选择相关特征。

3. 从您自己的代码/算法生成特征/属性

  • 这个阶段称为特征工程。它是关于创建与学习问题相关的特征。

  • 在此阶段,您可以清理丢失的数据和异常值以帮助学习。

  • 您可以从与您的学习问题相关的输入变量中获取新特征(处理分类变量、重新调整特征、对输入变量应用转换)。

4. 交叉验证:

  • 交叉验证是指您的算法评估。在监督机器学习中,至少将数据集拆分为 3 个数据集(训练、验证和测试)是很常见的。

  • 训练数据集(大约 60% 的数据)旨在训练算法。

  • 验证数据集(20% 的数据)有助于找到模型的最佳超参数(树的最大深度,线性/逻辑回归的正则化......)。

  • 最后,测试集(20% 的数据)为你提供了你在看不见的数据上得到的真实结果。这是最后的评价。

5.机器学习,将矩阵输入算法:

  • 在这一部分中,您将针对交叉验证过程(第 4 部分)训练机器学习算法。

  • 您可以测试不同的模型。有些会产生不同的性能结果。可解释性也不相同。

  • 为了帮助学习,您可以诊断您的算法在训练集和验证集上的执行情况。这种诊断也称为学习曲线它可以告诉你如何提高你的学习。学习曲线的目的是帮助处理欠拟合/过拟合的权衡。欠拟合是指你的偏差误差很大,这意味着你的算法不够复杂,而过拟合意味着你的算法太复杂并且学习完美,但不能再将学习推广到新的看不见的观察上。

  • 您还可以查看残差(预测值和实际值之间的误差)来改进您的算法。

  • 进行特征选择也可以提高你的算法学习。

6. 归还

  • 解释模型和您获得的性能。

  • 为企业创造赔偿?投入生产?

改进你的机器学习模型和性能主要是关于改进上面介绍的几点。通过进行新的探索,创造新的特征,尝试更强大的算法等等,你可以获得最好的结果。机器学习是您必须优化的整个管道。我还认为机器学习项目管理非常适合敏捷方法。