Apache Flink - Apprentissage automatique
La bibliothèque d'apprentissage automatique d'Apache Flink s'appelle FlinkML. Étant donné que l'utilisation de l'apprentissage automatique a augmenté de manière exponentielle au cours des 5 dernières années, la communauté Flink a décidé d'ajouter cet APO d'apprentissage automatique à son écosystème. La liste des contributeurs et des algorithmes augmente dans FlinkML. Cette API ne fait pas encore partie de la distribution binaire.
Voici un exemple de régression linéaire utilisant 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)
À l'intérieur flink-1.7.1/examples/batch/chemin, vous trouverez le fichier KMeans.jar. Examinons cet exemple d'exemple FlinkML.
Cet exemple de programme est exécuté en utilisant le point par défaut et le jeu de données centroïde.
./bin/flink run examples/batch/KMeans.jar --output Print