spark gbt forest classifier python-2.7 apache-spark pyspark linear-regression

python 2.7 - gbt - Error de aserción durante el uso de LinearRegression



linear regression scala (2)

Este error típicamente significa que pasaste una matriz que no se puede resolver.

Entonces, en realidad no está relacionado con la longitud del vector

Verifique los códigos INFO: netlib.org/lapack/explore-html/d3/d62/dppsv_8f.html: el principal menor de la orden i de A no es definido definitivamente, por lo que la factorización no pudo completarse y la solución no se ha calculado

Intentaba ayudar a un amigo que intenta usar LinearRegression en una señal. Los datos contienen 20,000 registros y solo dos columnas (tiempo y pulso) y lo estoy ejecutando en la Comunidad de Databricks. Mi enfoque es bastante simple y parcial, lo sé, traté de agregar más características artificiales, para esto creé esta función simple pero útil.

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())

Pensé que potenciar la función varias veces y dentro de un rango de valores me ayudaría a sobredimensionar la regresión, esta es la razón por la que ejecuté esto.

xf = df.select(featuresUDF(col("tiempo"), lit(12), lit(0.1)).alias("features"), col(" pulso").alias("label"))

Todo estaba bien, el DataFrame solo tenía 2 columnas, una de características y la otra para la etiqueta. El problema aparece más adelante cuando trato de usar LinearRegression sobre los datos.

lr = LinearRegression().setFeaturesCol("features").setLabelCol("label").setMaxIter(200) lrm = lr.fit(xf)

Aquí el programa explota y muestra la siguiente excepción.

java.lang.AssertionError: assertion failed: lapack.dppsv devolvió 5.

¿Hay alguna forma de resolver esto? ¿O estoy haciendo algo mal?


Este problema se puede resolver usando el parámetro de solución para Regresión lineal.

val lf=new LinearRegression().setSolver("l-bfgs")

por defecto es normal.