Skip to content

卫哥上课笔记 / 内部资料

# 1 数据分析与挖掘-概述

数据分析与挖掘系列教程


📌 一、 数据分析与挖掘概述 ​

✅ 什么是数据分析与挖掘 ​

数据分析和挖掘都是基于搜集来的数据,应用数学、统计、计算机等技术抽取出数据中的有用信息,进而为决策提供依据和指导方向。


  • 数据分析(Data Analysis): 基于已收集的数据,运用统计学、数学等方法,对数据进行描述、总结和推断,以发现数据中的模式、趋势和洞察。其目标是解释已发生事件,并通过数据支撑决策。
    • 核心: 解释性、总结性、基于现状。
  • 数据挖掘(Data Mining): 更深层次地探索数据,结合统计学、机器学习、人工智能、数据库知识等多种技术,从海量、复杂的数据中发现隐藏的、有价值的模式、规则和预测模型。其目标是预测未来事件或发现未知知识。
    • 核心: 预测性、发现性、基于算法和模型。

✅ 数据分析与挖掘的应用领域 ​

数据已成为各行各业的核心资产,数据分析与挖掘的应用无处不在:

  • 电商领域:
    • 用户行为分析: 购物偏好、浏览路径、点击率。
    • 推荐系统: 个性化商品推荐、关联销售。
    • 精准营销: 优惠券发放、广告投放策略。
    • 库存优化: 销量预测、滞销品识别。
  • 交通出行领域:
    • 路线规划与优化: 实时路况预测、最佳路径推荐。
    • 共享出行调度: 车辆供需预测、智能派单。
    • 交通流量预测: 缓解拥堵、智能红绿灯。
  • 医疗健康领域:
    • 疾病诊断与预测: 基于病例数据辅助医生诊断、预测疾病风险。
    • 药物研发: 新药筛选、靶点发现。
    • 精准医疗: 个性化治疗方案、基因数据分析。
  • 金融领域:
    • 信用风险评估(风控): 贷款审批、信用卡欺诈检测。
    • 量化交易: 股票价格预测、投资策略优化。
    • 客户流失预测: 识别高风险客户并进行挽留。
  • 房地产: 房价预测、地段分析、投资回报评估。
  • 互联网行业:
    • 游戏: 用户行为分析、付费预测、流失预警。
    • 社交: 社交网络分析、舆情监控、内容推荐。
    • 中介服务: 房产/招聘匹配、服务质量评估。

✅ 数据分析与数据挖掘的区别(深化理解) ​

特征狭义数据分析数据挖掘广义数据分析
定义运用统计学方法,解释和总结数据。运用多种交叉学科方法,发现隐藏模式和预测模型。包含数据分析和数据挖掘。
核心方法统计学方法: 描述性统计、假设检验、相关分析。交叉学科: 统计学、机器学习、人工智能、数据库、优化算法。融合以上所有方法。
侧重点业务洞察: 为什么会发生?发生了什么?技术实现: 如何预测?如何发现?综合价值: 既解释也预测。
技能要求业务理解能力、数据敏感度、基础统计学知识、报表制作。数学功底 + 编程能力、算法理解、模型调优。全面要求,但侧重领域不同。
结果输出报表、图表、KPI 指标、业务建议。预测模型、分类规则、聚类结果、异常检测。综合性的业务决策报告和智能化系统。
复杂度相对较低,更注重人工解读。相对较高,依赖复杂算法和计算资源。覆盖从简单到复杂的各种场景。

📊二、 项目流程(基于 CRISP-DM 跨行业标准) ​

数据分析与挖掘项目通常遵循一个结构化流程,最常用的是 CRISP-DM (Cross-Industry Standard Process for Data Mining) 模型,它包括以下六个阶段:


1. 明确业务目标 (Business Understanding) ​

这是项目的起点,也是最容易被忽视但至关重要的一步。需要深入理解业务问题、确定数据分析/挖掘能带来的价值。

✅ 案例 1: 餐饮行业:

  • 核心目标: 降低人工成本、避免食材浪费。
  • 拆分目标: 精准预测未来一周的客流量和菜品销量;优化排班;智能采购。

