Библиотека машинного обучения 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 / path вы найдете файл KMeans.jar. Давайте запустим этот пример FlinkML.
Этот пример программы запускается с использованием точки по умолчанию и набора данных центроида.