1. 大数据可视化概述

  1. 数据可视化是为了帮助用户通过认知数据,进而发现这些数据所反映的实质
  2. 数据可视化的三种类型
    • 科学可视化
    • 信息可视化
    • 可视化分析
  3. 数据可视化的标准通常包含:实用性、完整性、真实性、艺术性、交互性
  4. 数据可视化的目标
    • 应用角度:
      • 通过数据可视化有效呈现数据中的重要特征
      • 通过数据可视化揭示事物内部客观规律以及数据间的内在联系
      • 通过数据可视化辅助人们理解事物概念和过程
      • 通过数据可视化对模拟和测量进行质量监控
      • 通过数据可视化提高科研开发效率
    • 宏观角度:
      • 数据可视化的目标主要包含有信息记录、信息分析和信息传播
  5. 数据可视化的作用
    • 数据表达
    • 数据操作
    • 数据分析
  6. 数据可视化的流程
    • 数据采集 -> 数据处理 -> 可视化映射 -> 用户感知

2. 数据预处理概述

  1. 数据的类型
    • 结构化数据(日期、产品名称)
    • 半结构化数据(日志文件、HTML、XML、JSON)
    • 非结构化数据(文档、图片、视频、音频)
  2. 数据预处理流程
    • 数据清洗 -> 数据集成 -> 数据归约 -> 数据变换

3. 数据分析技术

分类(有监督学习)

  1. 逻辑回归是一种分类算法(不要被带有回归二字误导了)

  2. 逻辑回归=线性回归+Sigmoid函数

  3. Logistic/Softmax回归模型一般用于分类问题

  4. 分类问题当中正类和负类分别指什么

    • 正类:模型需要检测或预测的目标类别(如疾病患者、欺诈交易、垃圾邮件)
    • 负类:与正类相对的非目标类别(如健康人、正常交易、正常邮件)
  5. 评价指标

    • P-R曲线

      • 横坐标召回率,纵坐标精确率
    • ROC曲线

      • 横坐标假正率(FPR特异度),纵坐标是真正率(TPR灵敏度)
        • 与横坐标围成的面积为AUC值,AUC值越接近于1说明模型平均性能越好
      • 我们希望FP越低,TP越高越好,所以ROC曲线越抖效果越好
    • 准确率(Accuracy)全局视角,衡量模型整体正确率

    • 精确率(Precision)

      • 预测为正的样本中,有多少是真的
      • TP / (TP + FP)
      • 相当于看一列
    • 召回率(Recall)

      • 真实为正的样本中,预测对了多少
      • TP / (TP + FN)
      • 相当于看一行
    • F1值

    • 混淆矩阵

      • 预测为正类 预测为负类
        实际为正类 TP FN
        实际为负类 FP TN

回归预测(有监督学习)

  1. 回归的算法模型:线性回归(Linear)、岭回归(Ridge)、LASSO回归
  2. 最小二乘法是通过最小化平方误差求解线性模型参数的
  3. 评价指标
    • 均方误差(MSE)
    • 均方根误差(RMSE)
    • 平均绝对误差(MAE)
    • R^2
      • 取值范围为[0, 1], 值越大越好

