Конвеєр

Machine Learning з PySpark

Andrew Collier

Data Scientist, Fathom Data

Витік?

Метод fit()

Лише для тренувальних даних.

Метод transform()

Для тестових і тренувальних даних.

Machine Learning з PySpark

«Дірява» модель

Модель, де тестові дані використано для навчання

Machine Learning з PySpark

Герметична модель

Модель, де для навчання використано лише тренувальні дані

Machine Learning з PySpark

Конвеєр

Конвеєр складається з послідовності операцій.

Конвеєр із кількома етапами

Можна виконувати кожну операцію окремо… або запустити весь конвеєр!

Machine Learning з PySpark

Модель для авто: кроки

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 з PySpark

Модель для авто: застосування кроків

Тренувальні дані

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)
# Fit model to training data
regression = regression.fit(cars_train)

Тестові дані

cars_test  = indexer.transform(cars_test)
cars_test  = onehot.transform(cars_test)
cars_test  = assemble.transform(cars_test)
# Make predictions on testing data
predictions = regression.transform(cars_test)
Machine Learning з PySpark

Модель для авто: конвеєр

Об'єднайте кроки в конвеєр.

from pyspark.ml import Pipeline

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

Тренувальні дані

pipeline = pipeline.fit(cars_train)

Тестові дані

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

Модель для авто: етапи

Доступ до окремих етапів через атрибут .stages.

# Об'єкт LinearRegression (четвертий етап -> індекс 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 з PySpark

Конвеєри спрощують роботу!

Machine Learning з PySpark

Preparing Video For Download...