✅ 案例 2: 金融授信:

  • 核心目标: 风险控制。
  • 拆分目标: 建立用户信用评分模型,区分高风险与低风险用户;预测逾期概率;识别欺诈行为。

✅ 案例 3: 用户价值高低(RFM 模型):

  • 核心目标: 精细化运营,提升用户生命周期价值。
  • 拆分目标: 对用户进行分群,识别高价值用户、潜在流失用户、新用户;制定个性化营销策略;提高用户留存率和复购率。

卫哥上课笔记 / 内部资料

2. 数据理解与收集 (Data Understanding & Data Collection) ​

理解并获取解决业务问题所需的数据。

✅ 数据收集: 识别内外部数据源,获取原始数据。

✅ 数据理解:

  • 了解数据结构(字段含义、数据类型、数据格式)。
  • 数据量、数据质量(缺失值、异常值、重复值)。
  • 数据来源和生成方式。

✅ 案例 1: 餐饮行业数据:

  • 食材数据: 采购记录(采购量、价格、供应商)、库存记录(入库、出库、损耗)、菜品配方(食材用量)。
  • 经营数据: 销售记录(菜品、价格、时间、数量、订单金额)、顾客消费记录(会员ID、消费次数、总金额)、员工排班、天气、节假日。
  • 其他数据: 评论数据(文本挖掘)、市场活动数据。

✅ 案例 2: 金融授信数据:

  • 用户基本数据: 个人信息(年龄、性别、教育、职业、婚姻状况)、联系方式、居住地址。
  • 信用数据: 征信报告(历史借贷记录、还款记录、逾期情况)、信用卡使用记录(刷卡金额、频率、商户类型)、负债情况。
  • 行为数据: App使用行为、社交数据(如征得用户同意)。
  • 其他数据: 设备信息、IP地址。

✅ 案例 3: 影响用户价值高低数据:

  • 会员数据: 会员注册信息、等级、积分、开通时间。
  • 交易数据: 购买商品、购买金额、购买时间、购买频率、退换货记录。
  • 促销数据: 参与活动记录、优惠券使用情况。
  • 客服数据: 咨询记录、投诉记录、解决时间。
  • 行为数据: 浏览记录、点击记录、收藏、购物车添加。

3. 数据清洗与预处理 (Data Preparation) ​

原始数据往往是“脏乱差”的,需要进行一系列处理才能用于模型构建。

✅缺失值处理:

  • 删除法: 删除包含缺失值的行或列(数据量大时,缺失率低)。
  • 替换法:
    • 均值/中位数/众数填充: 适用于数值型和类别型数据。
    • 特定值填充: 如 0 或 -1。
    • 插值法: 基于数据分布或相关性进行推断填充(线性插值、多项式插值)。

✅重复值处理: 删除完全相同的重复行,确保数据唯一性。

✅异常值处理:

  • 识别: 统计方法(Z-score, IQR)、可视化(箱线图)、聚类。
  • 处理:
    • 删除法: 异常值数量很少且确认是录入错误时。
    • 替换法: 用均值、中位数或分位数替换。
    • 单独处理法: 对于某些有业务意义的异常值,可能需要单独分析或特殊标记。
    • 离散化: 将连续型异常值分箱处理。

✅数据不一致性:

  • 统一格式: 日期时间格式、单位(如人民币/美元)。

  • 统一命名: 相同含义的字段名称不同。

  • 数据源对齐: 不同系统并发数据可能不一致,需要数据对账和校准。

  • 量纲的影响(数据转换):

    • 标准化 (Standardization / Z-score Normalization): σX−μ,将数据转换为均值为 0,方差为 1 的分布,适用于高斯分布或对距离敏感的模型(如 KNN, SVM, 线性回归)。
    • 归一化 (Normalization / Min-Max Scaling): Xmax−XminX−Xmin,将数据缩放到特定范围(通常是 [0, 1]),适用于神经网络等对输入范围敏感的模型。
  • 无量纲化处理: 消除不同特征的量纲和数量级影响,使模型更好地学习。

  • 维度灾难与特征工程:

    • 特征提取: 从现有特征创建新特征(如日期中提取星期几、从交易明细计算总金额)。
    • 特征选择: 识别并保留对模型最重要的特征(基于统计测试、模型重要性)。
    • 降维: 将高维数据映射到低维空间,减少特征数量(如 PCA 主成分分析)。
  • 维度灾难: 高维数据可能导致模型性能下降、计算复杂度增加。

    特征工程: 从原始数据中构建、选择和转换最有用的特征。


