标签: flinkml

Flink SVM 90%错误分类

我尝试用flink-ml svm实现做一些二进制分类.当我评估分类时,我在训练数据集上得到了大约85%的错误率.我绘制了3D数据,看起来你可以用超平面很好地分离数据.

当我试图从svm中获取权重向量时,我只看到了获取权重向量而没有截取超平面的选项​​.所以只是超平面通过(0,0,0).

我没有任何线索,错误可能是什么,并欣赏每一个线索.

val env = ExecutionEnvironment.getExecutionEnvironment
val input: DataSet[(Int, Int, Boolean, Double, Double, Double)] = env.readCsvFile(filepathTraining, ignoreFirstLine = true, fieldDelimiter = ";")


val inputLV = input.map(
  t => { LabeledVector({if(t._3) 1.0 else -1.0}, DenseVector(Array(t._4, t._5, t._6)))}
)


val trainTestDataSet = Splitter.trainTestSplit(inputLV, 0.8, precise = true, seed = 100)
val trainLV = trainTestDataSet.training
val testLV = trainTestDataSet.testing

val svm = SVM()

svm.fit(trainLV)

val testVD = testLV.map(lv => (lv.vector, lv.label))
val evalSet = svm.evaluate(testVD)

// groups the data in false …
Run Code Online (Sandbox Code Playgroud)

scala svm apache-flink flinkml

7
推荐指数
1
解决办法
280
查看次数

FlinkML 的现状如何?

最近很少看到关于 FlinkML 的讨论——它是死了还是死了?

最近有哪些有趣的现场使用示例?

apache-flink flinkml

6
推荐指数
1
解决办法
1307
查看次数

ALS的OutOfBoundsException - Flink MLlib

我正在为电影做一个推荐系统,使用这里提供的MovieLens数据集:http: //grouplens.org/datasets/movielens/

为了计算这个推荐系统,我在scala中使用了Flink的ML库,特别是ALS算法(org.apache.flink.ml.recommendation.ALS).

我首先将电影的评级映射为a DataSet[(Int, Int, Double)]然后创建a trainingSet和a testSet(参见下面的代码).

我的问题是当我使用ALS.fit整个数据集的函数(所有评级)时没有错误,但是如果我只删除一个评级,则fit函数不再起作用,我不明白为什么.

你有什么想法?:)

使用的代码:

Rating.scala

case class Rating(userId: Int, movieId: Int, rating: Double)
Run Code Online (Sandbox Code Playgroud)

PreProcessing.scala

object PreProcessing {

def getRatings(env : ExecutionEnvironment, ratingsPath : String): DataSet[Rating] = {
      env.readCsvFile[(Int, Int, Double)](
      ratingsPath, ignoreFirstLine = true,
      includedFields = Array(0,1,2)).map{r => new Rating(r._1, r._2, r._3)}
}
Run Code Online (Sandbox Code Playgroud)

Processing.scala

object Processing {
  private val ratingsPath: String = "Path_to_ratings.csv"

  def main(args: Array[String]) {

    val env = ExecutionEnvironment.getExecutionEnvironment

    val ratings: …
Run Code Online (Sandbox Code Playgroud)

scala recommendation-engine indexoutofboundsexception apache-flink flinkml

4
推荐指数
1
解决办法
296
查看次数

运行使用maven构建的jar时,FlinkMLTools NoClassDef

我正在使用Apache Flink开发推荐系统.当我在IntelliJ中测试它时,实现正在运行,但我现在想要进入集群.我还构建了一个jar文件并在本地测试它,看看是否一切正常但我遇到了问题.

java.lang.NoClassDefFoundError:org/apache/flink/ml/common/FlinkMLTools $

我们可以看到,FlinkMLTools在运行jar时没有找到我的代码中使用的类.我使用Maven 3.3.3构建了这个jar,mvn clean install我正在使用Flink的0.9.0版本.

第一道

事实是我的全球项目包含其他项目(这个推荐人是子项目之一).这样,我必须mvn clean install在正确的项目的文件夹中启动,否则Maven总是构建一个其他项目的jar(我不明白为什么).所以我想知道是否有办法明确地说maven来构建一个全球项目的特定项目.实际上,也许路径FlinkMLTools包含在pom.xml全球项目文件中的链接中.

还有其他想法吗?

jar noclassdeffounderror maven apache-flink flinkml

4
推荐指数
1
解决办法
254
查看次数

从FlinkML多元线性回归中提取权重

我正在为Flink运行示例多元线性回归(0.10-SNAPSHOT).我无法弄清楚如何提取权重(例如斜率和截距,beta0-beta1,你想要称之为什么).我不是斯卡拉的超级经验,这可能是我的问题的一半.

感谢任何人给予的任何帮助.

object Job {
 def main(args: Array[String]) {
    // set up the execution environment
    val env = ExecutionEnvironment.getExecutionEnvironment

    val survival = env.readCsvFile[(String, String, String, String)]("/home/danger/IdeaProjects/quickstart/docs/haberman.data")

    val survivalLV = survival
      .map{tuple =>
      val list = tuple.productIterator.toList
      val numList = list.map(_.asInstanceOf[String].toDouble)
      LabeledVector(numList(3), DenseVector(numList.take(3).toArray))
    }

    val mlr = MultipleLinearRegression()
      .setStepsize(1.0)
      .setIterations(100)
      .setConvergenceThreshold(0.001)

    mlr.fit(survivalLV) 
    println(mlr.toString())     // This doesn't do anything productive...
    println(mlr.weightsOption)  // Neither does this.

  }
}
Run Code Online (Sandbox Code Playgroud)

scala machine-learning linear-regression apache-flink flinkml

3
推荐指数
1
解决办法
244
查看次数