如何应对机器学习中的重大挑战
在研究机器学习问题时,我们经常会在不同的步骤受阻。 为了解决几乎所有这些步骤,我列出了我们面临的所有主要挑战以及克服这些挑战可以采取的步骤。 为了便于理解,我还将这些挑战归为不同的子领域,即数据准备,模型训练和模型部署。
资料准备
数据采集:
- 当我们开始收集数据时,获取不完整的数据通常令人头疼。 即使我们得到数据,也证明是偏差数据。 偏差是指数据收集或数据分析中与事实不符之处,可能导致错误的结论。
- 然后是维数的诅咒,它是指分析在低维空间中不会发生的高维数据时发生的现象。
- 最后,我们有数据稀疏性问题。 假设您有一个包含许多空值或不可能值的表。 这些值表示数据中的稀疏性。
要克服的步骤:
- 花费适当的时间来理解问题以及解决问题所需的正确数据集
- 丰富数据
- 降维技术
离群值:
- 数据中的数值超出范围或分类值未知
- 它显示出对平方损失函数的巨大影响
要克服的步骤:
- 像binning这样的离散化技术可以帮助减少平方损失函数
- 强大的方法,例如Huber损失函数
缺失数据:
- 这会影响信息丢失,从而影响模型的准确性
- 当关键信息被不正确地测量,收集或解释时发生的信息偏差
要克服的步骤:
- 基于树的建模技术可以帮助解决此类问题
- 离散化还可以帮助减少损失函数
- 归因
稀疏目标变量:
- 当主要事件发生率较低时会发生
- 目标中零或缺失值占优势
要克服的步骤:
- 比例过采样
- 混合模型
模型训练
过度拟合:
- 过度拟合的主要原因是高方差和低偏差,无法正确归纳
要克服的步骤:
- 正则化-一种用于通过在误差函数中添加附加惩罚项来调整函数的技术
- 噪声注入-这种方法是指在训练过程中人为地将“噪声”添加到输入数据中
- 交叉验证-一种用于评估统计分析结果如何概括为独立数据集的技术
计算资源开发:
- 大多数时候,我们执行单线程算法实现
- 高度可靠的口译语言
要克服的步骤:
- 并行训练许多单线程模型
- 硬件加速,例如GPU和SSD
- 低级本机库
- 云-Google Colab笔记本
集成模型:
- 单个模型有时无法提供足够的准确性
- 单一模型还会导致过度拟合-高方差和低偏差,无法正确归纳
要克服的步骤:
- 打包,提升和堆叠等集成模型可以帮助解决问题
- 有时将预测的自定义或手动组合有助于提高准确性
超级参数调整:
- 组合爆炸是问题复杂性的快速增长,这是由于问题的组合如何受输入影响的,它是在常规算法中使用超参数发生的。
要克服的步骤:
- 局部搜索优化,其中还包括遗传算法
- 网格搜索或兰德搜索技术有助于从我们提供的参数中找到最佳的一对超级参数。
模型解释:
- 大量的参数和规则使模型难以解释
要克服的步骤:
- 使用正则化技术进行变量选择
- 替代模型
- 解释方法,如LIME
- 偏相关图,特征重要性图可帮助解释模型
模型部署
模型部署:
- 从开发环境到操作计算系统,都必须使用经过训练的模型逻辑,以帮助组织做出决策
要克服的步骤:
- Web服务评分可以帮助人们获得结果
- 任何组织都更容易理解模型输出的仪表板
模型衰减:
- 自模型创建以来,业务问题和市场状况可能会发生变化
- 新的观察结果不在训练数据范围内
要克服的步骤:
- 定期监视模型,尤其是在精度降低时
- 每当数据或系统中的变化影响模型时,定期更新模型
感谢您的阅读直到最后,并希望您喜欢它!
先前发布在https://medium.com/@siddhesh_jadhav/how-to-deal-with-major-challenges-in-machine-learning-1fc7e719bd0b
From: https://hackernoon.com/how-to-deal-with-major-challenges-in-machine-learning-bqhd3yrd