Apache Flink - Apprendimento automatico
La libreria di Machine Learning di Apache Flink si chiama FlinkML. Poiché l'utilizzo dell'apprendimento automatico è aumentato in modo esponenziale negli ultimi 5 anni, la comunità di Flink ha deciso di aggiungere questo APO di apprendimento automatico anche nel suo ecosistema. L'elenco dei contributori e degli algoritmi sta aumentando in FlinkML. Questa API non fa ancora parte della distribuzione binaria.
Ecco un esempio di regressione lineare utilizzando 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)
Dentro flink-1.7.1/examples/batch/percorso, troverai il file KMeans.jar. Eseguiamo questo esempio FlinkML di esempio.
Questo programma di esempio viene eseguito utilizzando il punto predefinito e il set di dati del centroide.
./bin/flink run examples/batch/KMeans.jar --output Print