Python 2.7 使用LinearRegression时发生断言错误
我试图帮助一位朋友,他试图在信号中使用Python 2.7 使用LinearRegression时发生断言错误,python-2.7,apache-spark,pyspark,linear-regression,Python 2.7,Apache Spark,Pyspark,Linear Regression,我试图帮助一位朋友,他试图在信号中使用线性回归。数据包含20000条记录和两列(时间和脉冲),我正在Databricks的社区中运行它。我的方法非常简单而且有偏见,我知道,我试图添加更多的人工功能,为此我创建了这个简单但有用的函数 def featuresCreator(x, grad, acc): if (grad > 0): return [x ** grad] else: return [x ** grad] + featuresCreator(x, grad
线性回归。数据包含20000条记录和两列(时间和脉冲),我正在Databricks的社区中运行它。我的方法非常简单而且有偏见,我知道,我试图添加更多的人工功能,为此我创建了这个简单但有用的函数
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
只有两列,一列是特性,另一列是标签。当我尝试对数据使用LinearRegression
时,问题就出现了
lr = LinearRegression().setFeaturesCol("features").setLabelCol("label").setMaxIter(200)
lrm = lr.fit(xf)
在这里,程序分解并显示以下异常
java.lang.AssertionError:断言失败:lapack.dppsv返回5
有什么办法解决这个问题吗?还是我做错了什么?这个错误通常意味着你传递了一个不可解的矩阵
所以实际上它和向量的长度无关
检查信息代码:netlib.org/lapack/explore-html/d3/d62/dppsv_8f.html:A的i阶前导小调不是正定的,因此无法完成因式分解,也没有计算出解
这个问题可以使用线性回归的解算器参数来解决
val lf=new LinearRegression().setSolver("l-bfgs")
默认情况下,这是正常的。此错误通常意味着您传递了一个不可解的矩阵。因此,它与向量的长度无关?否。检查信息代码::a的i阶的前导-次方不是正定的,因此无法完成因式分解,而解决方案还没有找到computed@zero323我认为这是你的评论创造了一个有效的答案@我应该结束这个问题吗?我想这些信息可能对其他人有所帮助。你怎么认为?