Flink 机器学习

  • Flink 机器学习

    Apache Flink的机器学习库称为FlinkML。由于过去五年来机器学习的使用呈指数增长,因此Flink社区决定将这种机器学习APO也添加到其生态系统中。在FlinkML中,贡献者和算法的列表正在增加。此API尚未成为二进制分发的一部分。
    这是使用FlinkML进行线性回归的示例-
    
    // LabeledVector是带有标签(类值或实值)的特征向量
    val trainingData: DataSet[LabeledVector] = ...
    val testingData: DataSet[Vector] = ...
    
    // 或者,使用分割器将数据集分解为训练和测试数据。
    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)
    
    // 拟合的模型现在可以用来进行预测
    val predictions: DataSet[LabeledVector] = mlr.predict(testingData)
    
    在flink/batch/路径中,您会找到KMeans.jar文件。让我们运行此示例FlinkML示例。该示例程序使用默认点和质心数据集运行。
    
    ./bin/flink run examples/batch/KMeans.jar --output Print
    
    flink