4. 数据分析与可视化 (Exploratory Data Analysis - EDA) ​

在建模前,通过统计图表和描述性统计来理解数据特征、发现潜在模式、验证假设。

✅描述性分析:

  • 中心趋势: 均值、中位数、众数。
  • 分散程度: 方差、标准差、分位数、极差。
  • 分布形态: 偏度、峰度。
  • 关联性: 相关系数(皮尔逊、斯皮尔曼)。

✅数据可视化:

  • 单变量: 直方图、箱线图、柱状图、饼图。
  • 双变量: 散点图、折线图、条形图(分组)。
  • 多变量: 热力图、平行坐标图。
  • 工具: Matplotlib, Seaborn, Plotly, Bokeh。

🤖 三、 构建模型 (Modeling) ​

根据业务目标选择合适的机器学习模型。

✅案例 1: 餐饮行业 - 预测类型(数值型、连续型): 销量预测、客流量预测。

  • 回归模型:
    • 线性回归 (Linear Regression): 简单、可解释性强。
    • 决策树回归 (Decision Tree Regressor): 能够处理非线性关系,易于理解。
    • 随机森林回归 (Random Forest Regressor): 集成学习,泛化能力强。
    • XGBoost/LightGBM: 梯度提升树,性能和准确率高。

✅案例 2: 金融信贷 - 分类模型(离散型): 欺诈识别、逾期预测、信用评级。

  • 分类模型:

    • 随机森林 (Random Forest Classifier)
    • GBDT (Gradient Boosting Decision Tree)
    • XGBoost/LightGBM/CatBoost: 行业内广泛使用,效果卓越。
  • 逻辑回归 (Logistic Regression): 简单、可解释性强,常用于二分类问题。

    K-近邻 (KNN - K-Nearest Neighbors): 基于距离的分类。

    决策树 (Decision Tree Classifier): 易于理解,可用于特征筛选。

    支持向量机 (SVM - Support Vector Machine): 适用于小到中等数据集,处理高维数据。

    集成模型:

✅案例 3: 用户价值分析 - 聚类模型: 用户分群。

  • 聚类模型:
    • K-Means: 最常用、最经典的聚类算法,需要预设聚类数量 K。
    • DBSCAN: 基于密度的聚类,无需预设 K,能发现任意形状的簇。
    • 层次聚类 (Hierarchical Clustering): 产生聚类树,可根据需求切割。

🧪 四、 模型评估与优化 (Evaluation & Deployment) ​

1 模型评估: 找出最佳模型 ​

评估模型的性能,确保其能够泛化到未见过的数据。

✅机器学习工程师: 不仅仅是“调包侠”或“调参侠”,更重要的是理解模型原理、评估指标、业务含义。

✅评估指标:

  • 回归模型: MSE (均方误差)、RMSE (均方根误差)、MAE (平均绝对误差)、R2 (决定系数)。
  • 分类模型:
    • 准确率 (Accuracy): 简单直观,但可能在类别不平衡时误导。
    • 精确率 (Precision): 预测为正例中真正例的比例。
    • 召回率 (Recall): 所有真正例中被正确预测为正例的比例。
    • F1-Score: 精确率和召回率的调和平均。
    • ROC 曲线 & AUC 值: 衡量分类器性能的综合指标,特别适用于二分类和类别不平衡问题。
    • 混淆矩阵 (Confusion Matrix): 详细展示分类器在不同类别上的表现。
  • 聚类模型: 轮廓系数 (Silhouette Score)、Calinski-Harabasz Index、Davies-Bouldin Index。

