es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Spark 3.2.0 Aplicando un modelo

Estoy usando Spark 3.2 para cargar un modelo para predecir probabilidades, pero parece que no está funcionando correctamente y no puedo averiguar por qué.

Cargar datos en spark

psdf = df.to_pandas_on_spark()
model = mlflow.sklearn.load_model(‘s3://bucket/r1_mlflow/’)
res = model.predict_proba(psdf)

ValueError: Se esperaba una matriz 2D, se obtuvo una matriz 1D en cambio: array=[‘col1’, ‘col2’, ‘col3’, ‘col4’, ‘col5’]
Reorganice sus datos utilizando array.reshape (-1, 1) si sus datos tienen una sola característica o array.reshape (1, -1) si contiene una única muestra.

¿Esto se debe a que psdf es un pyspark.pandas.frame.DataFrame en lugar de un pandas.core.frame.DataFrame, o estoy haciendo algo más mal aquí?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que la forma de los datos es incorrecta. Específicamente, la entrada al método predict_proba espera un arreglo bidimensional, pero está recibiendo un arreglo unidimensional. Esto puede ocurrir si la forma de los datos de entrada no está formateada correctamente.

    Es poco probable que el problema esté relacionado con psdf siendo un pyspark.pandas.frame.DataFrame en lugar de un pandas.core.frame.DataFrame. pyspark.pandas.frame.DataFrame es una subclase de pandas.core.frame.DataFrame que debería comportarse de manera similar en la mayoría de los casos.

    Una posible solución al mensaje de error es reformatear los datos de entrada usando el método reshape de NumPy. Intente el siguiente código para reformatear los datos antes de llamar a predict_proba:

    psdf_2d = psdf.to_numpy().reshape(-1, psdf.shape[1])
    res = model.predict_proba(psdf_2d)
    

    Este código convierte el pyspark.pandas.frame.DataFrame a un arreglo NumPy usando to_numpy(), luego lo reformatea a un arreglo bidimensional con el mismo número de filas y columnas que los datos originales. Finalmente, los datos de entrada reformateados se utilizan como entrada para predict_proba.

Comments are closed.