簡體   English   中英

Java Spark MLlib:ML 庫中的邏輯回歸存在錯誤“ERROR OWLQN:失敗:重置歷史記錄。breeze.optimize:NaNHistory:”

[英]Java Spark MLlib: There is an error "ERROR OWLQN: Failure! Resetting history: breeze.optimize.NaNHistory:" for Logistic Regression in ml library

我只是嘗試使用 Apache Spark ml 庫進行邏輯回歸,但每當我嘗試時,都會出現一條錯誤消息,例如

“錯誤 OWLQN:失敗:重置歷史。breeze.optimize:NaNHistory:”

邏輯回歸的數據集示例如下:

+-----+---------+---------+---------+--------+-------------+
|state|dayOfWeek|hourOfDay|minOfHour|secOfMin|     features|
+-----+---------+---------+---------+--------+-------------+
|  1.0|      7.0|      0.0|      0.0|     0.0|(4,[0],[7.0])|

邏輯回歸的代碼如下:

//Data Set
StructType schema = new StructType(
new StructField[]{
    new StructField("state", DataTypes.DoubleType, false, Metadata.empty()),
    new StructField("dayOfWeek", DataTypes.DoubleType, false, Metadata.empty()),
    new StructField("hourOfDay", DataTypes.DoubleType, false, Metadata.empty()),
    new StructField("minOfHour", DataTypes.DoubleType, false, Metadata.empty()),
    new StructField("secOfMin", DataTypes.DoubleType, false, Metadata.empty())
});
List<Row> dataFromRDD = bucketsForMLs.map(p -> {
    return RowFactory.create(p.label(), p.features().apply(0), p.features().apply(1), p.features().apply(2), p.features().apply(3));
}).collect();

Dataset<Row> stateDF = sparkSession.createDataFrame(dataFromRDD, schema);
String[] featureCols = new String[]{"dayOfWeek", "hourOfDay", "minOfHour", "secOfMin"};
VectorAssembler vectorAssembler = new VectorAssembler().setInputCols(featureCols).setOutputCol("features");
Dataset<Row> stateDFWithFeatures = vectorAssembler.transform(stateDF);

StringIndexer labelIndexer = new StringIndexer().setInputCol("state").setOutputCol("label");
Dataset<Row> stateDFWithLabelAndFeatures = labelIndexer.fit(stateDFWithFeatures).transform(stateDFWithFeatures);

MLRExecutionForDF mlrExe = new MLRExecutionForDF(javaSparkContext);
mlrExe.execute(stateDFWithLabelAndFeatures);

// Logistic Regression part
LogisticRegressionModel lrModel = new LogisticRegression().setMaxIter(maxItr).setRegParam(regParam).setElasticNetParam(elasticNetParam)  
// This part would occur error
.fit(stateDFWithLabelAndFeatures);

我剛遇到同樣的錯誤。 它來自 Spark 剛剛導入的breeze ScalaNLP 包。 它說無法生產有關衍生產品的某些信息。

我不確定這到底是什么意思,但在我的數據集中,我可以爭辯說,我使用的數據越少,拋出錯誤的頻率就越高。 這意味着要訓練的類缺少的功能部分越大,錯誤發生的頻率就越高。 我認為這與由於缺少類信息而無法正確優化有關。

盡管如此,該錯誤似乎並沒有阻止代碼運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM