目录

  • 🔍 海量数据背后蕴藏的知识
  • 🔄 数据分析与数据挖掘的关系
  • 🤖 机器学习与数据分析的关系
  • 👣 数据分析的基本步骤
  • 🐍 Python和数据分析

海量数据背后蕴藏的知识

数据蕴含了大量知识 💡

flowchart LR
    A[对象] -->|观察现象| B(数据);
    B -->|归纳总结| C[规律];
flowchart LR
    A[对象] -->|观察现象| B(数据);
    B -->|归纳总结| C[规律];
图 1: 从数据到知识的转化过程

注记

  • 对象(Object): 我们观察和研究的对象,可以是人、事、物等。

数据蕴含了大量知识 💡

flowchart LR
    A[对象] -->|观察现象| B(数据);
    B -->|归纳总结| C[规律];
flowchart LR
    A[对象] -->|观察现象| B(数据);
    B -->|归纳总结| C[规律];
图 2: 从数据到知识的转化过程

注记

观察现象 (Observation): 通过各种方式(如传感器、问卷调查、人工记录等)收集关于对象的信息。

数据蕴含了大量知识 💡

flowchart LR
    A[对象] -->|观察现象| B(数据);
    B -->|归纳总结| C[规律];
flowchart LR
    A[对象] -->|观察现象| B(数据);
    B -->|归纳总结| C[规律];
图 3: 从数据到知识的转化过程

注记

  • 数据 (Data): 对观察到的现象进行量化或编码后的结果。例如,温度传感器记录的温度值、问卷调查中的选项、文本记录中的关键词等。

数据蕴含了大量知识 💡

flowchart LR
    A[对象] -->|观察现象| B(数据);
    B -->|归纳总结| C[规律];
flowchart LR
    A[对象] -->|观察现象| B(数据);
    B -->|归纳总结| C[规律];
图 4: 从数据到知识的转化过程

注记

  • 归纳总结 (Induction & Summarization): 对数据进行分析、处理,找出其中的规律、模式、趋势等。

数据蕴含了大量知识 💡

flowchart LR
    A[对象] -->|观察现象| B(数据);
    B -->|归纳总结| C[规律];
flowchart LR
    A[对象] -->|观察现象| B(数据);
    B -->|归纳总结| C[规律];
图 5: 从数据到知识的转化过程

注记

  • 规律 (Pattern/Rule): 从数据中提炼出的可重复、可验证的知识。

数据蕴含了大量知识 💡

举例:

一家电商公司(对象)通过用户浏览记录、购买记录等(观察现象)收集了大量的用户行为数据(数据)。通过对这些数据进行分析(归纳总结),发现用户在晚上8点到10点之间购买量最大(规律)。

规律可用于

  • 解释当前发生的事情 🧐
    • 案例: 通过分析历史销售数据,发现某款产品在夏季销量最高,可以解释为什么当前该产品销量很好。
  • 预测未来的情况 🔮
    • 案例: 利用历史股票价格数据,可以构建模型预测未来股票价格的走势。

数据分析的意义:案例分析

案例1:电商推荐系统 🛍️

  • 背景: 电商平台每天都会产生大量的用户浏览、搜索、购买等数据。
  • 目标: 通过分析这些数据,了解用户的兴趣偏好,为用户推荐他们可能感兴趣的商品,提高用户满意度和销售额。
  • 方法: 使用协同过滤、内容推荐等算法,分析用户的历史行为,找到与用户兴趣相似的其他用户或商品,进行推荐。

数据分析的意义:案例分析

案例2:金融风控 🏦

  • 背景: 金融机构需要评估贷款申请人的信用风险,决定是否批准贷款以及贷款的利率。
  • 目标: 通过分析申请人的个人信息、信用记录、财务状况等数据,预测申请人违约的可能性。
  • 方法: 使用逻辑回归、决策树、支持向量机等机器学习算法,构建信用评分模型,对申请人进行风险评估。

数据分析的意义:案例分析

案例3:医疗诊断 🩺

  • 背景: 医院每天都会产生大量的病人病历、检查报告、影像资料等数据。
  • 目标: 通过分析这些数据,辅助医生进行疾病诊断,提高诊断的准确性和效率。
  • 方法: 使用自然语言处理技术分析病历文本,使用图像识别技术分析医学影像,结合机器学习算法,构建疾病诊断模型。

数据分析与数据挖掘的关系

统计分析的含义

提示

在已定假设、先验约束上,对数据进行整理、筛选和加工,并得到信息的过程。