聚类(无监督学习)

  1. 聚类与分类的区别在于聚类不依赖于预先定义的类,没有预定义的类和样本——聚类是一种无监督的数据挖掘任务

  2. 聚类是把各不相同的个体分割为更多相似性子集合的工作

  3. 聚类生成的子集称为簇

  4. 聚类的分类

    • 基于划分:K-means、K-medoids、K-prototype算法
    • 基于密度:DBSCAN、DENCLUE、OPTICS算法
    • 基于层次:BIRCH、CURE、ROCK算法
  5. 客单价是指每一位顾客平均每次消费的金额

  6. 评价指标

    • 外部指标:(需真实标签)
      • ARI(调整兰德指数)
        • 取值范围[-1, 1], 值越大效果越好
      • NMI(归一化互信息)
        • 取值范围[0, 1], 值越大效果越好
      • FM指数
        • 取值范围[0, 1], 值越大效果越好
    • 内部指标:(无需真实标签)
      • DBI(DB指数)
        • 值越小效果越好
      • CH指数
        • 值越大效果越好
      • 轮廓系数
        • 取值范围[-1, 1], 值越大效果越好
  7. K-means

    • 算法步骤

      1. 随机选取K个样本作为类中心
      2. 计算各样本与各类中心的距离
      3. 将各样本归于最近的类中心点
      4. 求各类样本的均值,作为新的类中心
      5. 判定:若类中心不再发生变动或达到迭代次数,算法结束,否则回到第2步
    • 聚类的特点是什么(需要指定聚类数k)

      优点

      • 算法简单易用
      • 聚类结果容易解释,适用于高维数据的聚类
      • 对球形簇样本聚类效果好
      • 二分k均值等变种算法运行良好,不受初始化问题的影响

      缺点

      • 不能处理非球形簇、不同尺寸和不同密度的簇
      • 对离群点、噪声敏感
      • 贪心策略,容易局部收敛
  8. K-medoids

    • 算法步骤:

      1. 随机选取K个样本作为类中心
      2. 计算各样本与各类中心的距离
      3. 将各样本归于最近的类中心点
      4. 在各类别内选取到其余样本距离之和最小的样本作为新的类中心
      5. 判定:若类中心不再发生变动或达到迭代次数,算法结束,否则回到第2步
    • 算法特点:

      • 需要指定聚类数k
      • 克服缺点:K-means算法中异常数据会使聚类结果偏离
      • 找类距离:不是计算各簇中所有样本点的平均值,而是在各簇中选取到其余样本距离之和最小的样本点

      优点

      • 算法简单易理解
      • 对球形簇样本聚类效果好
      • 对离群点、噪声敏感

      缺点

      • 不能处理非球形簇,不同尺寸和不同密度的簇
      • 算法复杂度较高
  9. 层次聚类

    • 凝聚的层次聚类(自底向上)

    • 分裂的层次聚类(自顶向下)

      特点:

      • 不需要事先设定类别数K
      • 每次迭代过程仅将距离最近的两个样本簇聚为一类

      优点

      • 在系统发生树,基因芯片应用领域需要层次结构
      • 研究表面,这种算法能够产生较高质量的聚类

      缺点

      • 计算量、存储量大
      • 对噪声、高维数据敏感
  10. 密度聚类

    • DBSCAN(具有噪声的基于密度的聚类方法)

    • 将具有足够密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,它将簇定义为密度相连的点的最大集合

    • 特点

      • 对噪声敏感
      • 可以处理不同形状和大小的簇
      • DBSCAN算法有两个参数
        • 半径(Eps)
        • 阈值(MinPts):圈住点的个数

      优点

      • 可以对任意形状的数据集进行聚类
      • 不需要提前指定聚类个数K
      • 聚类的同时可以发现异常点

      缺点

      • 对两个参数的设置敏感:圈的半径(Eps)、阈值(MinPts)
      • 对密度不均匀的数据集,聚类效果较差
      • 当数据集较大,收敛时间较长,要求较大的内存支持,I/O开销大

推荐算法

  1. 协同过滤算法
    • 基于用户的协同过滤算法
      • 问题:数据稀疏,计算复杂,人是善变的,冷启动问题
      • 稀疏:通常商品非常多,用户购买的只是其中极小的一部分
      • 计算:计算相似度矩阵复杂
      • 冷启动:新用户来了怎么办
        • 引导用户把自己的一些属性表达出来
        • 利用现有的开放数据平台
        • 根据用户注册属性
        • 推荐排行榜单
    • 基于物品的协同过滤算法
      • 更流行,现阶段各大网站基本都是用户较多,商品(种类)比用户少得多
      • 商品属性通常比较固定,特征获取容易,而且基本不变
      • 即使上架了,也会有标签,不会像用户一样是一张白纸
  2. 相似度计算
    • 欧几里得距离
    • 皮尔逊相关系数
    • Cosine相似度
  3. 隐语义模型
    • 矩阵分解
    • 评分矩阵 = user矩阵 × item矩阵
  4. 推荐系统的难点与挑战
    • 需要广泛收集用户标签画像
    • 人是善变的,随着时间的推移,兴趣也会改变
    • 根据固定的画像数据,推荐结果不可能固定不变
    • 特征工程的构建
    • 商品和用户的冷启动

关联规则

  1. 支持度

    • 指某个商品组合出现的次数与总次数之间的比例,支持度越高表示该组合出现的几率越大
    • Sup(A, B) = freq(A, B) / N
  2. 置信度

    • 表示购买了A商品后,有多大概率会购买B商品(条件概率)
    • Con(A -> B) = Sup(A, B) / Sup(A)
  3. 提升度

    • 商品A出现,对商品B出现概率提升的程度
    • Lift(A -> B) = Con(A -> B) / Sup(B)
    • Lift=1:A和B独立,无关联
    • Lift>1:A和B正相关,A的出现促进B的出现
    • Lift<1:A和B负相关,A的出现抑制B的出现
  4. Apriori算法

    • 频繁项集的所有子集必须频繁

    • 求最大频繁项目集就是在L1出现不在L2出现,在L2出现不在

      • 它本身是频繁的
      • 它的所有超集(添加任意物品后)都不频繁
    • 优点

      • 简单易用
    • 缺点

      • 可能产生大量的候选集,因为采用排列组合的方式,把可能的项集都组合出来了
      • 每次计算都需要重新扫描数据集,来计算每个项集的支持度
      • 适合小型数据集
  5. FP-Growth

    • 优点

      • 无候选项集产生
      • 高效
      • 适合大数据集
    • 缺点

      • 实现复杂
      • 不直观

