¿Tengo que corte y la columna (predicción) de trama de datos pandas con scikit-learn?

qalis:

He dividido mi pandas trama de datos en train_Xy train_ypartes, donde train_Xtiene todas las columnas N, y train_ytiene sólo N-ésima columna, que representa la variable que quiero predecir. Actualmente estoy haciendo:

train_X.drop("N-th column name", axis=1, inplace=True)
model = SomeSklearnModel()
model.fit(train_X, train_y)

¿Tengo que hacerlo "a mano" (es decir, utilizando drop()el train_X), o puedo hacer la tercera línea y scikit-learn "sabrá" qué columna train_yes y lo utilice para el entrenamiento del modelo (sólo para la comprobación de los resultados)?

Chris A:

Debe declarar Xy yexplícitamente al llamar fiten un sklearnestimador. En general, en el momento en que esté listo para dividir los datos en la formación y las pruebas conjuntos, Xdebe incluir modelo cuenta única, por lo que no debe incluir su objetivo y.
Hay muchas maneras de hacerlo, pero aquí un par de formas comunes usando el iris conjunto de datos como un ejemplo:

# Setup
df_iris = pd.DataFrame({'sepal_length': [5.0, 4.8, 5.8, 5.7, 4.5, 6.0, 6.3, 4.8, 5.6, 6.4],
                        'sepal_width': [3.2, 3.4, 2.8, 4.4, 2.3, 3.0, 2.5, 3.4, 3.0, 2.8],
                        'petal_length': [1.2, 1.6, 5.1, 1.5, 1.3, 4.8, 5.0, 1.9, 4.5, 5.6],
                        'petal_width': [0.2, 0.2, 2.4, 0.4, 0.3, 1.8, 1.9, 0.2, 1.5, 2.1],
                        'target': ['setosa', 'setosa', 'virginica', 'setosa', 'setosa','virginica',
                                   'virginica', 'setosa', 'versicolor', 'virginica']})

Si su objetivo yes el "enésimo" la columna de "n", se puede utilizar ilocrebanar:

X = df_iris.iloc[:, :-1]
y = df_iris.iloc[:, -1]

Otra manera sería utilizar popel que ambas gotas y devuelve la columna para la asignación:

X = df_iris.copy()
y = X.pop('target')

O utilizar su propio método con drop:

X = df_iris.drop('target', axis=1)
y = df_iris['target']

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=275942&siteId=1
Recomendado
Clasificación