统计分析的含义

  • 已定假设、先验约束: 指在分析之前,已经有了一些关于数据的假设或预期。
  • 整理、筛选和加工: 对数据进行清洗、转换、选择等操作,去除噪声、异常值,提取有用的特征。

统计分析的含义

提示

信息: 从数据得出的一些初步结论和结果。例如:平均值、方差、相关性等。

统计分析的含义

举例: 假设我们已经知道,用户年龄和购买金额可能存在正相关。那么,我们就可以选择年龄和购买金额这两个feature,计算它们的相关系数。如果相关系数为正,说明两者确实存在正相关,验证了我们的假设。

数据挖掘的含义

提示

在数据分析得到信息的基础上进一步获得认知,转为有效的预测和决策。

数据挖掘的含义

  • 认知: 对数据背后更深层次的规律、模式的理解。

数据挖掘的含义

提示

有效的预测和决策: 基于认知,可以对未来进行预测,或做出更明智的决策。

数据挖掘的含义

举例: 在统计分析得出用户年龄和购买金额存在正相关的结论后,我们可以使用线性回归等算法,建立一个预测模型。输入用户的年龄,预测其购买金额。这样就将信息转化为了认知和预测能力。

数据分析 = 统计分析 + 数据挖掘

flowchart LR
    A[数据] -->|统计分析| B(信息);
    B -->|数据挖掘| C[知识];
flowchart LR
    A[数据] -->|统计分析| B(信息);
    B -->|数据挖掘| C[知识];
图 6: 数据分析、统计分析与数据挖掘的关系

数据分析 = 统计分析 + 数据挖掘

  • 统计分析:数据预处理阶段 🧹
    • 主要关注数据的基本特征、分布、相关性等。
    • 常用的方法包括描述性统计、假设检验、方差分析等。

数据分析 = 统计分析 + 数据挖掘

  • 数据挖掘:知识发现阶段 🕵️‍♀️
    • 主要关注从数据中发现更深层次的模式、规律。
    • 常用的方法包括聚类分析、分类分析、关联分析、预测建模等。

机器学习与数据分析的关系

机器学习的含义

重要

利用经验来改善计算机系统自身的性能。

机器学习的含义

  • 经验在计算机系统中主要以数据形式存在.

机器学习的含义

  • 计算机程序通过分析数据,学习数据中的规律,从而在面对新的数据时,能够做出更准确的判断或预测。

机器学习的含义

案例:垃圾邮件过滤

  • 经验:大量的已标记为垃圾邮件或非垃圾邮件的邮件数据。
  • 学习:机器学习算法(如朴素贝叶斯、支持向量机等)分析这些邮件数据,学习垃圾邮件和非垃圾邮件的特征(如关键词、发件人等)。
  • 性能改善:学习后的模型可以自动识别新的邮件是否为垃圾邮件,准确率会随着训练数据的增加而提高。

数据分析的含义(再强调)

重要

识别出巨量数据中有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程,即从海量数据中找到有用的知识。

数据分析的含义(再强调)

  • 有效的(Valid):发现的模式必须在新的数据上也能成立,具有泛化能力。
  • 新颖的(Novel):发现的模式是以前未知的,能够带来新的洞见。
  • 潜在有用的(Potentially Useful):发现的模式能够用于实际的应用场景,解决实际问题。
  • 最终可理解的(Ultimately Understandable):发现的模式必须是人类可以理解的,不能是黑盒子。

两者之间的关系

  • 机器学习是数据分析的重要工具。数据分析过程经常需要利用机器学习算法来发现数据中的模式。
  • 数据分析为机器学习提供数据和问题。机器学习算法需要大量的数据进行训练,而数据分析可以帮助我们理解数据、提出问题,为机器学习提供方向。

数据分析的基本步骤 👣

  1. 数据收集 📦:获取数据
  2. 数据预处理 🧹:清洗、转换数据
  3. 数据分析与知识发现 🕵️‍♀️:探索数据、发现模式
  4. 数据后处理 📊:结果呈现、应用

1. 数据收集 📦

  • 数据来源:
    • 内部数据: 企业自身的业务数据,如销售记录、用户行为数据、生产数据等。
    • 外部数据: 来自第三方的数据,如行业报告、市场调研数据、公开数据集等。
    • 公开数据:政府、研究机构等发布的公开数据。
    • 网络爬虫:从网页上抓取数据。

