Machine Learning avec PySpark
Andrew Collier
Data Scientist, Fathom Data
Uniquement pour les données d'entraînement.
Pour les données d'essai et d'entraînement.


Un pipeline regroupe une série d'opérations.
Vous pourriez appliquer chaque opération séparément… ou simplement exécuter le pipeline !
indexer = StringIndexer(inputCol='type', outputCol='type_idx')onehot = OneHotEncoder(inputCols=['type_idx'], outputCols=['type_dummy'])assemble = VectorAssembler( inputCols=['mass', 'cyl', 'type_dummy'], outputCol='features' )regression = LinearRegression(labelCol='consumption')
indexer = indexer.fit(cars_train)
cars_train = indexer.transform(cars_train)
onehot = onehot.fit(cars_train)
cars_train = onehot.transform(cars_train)
cars_train = assemble.transform(cars_train)
# Ajuster le modèle sur les données d'entraînement
regression = regression.fit(cars_train)
cars_test = indexer.transform(cars_test)
cars_test = onehot.transform(cars_test)
cars_test = assemble.transform(cars_test)
# Générer des prédictions sur les données d'essai
predictions = regression.transform(cars_test)
Regrouper les étapes dans un pipeline.
from pyspark.ml import Pipeline
pipeline = Pipeline(stages=[indexer, onehot, assemble, regression])
Données d'entraînement
pipeline = pipeline.fit(cars_train)
Données d'essai
predictions = pipeline.transform(cars_test)
Accéder aux étapes via l'attribut .stages.
# L'objet LinearRegression (quatrième étape -> index 3) pipeline.stages[3]print(pipeline.stages[3].intercept)
4.19433571782916
print(pipeline.stages[3].coefficients)
DenseVector([0.0028, 0.2705, -1.1813, -1.3696, -1.1751, -1.1553, -1.8894])
Machine Learning avec PySpark