数据科学方法论
数据分析方法论是一个系统化的方法论,覆盖了数据科学的全生命周期,这套方法论对于新手学习数据科学也比较重要,Data Science Methodology 包含如下的10点。
Business understanding
核心目标:是从业务的视角确定业务的核心问题和期望,确保数据科学的分析方向与业务需求一致,同时确保业务问题具体、明确,方便后续转化为数据科学问题。
流程:
- 明确目标:确定业务的核心问题和期望,比如“如何提高用户的复购率?”
- 分解问题:将业务多个可操作的问题,比如哪些用户复购?复购周期是多长?用户流水的主要原因是什么?
- 提出关键问题:针对具体业务提问,确保问题的答案能为后续分析提供明确方向,比如用户复购率的基准是什么?与行业平均水平相比如何?哪些产品复购率高?影响复购率的主要因素有哪些(价格、物流和推销等)?
- 最终目标:将业务目标转化为数据科学问题,比如能否通过用户行为数据预测哪些用户可能复购,并针对这些用户设计个性化营销策略?
Analytic approach
核心目标:选择最合适当前业务问题的分析方法,为后续数据准备、建模等环球打下基础,将业务问题转化为数据科学问题。
流程:
- 描述性分析:了解过去发生了什么?比如销量趋势分析,历史销售数据。
- 分类分析:将数据进行分组,比如将客户行为分类为优质客户、中等客户和风险客户。
- 预测分析:通过学习历史数据,对未来的数据进行预测,比如用户推荐购买。
- 策略性分析(优化分析):找到最优解,比如推荐最适合的促销方式。
- 诊断性分析:了解为什么会这样?比如为什么目标促销活动很差。
Data requirements
核心目标:明确分析问题需要哪些数据,以及这些数据的范围和粒度,是否与业务相关,确保后续的数据收集工作高效且有针对性。
流程:
- 列出所需的数据:通过明确的业务问题,确定需要的具体数据类型和字段。结合Business understading的目标,拆解具体的数据需求。确定数据来源(客户数据、交易数据、外部数据等)。
- 定义数据范围:时间范围(一年、一月或者一周?)、粒度(按天汇总、还是按月汇总)。
- 与业务目标结合:确保收集的数据直接服务问题,而不是获取一切可以获取的数据。
Data collection
核心目标:从不同来源获取需要的数据,确保质量来源,为后续的数据理解、清洗和建模奠定基础。这个阶段主要关注数据来源问题,比如是否因为导入导出或者编码问题导致的异常或者无效值。
流程:
- 明确数据来源:内部数据和外部数据。
- 确保数据质量:数据是否完整、是否有缺失值。数据是否一致,比如同一个字段在不同的数据库定义不一样。
Data understanding
核心目标:对数据进行初步的分析,发现数据中的模式和问题。这个阶段关注数据的模式、异常值和缺失的业务意义,评估数据是否满足需求,然后将这些有问题的数据进行评估和记录,到下一个数据准备阶段进行处理。
流程:
- 探索数据:了解数据的基本情况,比如分布、中位数,是否有缺失值和异常值,通过可视化探索数据分布情况等。
- 回答问题:数据是否满足支持目标?数据是否存在要清洗的问题?
Data preparation
核心目标:提高数据的可用性和质量。将原始数据转化为结构化、规范化的数据集,清理问题数据,增强数据的分析和建模价值。
流程:
- 数据清洗:去除数据中的错误和噪声,提高数据质量。比如处理缺失值(删除、填补)、处理异常值和处理无效值。
- 数据格式化:确保数据的格式和类型一致,便于后续处理和分析。比如统一数据格式(日期格式一致)和标准化分类字段(比如北京和北京市)。
- 特征工程:为建模提取和构造新特征,以提高模型性能。
- 创建新特征:比如从日期中提取出日、月份新字段。
- 特征转换:比如归一化(将数值缩放到相同的范围,如0-1),标准化
- 编码分类变量:比如将类别变量转换为数值变量,比如成都为[1,0,0],上海为[0,1,0]。
- 数据集成:将来自不同数据源的数据整合。比如合并数据集(多表通过唯一ID关联合并为一张表)、重复数据处理。
- 数据采样:从大数据中提取有代表性的小样本,提高效率。比如随机采样(从百万数据中,随机抽取10万),分层采样(按照某些特征分层抽出样本,保证样本分布与总体一致)。
Modeling
核心目标:构建数学或统计模型,捕获数据中的规律或关系,建模只适合开发描述性模型和预测性模型,这是因为有以下几个原因:
- 数据建模的基础是数据驱动:描述性和预测性是根据已有数据构建,核心是从数据中提取规律和模式,而不需要额外的领域知识或约束条件,而诊断性和规范性则需要更多的额外知识或推理逻辑。
- 数据建模不关注因果关系:描述性和预测性不关注数据中的因果关系,只关注数据中的相关性,诊断性和规范性分析需要解释“为什么和怎么办”,所以超出了传统的数据建模范畴。
- 数据建模关注“是什么”和“会发生什么”:描述性分析回答“是什么(提取数据特征)”、预测性分析回答“会发生什么”(未来结果)、诊断性分析回答“为什么”,规范性分析回答“怎么办”,后两者需要不同的方法论来支持。
- 数据建模的工具与目标契合:数据建模的工具(回归分析、决策树和神经网络等)最适合用来描述和预测。
流程:
- 明确模型目标:是预测问题(回归)?还是分类问题(分类)?还是发现隐藏模式(无监督学习)?
- 选择合适的算法:比如回归(线性回归、Lasso等)、分类(决策树、逻辑回归等)、聚类(K-means、层次聚类等)、降维(PCA、t-SNE等)和时间序列(ARIMA、LSTM等)。
- 分割数据:将数据分为训练集、验证集和测试集,确保模型可以在未见过的数据上表现良好。
- 模型训练:使用训练集让模型学习数据的规律。
Evaluation
核心目标:评估模型的性能和适用性,确保模型能够满足业务需求和预期目标,该阶段与Modeling阶段是相辅相成的,会反复在两个阶段之间来回,以让模型达到最佳和最适合业务的状态。
核心评估方法-诊断措施阶段 通过一系列定量指标和可视化工具对模型进行性能评估,识别模型的优势和潜在问题,比如性能指标(如准确率、MSE)、可视化工具(如混淆矩阵、残差图)、交叉验证等
常见分类模型常用的定量指标有:
- 准确率(Accuracy):用于预测正确的比例。
- 精准率(Precision):用于被预测为正类中实际为正的比例。
- 召回率(Recall):用于实际正类中被预测为正类的比例。
- F1分数(F1-Score):精确率和召回率的调和平均数。
- ROC-AUC:衡量模型区分正负样本的能力。
常见回归模型有:
- 均方误差(MSE):预测值与实际值之间平方误差的均值。
- 均绝对误差(MAE):预测值与实际值之间绝对误差的均值。
- R² 值:衡量模型对数据变化的解释能力。
常见模型稳定性评估:
- 交叉验证(Cross-Validation): 在不同的训练集和测试集划分中评估模型性能的稳定性。
- 学习曲线: 检查模型在训练集和测试集上的性能随训练数据量变化的表现,判断是否存在过拟合或欠拟合。 常见诊断问题:
- 过拟合: 模型在训练集上表现好,但在测试集上表现差。
- 欠拟合: 模型在训练集和测试集上均表现差。
- 偏差-方差分析: 检查模型预测中的系统性偏差或随机误差。 常见可视化工具:
- 混淆矩阵: 用于分类问题,展示预测结果的分布。
- 残差分析: 用于回归问题,检查预测误差的分布。
核心评估方法-统计显著性测试阶段 通过统计学方法验证模型性能的可靠性,判断模型结果是否具有统计显著性,常见方法有假设检验、p 值、特征显著性分析、模型比较检验、A/B 测试等。
Deployment
核心目标:将模型的输出用于决策支持或自动化流程,确保数据科学解决方案能被业务方或用户实际使用。
流程:
- 确定交付形式:如果是商业项目可能偏向报告或者仪表盘,如果机器学习模型,可能需要部署为API和潜入业务系统中。
- 模型部署:将模型迁移到生产环境中,比如web、app,中途可能会与系统管理员、数据库管理员等人员沟通方案。
- 性能监控:部署后监控模型的运行状态和性能,确保其在生产环境下的稳定性,以及观察准确率是否随着时间变化而下降。
- 用户培训:向业务方、技术团队或最终使用用户解释模型的工作原理,确保他们能够有效的使用部署成果。
Feedback
核心目标:根据反馈优化模型和流程,使其长期保持高效。
流程:
- 收集反馈:技术反馈(监控指标,输入数据质量是否变化)、业务反馈(用户反馈)、环境反馈(外部环境出现了变化,比如市场波动。
- 分析反馈:通过对实际数据和用户反馈进行分析,发现问题的根本,比如模型预测错误率上升,可能是因为输入数据分布发生了变化。
- 模型迭代:根据反馈重新调整模型。
- 持续循环。