Classification

Principes fondamentaux des mégadonnées avec PySpark

Upendra Devisetty

Science Analyst, CyVerse

Classification avec PySpark MLlib

  • La classification est un apprentissage supervisé qui classe les données en catégories

Principes fondamentaux des mégadonnées avec PySpark

Introduction à la régression logistique

  • La régression logistique prédit une réponse binaire à partir de variables explicatives

Principes fondamentaux des mégadonnées avec PySpark

Travailler avec les vecteurs

  • PySpark MLlib propose des types dédiés : Vectors et LabeledPoint

  • Deux types de vecteurs

    • Dense Vector : stocke toutes les valeurs dans un tableau de flottants
    • Sparse Vector : stocke uniquement les valeurs non nulles et leurs indices
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})
Principes fondamentaux des mégadonnées avec PySpark

LabeledPoint() dans PySpark MLlib

  • LabeledPoint encapsule les caractéristiques d’entrée et la valeur cible

  • En binaire (régression logistique), l’étiquette vaut 0 (négatif) ou 1 (positif)

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])
Principes fondamentaux des mégadonnées avec PySpark

HashingTF() dans PySpark MLlib

  • L’algorithme HashingTF() associe les valeurs de caractéristiques à des indices du vecteur de caractéristiques
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})
Principes fondamentaux des mégadonnées avec PySpark

Régression logistique avec LogisticRegressionWithLBFGS

  • La régression logistique avec PySpark MLlib s’effectue via la classe 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
Principes fondamentaux des mégadonnées avec PySpark

Diapositive finale

Principes fondamentaux des mégadonnées avec PySpark

Preparing Video For Download...