crackcell's dustbin home projects
首页 > Spark代码笔记:mllib/Attribute > 正文

Spark代码笔记:mllib/Attribute

1 简介

Attribute是Spark新机器学习API引入的另一个大特性(另外一个DataFrame API)。它的作用是在数据中保存meta信息

2 Attribute的基本类型

  • Numeric:数值类型
  • Nominal:类别类型
  • Binary:2类别类型
  • Unresolved:无法解析的类型

2.1 Numeric包含的信息

/**
 * :: DeveloperApi ::
 * A numeric attribute with optional summary statistics.
 * @param name optional name
 * @param index optional index
 * @param min optional min value
 * @param max optional max value
 * @param std optional standard deviation
 * @param sparsity optional sparsity (ratio of zeros)
 */
@DeveloperApi
class NumericAttribute private[ml] (
    override val name: Option[String] = None,
    override val index: Option[Int] = None,
    val min: Option[Double] = None,
    val max: Option[Double] = None,
    val std: Option[Double] = None,
    val sparsity: Option[Double] = None) extends Attribute {
  • name:属性名
  • index:属性索引下标
  • min:最小取值
  • max:最大取值
  • std:标准差
  • sparsity:稀疏率

2.2 Nominal包含的信息

/**
 * :: DeveloperApi ::
 * A nominal attribute.
 * @param name optional name
 * @param index optional index
 * @param isOrdinal whether this attribute is ordinal (optional)
 * @param numValues optional number of values. At most one of `numValues` and `values` can be
 *                  defined.
 * @param values optional values. At most one of `numValues` and `values` can be defined.
 */
@DeveloperApi
class NominalAttribute private[ml] (
    override val name: Option[String] = None,
    override val index: Option[Int] = None,
    val isOrdinal: Option[Boolean] = None,
    val numValues: Option[Int] = None,
    val values: Option[Array[String]] = None) extends Attribute {
  • name:属性名
  • index:属性索引下标
  • isOrdinal:是否是有序的
  • numValues:可取值数量
  • values:可取值

2.3 Binary包含的信息

/**
 * :: DeveloperApi ::
 * A binary attribute.
 * @param name optional name
 * @param index optional index
 * @param values optional values. If set, its size must be 2.
 */
@DeveloperApi
class BinaryAttribute private[ml] (
    override val name: Option[String] = None,
    override val index: Option[Int] = None,
    val values: Option[Array[String]] = None)
  extends Attribute {
  • name:属性名
  • index:属性的索引下标
  • values:属性的可取值,必须是2个值

3 Attribute的构建方式

3种合法类型每个对应了一个AttributeFactory工厂:

  • NumericAttribute
  • NominalAttribute
  • BinaryAttribute

AttributeFactory定义了2个主要的方法:

  • 一个抽象方法:fromMetadata,用于从已有meta信息中提取
  • fromStructField:从schema中提取

4 AttributeGroup

除了基本类型,还有一种特殊类型AttributeGroup,用来表示一个向量的属性,它包含了多个单独的Attribute

Date: Sat Jan 28 20:34:58 2017

Author: Menglong TAN

Org version 7.9.3f with Emacs version 24

Validate XHTML 1.0

Modified theme and code from Tom Preston-Werner.