4. 数据可视化方法

  1. 常见的比较类图主要有:柱状图、气泡图、漏斗图、直方图
  2. 常见的分部类图有:热力图、散点图、直方图
  3. 常见的流程类图:漏斗图、桑基图
  4. 常见的占比的图:饼图、环形图、堆叠面积图、堆叠柱状图、矩形树图
  5. 常见的区间类图:仪表盘图、堆叠面积图
  6. 常见的关联类图有:和弦图、桑基图
  7. 常见的时间类图:面积图、K线图、折现图
  8. 常见的趋势类图:面积图、K线图、折线图
  9. 美化方法
    • 柱状图
      • 宽度和间隙要适当
      • 排列的时候最后按照规律排列,例如按照数量从多到少进行排列,或者字母顺序
    • 折线图
      • 折线的颜色要清晰,尽量不要与背景颜色和坐标轴颜色相近
    • 饼图
      • 多数人的视觉习惯是按照顺时针和自上而下的顺序去观察,因此在绘制饼图时候建议从12点开始顺时针右边第一个分块绘制饼图最大的数据分块,可以有效强调其重要性
  10. 如果需要表达数据之间的关联关系,可以使用散点图和气泡图
  11. 漏斗图可以清晰的看出每个层级的转化,例如日期与工作转换率的关系
  12. 文本可视化
    • 基于文本内容的可视化
      • 词频可视化,词汇分布可视化,常见的有词云、分布图和Document Cards
    • 基于文本关系的可视化
      • 树状图、节点连接的网络图、力导向图、叠式图和Word Tree
  13. excel连接外部数据的主要好处是可以在excel定期分析此数据,而不用重复复制数据,复制操作不仅耗时而且容易出错
  14. Tableau的特点如下:
    • 安全性
    • 易用性
    • 自助式开发
    • 有效管控
  15. Tableau实现可视化的步骤
    1. 导入数据
    2. 添加字段到功能区
    3. 选择图表
    4. 可视化展示
  16. echarts可视化
    • 饼图:type:’pie’
    • 折线图:type:’line’
  17. 雷达图一般用来进行多指标体系比较分析,如成绩展示、效果对比量化、多维数据比对

5. 决策树

ID3

  1. 不能处理连续的特征属性的值
  2. 构建的可以是多叉树
  • 优点
    • 决策树构建速度快,实现简单
  • 缺点
    • 计算依赖于特征数目较多的特征,而属性值最多的属性并不一定最优
    • ID3算法不是递增算法(属性不能重复选择)
    • ID3算法是单变量决策树,对特征属性之间的关系不会考虑(如X1X2在一个节点)
    • 抗噪性差
    • 只适合小规模数据集, 需要将数据放到内存中

C4.5

  1. 使用信息增益率来取代ID3算法中的信息增益
  2. 在树构造过程中会进行剪枝操作进行优化
  3. 能够自动处理连续属性的离散化
  4. 构建的可以是多叉树
  5. 单变量决策树
  • 优点
    • 产生的规则易于理解
    • 准确率较高
    • 实现简单
  • 缺点
    • 对数据集需要进行多次顺序扫描和排序,效率比较低
    • 只适合小规模数据集,需要将数据放到内存中

CART

  1. 使用Gini增益作为属性分割的标准
  2. 可用于分类和回归
  3. CART构建是二叉树
  4. 一个节点不一定要分完,可以继续分(例如x1 -> x1…这里x1就指向了x1)特征属性可以使用多次

区别

  1. ID3和C4.5算法都是单变量决策树,而CART支持特征属性的多次使用
  2. ID3使用信息增益,C4.5使用信息增益率,CART使用Gini系数
  3. CART算法构建的一定是二叉树,ID3和C4.5不一定是二叉树
  4. CART可以支持分类和回归,而ID3和C4.5不行

6. Bagging & Adaboost

算法 类型 核心思想
Bagging 并行式集成学习 通过随机采样(减少方差)
Adaboost 串行式集成学习 通过调整权重分布(减少偏差)

大总结

评价指标 可视化
分类 准确率、精确率、召回率、F1值 混淆矩阵、ROC曲线、P-R曲线
回归 MSE、RMSE、MAE、R^2 折线图、散点图
聚类 外部指标:ARI、NMI; 内部指标:DBI、CH指数、轮廓系数 散点图、聚类树状图