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