栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 数据挖掘与分析

2.Spark ML学习笔记—数学基础—矩阵向量计算(Breeze)、BLAS介绍、分类效果评估指标、机器学习案例

2.Spark ML学习笔记—数学基础—矩阵向量计算(Breeze)、BLAS介绍、分类效果评估指标、机器学习案例

本文目录如下:
  • 第2章 Spark ML数学基础
    • 2.1 矩阵向量计算
      • 2.1.1 Breeze 创建函数
      • 2.1.2 Breeze 元素访问
      • 2.1.3 Breeze 其他函数
    • 2.2 BLAS 介绍 (一个线性代数计算库)
      • 2.2.1 BLAS 向量-向量运算
      • 2.2.2 BLAS 矩阵-向量运算
      • 2.2.3 BLAS 矩阵-矩阵运算
    • 2.3 分类效果评估指标
      • 2.3.1 评估指标 (度量指标)
      • 2.3.2 评估指标实例
    • 2.4 机器学习案例
      • 2.4.1 二元分类案例—使用 Spark ML 的逻辑回归来预测乳腺癌
      • 2.4.2 多元分类案例—使用 Spark ML 的逻辑回归来预测音乐标签

第2章 Spark ML数学基础 2.1 矩阵向量计算
  • Spark MLlib底层的向量、矩阵运算使用了 Breeze库,Breeze库提供了 Vector/Matrix 的实现以及相应计算的接口 (Linalg)。但是在MLlib里面同时也提供了Vector和Linalg等的实现。
2.1.1 Breeze 创建函数
  • (1) 在使用 Breeze 库时,需要导入相关包:
    import breeze.linalg._
    import breeze.numerics._

  • (2) API:
    http://www.scalanlp.org/api/breeze/index.html#breeze.linalg.package

2.1.2 Breeze 元素访问

2.1.3 Breeze 其他函数

Breeze 三角函数、Breeze 对数和指数函数等。详情略。


2.2 BLAS 介绍 (一个线性代数计算库)

BLAS按照功能被分为三个级别:

  • Level 1:矢量-矢量运算,比如点积 (ddot),加法和数乘(daxpy),绝对值的和(dastum),等等;
  • Level 2:矩阵-矢量运算,最重要的函数是一般的矩阵向量乘法(dgemv);
  • Level 3:矩阵-矩阵运算,最重要的函数是一般的矩阵乘法 (dgemm);

注: 每一种函数操作都区分不同数据类型 (单精度、双精度、复数)

API: http://www.netlib.org/blas/

2.2.1 BLAS 向量-向量运算

2.2.2 BLAS 矩阵-向量运算

2.2.3 BLAS 矩阵-矩阵运算


2.3 分类效果评估指标


在有监督分类问题中, 存在每个数据点的真实输出,以及模型生成的预测输出。因此, 每个数据点的结果均可分配到如下四个类别中:

  • 真正类(True positive): 标签是正类并且被预测成正类。
  • 假正类(False positive): 标签是负类并且被预测成正类。
  • 真负类(True negative): 标签是负类并且被预测成负类。
  • 假负类(false negative): 标签是正类并且被预测成负类。
2.3.1 评估指标 (度量指标)

在对分类器进行评估时, 通常有以下几个评估指标:

  • 准确率(P: Precision): accuracy = (TP)/ (TP + FP)。
  • 召回率(R: Recall): recall = TP / (P) = TP / (TP +FP)。

准确率表示模型中判为正的样本中有多少是真正的正样本。另外,召回率则展示了测试在检测正类方面有多好。在大多数应用中,准确率和召回率之间存在一个可以接受的平衡。可将两者进行合并,从而得到一个单一度量,称为 F值(F-Measure, 又称F-Score):

2.3.2 评估指标实例
// 为模型评估初始化一个多类度量 (metrics包含模型的各种度量信息)
val metrics = new MulticlassMetrics(scoreAndLabels)

// Precision by label (准确率)
val labels = metrics.labels
labels.foreach(
  l => println(s"Precision($l) = " + metrics.precision(l))
)

// Recall by label (召回率)
labels.foreach(
  l => println(s"Recall($l) = " + metrics.recall(l))
)

// False positive rate by label (假正类比例)
labels.foreach(
  l => println(s"FPR($l) = " + metrics.falsePositiveRate(l))
)

// F-measure by label (F1分数)
labels.foreach(
  l => println(s"F1-Score($l) = " + metrics.fMeasure(l))
)

2.4 机器学习案例 2.4.1 二元分类案例—使用 Spark ML 的逻辑回归来预测乳腺癌
  • 该案例的详细描述请参考: 使用Spark ML的逻辑回归来预测乳腺癌。
2.4.2 多元分类案例—使用 Spark ML 的逻辑回归来预测音乐标签
  • 该案例的详细描述请参考: 使用Spark ML的逻辑回归来预测音乐标签。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/278833.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号