✅过拟合 (Overfitting) 与欠拟合 (Underfitting):

  • 过拟合: 模型在训练集上表现非常好,但在测试集(新数据)上表现一般或很差。
    • 原因: 模型过于复杂、训练数据量太少、噪声数据被模型学习。
    • 解决方法: 增加数据、特征选择/降维、简化模型、正则化(L1/L2)、交叉验证、提前停止、Dropout。
  • 欠拟合: 模型在训练集和测试集上表现都差。
    • 原因: 模型过于简单、特征不足、训练迭代次数不够。
    • 解决方法: 增加特征、选择更复杂的模型、增加训练时间。

✅模型选择与改进:

  • 交叉验证 (Cross-Validation): 更可靠地评估模型性能,减少过拟合风险。
  • 超参数调优: Grid Search, Random Search, Bayesian Optimization。
  • 集成学习: Stacking, Bagging (如随机森林), Boosting (如 XGBoost)。

✅结果输出: 将模型评估结果、发现的洞察和业务建议清晰地呈现给利益相关者。


🚀2. 应用部署 (Deployment) ​

将训练好的模型集成到实际业务系统中,使其能够持续提供价值。

  • 运维工程师 / MLOps 工程师: 负责模型上线、监控、维护。

  • 核心环节:

    • 云计算平台:
    • 无服务器 (Serverless): 函数计算 (Lambda, Azure Functions, 阿里云函数计算),按需付费,无需管理服务器。
  • 阿里云 (Alibaba Cloud): 弹性计算 (ECS)、函数计算 (FC)、机器学习平台 PAI。

    AWS (Amazon Web Services): EC2, Lambda (无服务器), SageMaker。

    Azure (Microsoft Azure): Virtual Machines, Azure Functions, Azure Machine Learning。

  • Jenkins / GitLab CI/CD: 自动化构建、测试、部署流程。

  • 模型封装: 将模型打包成可调用的 API 接口(如 Flask, FastAPI)。

    容器化 (Docker): 将模型及其运行环境打包成独立的容器,确保在任何环境下一致运行。

    CI/CD (持续集成/持续部署):

    部署平台:

    模型监控: 监控模型性能、数据漂移、预测准确率,及时发现问题并触发模型重训练。


🛠五、 常用工具与语言 ​

✅编程语言:

  • Python: 毫无疑问是数据分析与挖掘的首选语言,拥有极其丰富的科学计算库和机器学习库。
    • 数据处理: NumPy, Pandas
    • 数据可视化: Matplotlib, Seaborn, Plotly
    • 机器学习: Scikit-learn, TensorFlow, PyTorch, Keras
    • 科学计算: SciPy
  • R 语言: 统计学背景强,在学术界和统计分析领域广泛使用。

✅统计分析软件 (商业):

  • SPSS: 历史悠久,图形界面友好,适合社会科学和市场研究。
  • SAS: 强大的企业级统计分析软件,在金融、制药等行业有广泛应用。

✅大数据平台:

  • Hadoop生态: HDFS, MapReduce, Hive, Spark
  • 云计算平台自有服务: AWS S3/EMR, Azure Data Lake, 阿里云 MaxCompute/OSS

实训建议 ​

  • 理论与实践结合: 每个知识点都应辅以代码演示和实操练习。
  • 真实数据集: 使用贴近实际业务的公开数据集或模拟数据集进行练习。
  • 项目驱动: 以完成一个完整的数据分析/挖掘项目为目标,贯穿整个课程。
  • 工具熟练度: 强调 Pandas、Scikit-learn、Matplotlib/Seaborn 的熟练使用。
  • Git 版本控制: 引入 Git 和 GitHub/GitLab 的使用,培养良好的代码管理习惯。
📢 版权声明:本文首发于 [https://zhangwei.gitbook.io],禁止非法爬取或转载。 验证指纹 ID:GB-2026-0109

基于 Vite 强力驱动 | 纯静态轻量托管