分類

PySparkで学ぶBig Data入門

Upendra Devisetty

Science Analyst, CyVerse

PySpark MLlib による分類

  • 分類は、入力データを複数のカテゴリに振り分ける教師あり学習です

PySparkで学ぶBig Data入門

ロジスティック回帰の概要

  • ロジスティック回帰は、変数から二値の応答を予測します

PySparkで学ぶBig Data入門

Vector の操作

  • PySpark MLlib には、Vector と LabeledPoint という専用データ型があります

  • Vector の種類は2つあります

    • Dense Vector: すべての要素を浮動小数の配列で保持
    • Sparse Vector: 非ゼロ要素とそのインデックスのみ保持
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で学ぶBig Data入門

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で学ぶBig Data入門

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で学ぶBig Data入門

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で学ぶBig Data入門

最終スライド

PySparkで学ぶBig Data入門

Preparing Video For Download...