LinearRegression
を信号に使用しようとしている友人を手助けしようとしていました。データには2万のレコードと2つの列(時間とパルス)が含まれており、Databricksのコミュニティで実行しています。私のアプローチはかなりシンプルで偏っていますが、私はもっと人工的な機能を追加しようとしました。このために、このシンプルで便利な機能を作成しました。LinearRegressionの使用中にアサーションエラーが発生しました
def featuresCreator(x, grad, acc):
if (grad > 0):
return [x ** grad]
else:
return [x ** grad] + featuresCreator(x, grad - acc, acc)
featuresUDF = udf(lambda x, grad, acc: DenseVector(featuresCreator(x, grad, acc)), VectorUDT())
私は機能に電力を供給し、数回と値の範囲内にすることはオーバーフィット回帰に私を助けるだろうと思った、これは私がこれを実行した理由です。
xf = df.select(featuresUDF(col("tiempo"), lit(12), lit(0.1)).alias("features"), col(" pulso").alias("label"))
すべてがDataFrame
のみ2列、ラベルの特徴の一つと他を持っていた大丈夫でした。この問題は、データの上にLinearRegression
を使用しようとすると後で発生します。
lr = LinearRegression().setFeaturesCol("features").setLabelCol("label").setMaxIter(200)
lrm = lr.fit(xf)
ここでは、プログラムが爆発し、以下の例外が示されています。
java.lang.AssertionError: assertion failed: lapack.dppsv returned 5.
これを解決する方法はありますか?または私は何か間違っているのですか?
このエラーは通常、解決できない行列を渡したことを意味します。 – zero323
ベクトルの長さには関係ありませんか? –
いいえINFOコードを確認してください:http://www.netlib.org/lapack/explore-html/d3/d62/dppsv_8f.html:Aの次数iの先頭が ではないので、分解はできませんでした。 が完了し、解決策が計算されていません_ – zero323