分类

使用 PySpark 的大数据基础

Upendra Devisetty

Science Analyst, CyVerse

使用 PySpark MLlib 的分类

  • 分类是监督学习,用于将输入数据划分到不同类别

使用 PySpark 的大数据基础

逻辑回归简介

  • 逻辑回归基于自变量预测二分类结果

使用 PySpark 的大数据基础

使用向量

  • PySpark MLlib 提供特定数据类型:Vectors 和 LabeledPoint

  • 两种向量

    • 稠密向量:将所有元素存为浮点数组
    • 稀疏向量:仅存非零值及其索引
denseVec = Vectors.dense([1.0, 2.0, 3.0])
DenseVector([1.0, 2.0, 3.0])
sparseVec = Vectors.sparse(4, {1: 1.0, 3: 5.5})
SparseVector(4, {1: 1.0, 3: 5.5})
使用 PySpark 的大数据基础

PySpark MLlib 中的 LabeledPoint()

  • LabeledPoint 封装特征与标签值

  • 逻辑回归的二分类中,标签为 0(负类)或 1(正类)

positive = LabeledPoint(1.0, [1.0, 0.0, 3.0])
negative = LabeledPoint(0.0, [2.0, 1.0, 1.0])
print(positive)
print(negative)
LabeledPoint(1.0, [1.0,0.0,3.0])
LabeledPoint(0.0, [2.0,1.0,1.0])
使用 PySpark 的大数据基础

PySpark MLlib 中的 HashingTF()

  • HashingTF() 用于将特征值映射到特征向量的索引
from pyspark.mllib.feature import HashingTF
sentence = "hello hello world"
words = sentence.split()
tf = HashingTF(10000) 
tf.transform(words)
SparseVector(10000, {3065: 1.0, 6861: 2.0})
使用 PySpark 的大数据基础

使用 LogisticRegressionWithLBFGS 的逻辑回归

  • 在 PySpark MLlib 中,可用 LogisticRegressionWithLBFGS 类实现逻辑回归
data = [
        LabeledPoint(0.0, [0.0, 1.0]),
        LabeledPoint(1.0, [1.0, 0.0]),
]
RDD = sc.parallelize(data)
lrm = LogisticRegressionWithLBFGS.train(RDD)
lrm.predict([1.0, 0.0])
lrm.predict([0.0, 1.0])
1
0
使用 PySpark 的大数据基础

结束页

使用 PySpark 的大数据基础

Preparing Video For Download...