1. 数据收集 📦

  • 数据类型:
    • 结构化数据: 具有固定格式的数据,如数据库中的表格数据。
    • 非结构化数据: 没有固定格式的数据,如文本、图片、音频、视频等。
    • 半结构化数据: 介于结构化和非结构化之间的数据,如XML、JSON格式的数据。

1. 数据收集 📦

  • 大数据特点:
    • 大量 (Volume): 数据量巨大。
    • 多样 (Variety): 数据类型多样。
    • 高速 (Velocity): 数据产生和处理速度快。
    • 价值 (Value): 数据中蕴含着巨大的价值,但价值密度较低。
    • 真实性(Veracity): 数据的质量和可信度。

2. 数据预处理 🧹

  • 目标: 将原始数据转化为高质量的数据,为后续的分析和建模做准备。

2. 数据预处理 🧹

  • 主要任务:
    • 数据清洗:
      • 缺失值处理: 填充缺失值(如均值、中位数、众数、模型预测值等)或删除缺失值。
      • 异常值处理: 检测和处理异常值(如删除、替换、分箱等)。
      • 重复值处理: 检测和删除重复值。

2. 数据预处理 🧹

  • 主要任务:
    • 数据转换:
      • 标准化/归一化: 将不同量纲的数据缩放到同一范围。
      • 离散化: 将连续数据划分为若干区间。
      • 特征编码: 将非数值型特征转换为数值型特征(如One-Hot编码、Label编码等)。

2. 数据预处理 🧹

  • 主要任务:
    • 数据选择:
      • 特征选择: 选择对分析目标有用的特征。
      • 样本选择: 选择具有代表性的样本。
      • 数据抽样:为了减少计算量,对数据进行抽样。

提示

数据预处理是数据分析中非常重要的环节,数据质量的好坏直接影响到后续分析结果的准确性和可靠性。通常会占到整个数据分析流程60%以上的时间。

3. 数据分析与知识发现 🕵️‍♀️

  • 将预处理后的数据进行进一步的分析,完成信息到认知的过程。

3. 数据分析与知识发现 🕵️‍♀️

  • 方法分类
    • 有监督学习
      • 分类(Classification):预测数据的类别标签。如:判断一封邮件是否为垃圾邮件、判断一张图片中的物体是什么。
        • 常用算法:
          • 逻辑回归(Logistic Regression)
          • 决策树(Decision Tree)
          • 支持向量机(Support Vector Machine)
          • 朴素贝叶斯(Naive Bayes)
          • 随机森林(Random Forest)
          • K近邻(K-Nearest Neighbors)

3. 数据分析与知识发现 🕵️‍♀️

  • 方法分类
    • 有监督学习
      • 回归(Regression):预测数据的连续值。如:预测房价、预测股票价格。
        • 常用算法:
          • 线性回归(Linear Regression)
          • 多项式回归(Polynomial Regression)
          • 支持向量回归(Support Vector Regression)
          • 决策树回归(Decision Tree Regression)
          • 随机森林回归(Random Forest Regression)

3. 数据分析与知识发现 🕵️‍♀️

  • 方法分类
    • 有监督学习
      • 关联分析(Association Analysis):发现数据中项集之间的关联规则。如:购物篮分析,发现哪些商品经常被一起购买。
        • 常用算法:
          • Apriori
          • FP-Growth

3. 数据分析与知识发现 🕵️‍♀️

  • 方法分类
    • 无监督学习
      • 聚类(Clustering):将数据划分为若干个群组,使得同一群组内的数据相似度较高,不同群组之间的数据相似度较低。如:客户细分、文档聚类。
        • 常用算法:
          • K-Means
          • 层次聚类(Hierarchical Clustering)
          • DBSCAN

3. 数据分析与知识发现 🕵️‍♀️

  • 方法分类
    • 无监督学习
      • 异常检测(Anomaly Detection):识别数据中的异常值或异常模式。如:信用卡欺诈检测、网络入侵检测。
        • 常用算法:
          • 基于统计的方法(如Z-score、箱线图)
          • 基于距离的方法(如K近邻)
          • 基于密度的方法(如DBSCAN)
          • 孤立森林(Isolation Forest)

4. 数据后处理 📊

  • 结果评估: 对数据分析的结果进行评估,判断其是否有效、可靠。
    • 分类模型评估指标: 准确率、精确率、召回率、F1值、ROC曲线、AUC等。
    • 回归模型评估指标: 均方误差、均方根误差、平均绝对误差、R方等。
    • 聚类模型评估指标: 轮廓系数、Calinski-Harabasz指数等。

