Klassifikation

Grundlagen von Big Data mit PySpark

Upendra Devisetty

Science Analyst, CyVerse

Klassifikation mit PySpark MLlib

  • Klassifikation ist überwachtes Lernen, das Eingaben in Kategorien einteilt

Grundlagen von Big Data mit PySpark

Einführung in die logistische Regression

  • Logistische Regression sagt eine binäre Antwort basierend auf Variablen vorher

Grundlagen von Big Data mit PySpark

Arbeiten mit Vektoren

  • PySpark MLlib hat spezielle Datentypen: Vectors und LabeledPoint

  • Zwei Vektorarten

    • Dense Vector: speichert alle Einträge als Float-Array
    • Sparse Vector: speichert nur Nicht-Null-Werte und ihre Indizes
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})
Grundlagen von Big Data mit PySpark

LabeledPoint() in PySpark MLlib

  • Ein LabeledPoint kapselt Features und Zielwert

  • Bei binärer Klassifikation ist das Label 0 (negativ) oder 1 (positiv)

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])
Grundlagen von Big Data mit PySpark

HashingTF() in PySpark MLlib

  • Der Algorithmus HashingTF() ordnet Feature-Werte Indizes im Feature-Vektor zu
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})
Grundlagen von Big Data mit PySpark

Logistische Regression mit LogisticRegressionWithLBFGS

  • Logistische Regression mit PySpark MLlib erfolgt über die Klasse 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
Grundlagen von Big Data mit PySpark

Letzte Folie

Grundlagen von Big Data mit PySpark

Preparing Video For Download...