本文比较了用于数据准备的几种方法,它们分别是提取-变换-加载批处理(ETL)、流式获取和数据整理。本文还讨论了数据准备如何与可视化分析相关联,以及不同用户角色(如数据科学家或业务分析人员)应如何共同构建分析模型的最佳实践。
要点
在常见的机器学习/深度学习项目里,数据准备占去整个分析管道的60%到80%。
市场上有各种用于数据清洗和特征工程的编程语言、框架和工具。它们之间的功能有重叠,也各有权衡。
数据整理是数据预处理的重要扩展。它最适合在可视化分析工具中使用,这能够避免分析流程被打断。
可视化分析工具与开源数据科学组件之间,如R、Python、KNIME、RapidMiner互为补充。
避免过多地使用组件能够加速数据科学项目。因此,在数据准备步骤中利用流式获取框架或流式分析产品会是一个不错的选择。
机器学习和深度学习项目在大多数企业中变得越来越重要。一个完整的项目流程包括数据准备(data preparation)、构建分析模型以及部署至生产环境。该流程是一个洞察-行动-循环(insights-action-loop),此循环能不断地改进分析模型。Forrester把这个完整的流程和其背后的平台称为洞察平台(Insights Platform)。
当你打算使用机器学习或深度学习技术来构建分析模型时,一个重要的任务是集成并通过各种数据源来准备数据集,这些数据源包括比如文件、数据库、大数据存储、传感器或社交网络等等。此步骤可占整个分析项目的80%。
本文比较了用于数据准备的几种方法,它们分别是提取-变换-加载(extract-transform-load,ETL)批处理、流式获取(streaming ingestion)和数据整理(data wrangling)。同时借助于先进的分析技术和开源框架(如R、Apache Spark、KNIME、RapidMiner),讨论了各种不同的选择及其折中。本文还讨论了数据准备如何与可视化分析相关联,以及不同用户角色(如数据科学家或业务分析人员)应如何共同构建分析模型的最佳实践。
数据准备=数据清洗(Data Cleansing)+特征工程(Feature Engineering)
数据准备是数据科学的核心。它包括数据清洗和特征工程。另外领域知识(domain knowledge)也非常重要,它有助于获得好的结果。数据准备不能完全自动化,至少在初始阶段不能。通常,数据准备占去整个分析管道(流程)的60%到80%。但是,为了使机器学习算法在数据集上获得最优的精确性,数据准备必不可少。
数据清洗可使数据获得用于分析的正确形状(shape)和质量(quality)。它包括了许多不同的功能,例如:
基本功能(选择、过滤、去重、...)
采样(平衡(balanced)、分层(stratified)、...)
数据分配(创建训练+验证+测试数据集、...)
变换(归一化、标准化、缩放、pivoting、...)
分箱(Binning)(基于计数、将缺失值作为其自己的组处理、...)
数据替换(剪切(cutting)、分割(splitting)、合并、...))
加权与选择(属性加权、自动优化、...)
属性生成(ID生成、...)
数据填补(imputation)(使用统计算法替换缺失的观察值)
特征工程会为分析选取正确的属性。我们需要借助数据的领域知识来选取或创建属性,这些属性能使机器学习算法正确地工作。特征工程过程包括:
头脑风暴或特征测试
特征选择
验证这些特征如何与模型配合使用
如果需要,改进特征
回到头脑风暴/创建更多的特征,直到工作完成
请注意,特征工程已是建模(构建分析模型)步骤里的一部分,但它也利用数据准备这一功能(例如提取字符串的某些部分)。
数据清洗和特征工程是数据准备的一部分,也是机器学习和深度学习应用的基础。这二者并不是那么容易,都需要花费功夫。
数据准备会出现在分析项目的不同阶段:
原文链接:
https://mp.weixin.qq.com/s/F84Q25OgJ2qv-N7u9zfxvw