Apache Flink - Машинное обучение

Библиотека машинного обучения Apache Flink называется FlinkML. Поскольку за последние 5 лет использование машинного обучения экспоненциально росло, сообщество Flink решило добавить этот APO машинного обучения также в свою экосистему. Список участников и алгоритмов во FlinkML увеличивается. Этот API еще не является частью двоичного дистрибутива.

Вот пример линейной регрессии с использованием FlinkML -

// LabeledVector is a feature vector with a label (class or real value)
val trainingData: DataSet[LabeledVector] = ...
val testingData: DataSet[Vector] = ...

// Alternatively, a Splitter is used to break up a DataSet into training and testing data.
val dataSet: DataSet[LabeledVector] = ...
val trainTestData: DataSet[TrainTestDataSet] = Splitter.trainTestSplit(dataSet)
val trainingData: DataSet[LabeledVector] = trainTestData.training
val testingData: DataSet[Vector] = trainTestData.testing.map(lv => lv.vector)
val mlr = MultipleLinearRegression()

.setStepsize(1.0)
.setIterations(100)
.setConvergenceThreshold(0.001)
mlr.fit(trainingData)

// The fitted model can now be used to make predictions
val predictions: DataSet[LabeledVector] = mlr.predict(testingData)

Внутри flink-1.7.1/examples/batch/путь, вы найдете файл KMeans.jar. Давайте запустим этот образец FlinkML.

Этот пример программы запускается с использованием точки по умолчанию и набора данных центроида.

./bin/flink run examples/batch/KMeans.jar --output Print