4. 数据后处理 📊

  • 结果呈现: 将数据分析的结果以直观、易懂的方式呈现给用户。
    • 数据可视化: 使用图表、图形等展示数据。
    • 报告撰写: 将数据分析的过程、结果、结论等以书面形式呈现。

4. 数据后处理 📊

  • 结果应用: 将数据分析的结果应用于实际业务场景,解决实际问题。
    • 决策支持: 为决策者提供数据支持,辅助决策。
    • 模型部署: 将训练好的模型部署到生产环境中,进行实时预测或分类。

Python和数据分析 🐍

专用数据分析语言

  • R 语言: 统计分析和数据可视化
  • Matlab: 科学计算和工程应用
  • Sas: 商业分析和数据挖掘
  • Spss: 统计分析和社会科学研究

Python的优势:面向生产

  • 大部分数据分析过程需要首先进行实验性研究和原型构建,再移植到生产系统中。

Python的优势:面向生产

  • Python 适用于原型构建,且能够直接将分析程序运用到生产系统中。

Python的优势:面向生产

  • 其他的分析语言,则需要使用其他语言(如C/C++)重写代码,才能部署到生产环境。

Python的优势:强大的第三方库

  • Python 的强大功能依赖于第三方库实现。

Python的优势:强大的第三方库

  • 常用数据分析库包括:
    • Numpy: 提供高性能的数值计算功能。
      • 多维数组对象(ndarray)
      • 线性代数运算
      • 随机数生成

Python的优势:强大的第三方库

  • 常用数据分析库包括:
    • Scipy: 提供科学计算工具,如统计分析、信号处理等。
      • 统计分布和检验
      • 优化算法
      • 信号处理
      • 图像处理

Python的优势:强大的第三方库

  • 常用数据分析库包括:
    • Pandas: 提供数据处理和分析工具,如数据清洗、转换、聚合等。
      • Series 和 DataFrame 数据结构
      • 数据读取和写入(CSV、Excel、SQL等)
      • 数据清洗和转换
      • 数据分组和聚合
      • 时间序列分析

Python的优势:强大的第三方库

  • 常用数据分析库包括:

    • Scikit-learn: 提供机器学习算法库,如分类、回归、聚类等。
      • 各种机器学习算法(分类、回归、聚类、降维等)
      • 模型选择和评估
      • 数据预处理
      • 流水线(Pipeline)

Python的优势:强大的第三方库

  • 常用数据分析库包括:

    • Matplotlib: 提供数据可视化工具,如绘制各种图表。
      • 折线图、散点图、柱状图、直方图、饼图等
      • 自定义图表样式
      • 交互式绘图

Python的优势:强大的第三方库

  • 常用数据分析库包括:
    • Seaborn: 基于Matplotlib的高级可视化库
    • Plotly: 交互式可视化图表

Python的优势:胶水语言特性

  • Python 语言的底层可以用 C 语言实现,使用 C 语言实现的算法性能很高。

Python的优势:胶水语言特性

  • Numpy 的底层使用 C 实现,其效率比 R 语言更高。

Python的优势:胶水语言特性

  • Python可以方便地调用其他语言编写的程序(如C/C++,Java等),可以把其他语言的优势集成进来。

提示

Python 的胶水语言特性使其能够方便地调用其他语言编写的程序,从而充分利用各种资源,提高开发效率。

总结

  • 数据分析是从海量数据中提取有用信息和知识的过程,可以帮助我们解释过去、预测未来。
  • 数据分析、数据挖掘和机器学习之间存在密切的关系:
    • 数据分析包含统计分析和数据挖掘两个阶段。
    • 机器学习是数据分析的重要工具,数据分析为机器学习提供数据和问题。
  • 数据分析的基本步骤包括数据收集、数据预处理、数据分析与知识发现以及数据后处理。每个步骤都有其特定的任务和方法。
  • Python 是一种非常适合数据分析的编程语言,具有面向生产、强大的第三方库支持以及胶水语言特性等优势。

思考与讨论 🤔

  • 你认为数据分析在哪些领域有重要的应用?请举例说明。
  • 除了本章介绍的数据分析方法外,你还了解哪些其他的数据分析方法?
  • 你认为 Python 在数据分析领域有哪些不足之处?
  • 数据伦理和隐私保护在数据分析中非常重要。你认为在进行数据分析时,应该如何保护用户的隐私?
  • 请分享一个你认为有趣或有价值的数据分析案例。