Pipeline

Machine Learning dengan PySpark

Andrew Collier

Data Scientist, Fathom Data

Kebocoran?

Metode fit()

Hanya untuk data pelatihan.

Metode transform()

Untuk data pengujian dan pelatihan.

Machine Learning dengan PySpark

Model bocor

Model yang memakai data pengujian untuk pelatihan

Machine Learning dengan PySpark

Model rapat air

Model yang hanya memakai data pelatihan untuk pelatihan

Machine Learning dengan PySpark

Pipeline

Pipeline terdiri dari serangkaian operasi.

Sebuah pipeline dengan banyak tahap

Anda bisa menerapkan setiap operasi satu per satu... atau cukup terapkan pipelinenya!

Machine Learning dengan PySpark

Model mobil: Langkah

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')
Machine Learning dengan PySpark

Model mobil: Menerapkan langkah

Data pelatihan

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)
# Latih model pada data pelatihan
regression = regression.fit(cars_train)

Data pengujian

cars_test  = indexer.transform(cars_test)
cars_test  = onehot.transform(cars_test)
cars_test  = assemble.transform(cars_test)
# Buat prediksi pada data pengujian
predictions = regression.transform(cars_test)
Machine Learning dengan PySpark

Model mobil: Pipeline

Gabungkan langkah menjadi sebuah pipeline.

from pyspark.ml import Pipeline

pipeline = Pipeline(stages=[indexer, onehot, assemble, regression])

Data pelatihan

pipeline = pipeline.fit(cars_train)

Data pengujian

predictions = pipeline.transform(cars_test)
Machine Learning dengan PySpark

Model mobil: Tahap

Akses tiap tahap dengan atribut .stages.

# Objek LinearRegression (tahap keempat -> indeks 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 dengan PySpark

Pipeline mempermudah alur kerja!

Machine Learning dengan PySpark

Preparing Video For Download...