Convertir un dataframe de Pandas en una matriz y evaluar el modelo de regresión lineal múltiple

Estoy tratando de evaluar un modelo de regresión lineal múltiple. Tengo un conjunto de datos como este:

introduzca la descripción de la imagen aquí

Este conjunto de datos tiene 157 filas * 54 columnas.

Necesito predecir el valor de ground_truth de los artículos. Agregaré mis múltiples artículos de modelo lineal 7 entre en_Amantadine con en_Common .

Tengo código para regresión lineal múltiple:

from sklearn.linear_model import LinearRegression X = [[6, 2], [8, 1], [10, 0], [14, 2], [18, 0]] // need to modify for my problem y = [[7],[9],[13],[17.5], [18]] // need to modify model = LinearRegression() model.fit(X, y) 

Mi problema es que no puedo extraer datos de mi DataFrame para las variables X e y . En mi código X debería ser:

 X = [[4984, 94, 2837, 857, 356, 1678, 29901], [4428, 101, 4245, 906, 477, 2313, 34176], .... ] y = [[3.135999], [2.53356] ....] 

No puedo convertir DataFrame a este tipo de estructura. Cómo puedo hacer esto ?

Cualquier ayuda es apreciada.

Puede convertir el dataframe en una matriz usando el método as_matrix directamente en el objeto de dataframe. Es posible que deba especificar las columnas en las que está interesado X=df[['x1','x2','X3']].as_matrix() donde las diferentes x son los nombres de las columnas.

Para las variables y puede usar los y = df['ground_truth'].values Para obtener una matriz.

Aquí hay un ejemplo con algunos datos generados aleatoriamente:

 import numpy as np #create a 5X5 dataframe df = pd.DataFrame(np.random.random_integers(0, 100, (5, 5)), columns = ['X1','X2','X3','X4','y']) 

llamar a as_matrix() en df devuelve un objeto numpy.ndarray

 X = df[['X1','X2','X3','X4']].as_matrix() 

Los values llamada devuelven un numpy.ndarray de una series pandas

 y =df['y'].values 

Aviso: Es posible que FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead. una advertencia que diga: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead. FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.

Para solucionarlo, utilice los values lugar de as_matrix como se muestra a continuación

 X = df[['X1','X2','X3','X4']].values 
 y = broken_df.ground_truth.values X = broken_df.drop('ground_truth', axis=1).values X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) linreg = LinearRegression() linreg.fit(X_train, y_train) y_pred = linreg.predict(X_test) print(linreg.score(X_test, y_test) print(classification_report(y_test, y_pred))