Saltar al contenido

Modelado de conjuntos con scikit-learn

En esta guía, seguiremos los siguientes pasos:

Paso 1 – Cargando las bibliotecas y módulos necesarios.

Modelado de conjuntos con scikit-learn
Modelado de conjuntos con scikit-learn

Paso 2 – Cargar los datos y realizar comprobaciones de datos básicos.

Paso 3 – Crear arreglos para las características y la variable de respuesta.

Paso 4 – Construir y evaluar un solo algoritmo.

Paso 5 – Construir, predecir y evaluar los diversos modelos de conjuntos.

Las siguientes secciones cubrirán estos pasos.

Paso 1 – Carga de las bibliotecas y módulos requeridos

1234567891011121314# Importar bibliotecas necesariasimportar pandas como pdimport numpy as np # Importar módulos necesariosde sklearn.linear_model import LogisticRegressionde sklearn.model_selection importar train_test_split de sklearn.metrics importar confusion_matrix, classification_reportfrom sklearn. árbol importación DecisionTreeClassifierde sklearn.svm importación SVCde sklearn.ensemble importación VotingClassifierde sklearn importación model_selectionde sklearn.ensemble importación BaggingClassifierde sklearn.ensemble importación RandomForestClassifier

pitón

Paso 2 – Lectura de los datos y realización de comprobaciones de datos básicos

La primera línea de código se lee en los datos como un cuadro de datos de pandas, mientras que la segunda línea imprime la forma – 3116 observaciones de 17 variables. La tercera línea da los primeros 10 registros de los datos. Nótese que este es un problema de clasificación multiclase con 4 clases, o letras, para predecir – A, B, R y P.

1234# Cargar datadf = pd.read_csv($0027letters.csv$0027)print(df.shape)df.head(10)

pitón

Salida:

1234567891011121314(3116, 17) Carta, xbox, ybox, ancho, alto, onpix, xbar, ybar, x2bar, y2bar, xybar, x2ybar, xy2bar, xedge, xedgeycor, yedgexcor... ------- |------ |------ |------- |-------- |------- |------ |------ |------- |------- |------- |-------- |-------- |------- |----------- |------- |----------- || 0 | 0 | B | 4 | 2 | 5 | 4 | 4 | 8 | 7 | 6 | 6 | 7 | 6 | 6 | 2 | 8 | 7 | 10 || 1 | A | 1 | 1 | 3 | 2 | 1 | 8 | 2 | 2 | 2 | 2 | 8 | 2 | 8 | 1 | 6 | 2 | 2 | 7 | 2 | R | 5 | 9 | 5 | 7 | 6 | 11 | 7 | 3 | 7 | 3 | 9 | 2 | 7 | 5 | 11 | 3 | B | 5 | 9 | 7 | 7 | 7 | 10 | 9 | 8 | 4 | 4 | 4 | 6 | 8 | 6 | 6 | 11 | 8 | 7 | 4 | 4 | 3 | 6 | 4 | 4 | 2 | 4 | 14 | 8 | 1 | 11 | 6 | 3 | 0 | 10 | 4 | 8 || 5 | R | 8 | 10 | 8 | 6 | 6 | 7 | 7 | 3 | 5 | 8 | 4 | 8 | 6 | 7 | 7 | 7 | 6 | R | 2 | 6 | 4 | 4 | 3 | 6 | 7 | 5 | 5 | 6 | 5 | 7 | 3 | 7 | 5 | 8 | 8 | 7 | A | 3 | 7 | 5 | 5 | 3 | 12 | 2 | 3 | 2 | 10 | 2 | 9 | 2 | 6 | 3 | 8 | 8 | 8 | 14 | 7 | 8 | 4 | 5 | 10 | 6 | 3 | 12 | 5 | 4 | 4 | 10 | 4 | 8 | 9 | 6 | 10 | 8 | 8 | 8 | 7 | 8 | 5 | 5 | 7 | 6 | 6 | 6 | 3 | 9 | 8 | 9 |

Paso 3 – Creación de arreglos para las características y la variable de respuesta

La primera línea de código crea un objeto de la variable objetivo $0027y$0027. La segunda línea nos da la lista de todas las características, excluyendo la variable objetivo $0027letra$0027.

123# Crear matrices para las características y la variable de respuestay = df[$0027letra$0027].valuesx = df.drop($0027letra$0027, eje=1).values

pitón

Paso 4 – Construir y evaluar un solo algoritmo

El objetivo de la modelación en conjunto es mejorar el rendimiento sobre un modelo individual mediante la combinación de varios modelos. Por lo tanto, estableceremos la línea base de la medida de rendimiento comenzando con un algoritmo. En nuestro caso, construiremos el Algoritmo de Regresión Logística.

La primera línea de código crea el conjunto de entrenamiento y pruebas, con el argumento «test_size» que especifica el porcentaje de datos que se deben mantener en los datos de la prueba. La segunda línea instanciar el algoritmo de Regresión Logística, mientras que la tercera línea encaja el modelo en el conjunto de datos de entrenamiento. La cuarta línea genera predicciones sobre los datos de la prueba, mientras que la quinta a la séptima línea imprime el resultado.

12345678X_train, X_test, y_train, y_test = train_test_split(x, y, test_size =0.3, random_state=10)logreg = LogisticRegression()logreg. fit(X_train, y_train)y_pred = logreg.predict(X_test)print(confusion_matrix(y_test, y_pred))print(classification_report(y_test, y_pred))(216+221+214+219)/(227+244+224+240)

pitón

Salida:

123456789101112131415 [[216 3 1 7] [ 0 221 0 23] [ 2 4 214 4] [ 0 21 0 219]] recuperación de precisión f1-score support A 0.99 0. 95 0.97 227 B 0.89 0.91 0.90 244 P 1.00 0.96 0.97 224 R 0.87 0.91 0.89 240 avg / total 0.93 0.93 0.93 935 0.93048128342246

Vemos que la precisión del modelo único es del 93 por ciento. Ahora construiremos varios modelos de conjunto y veremos si mejora el rendimiento.