Aprendizaje de minería de datos: aprendizaje integrado (combinación de clasificador)

Tabla de contenido

1. Idea básica del aprendizaje integrado

2. Estrategia de combinación del modelo de aprendizaje integrado

(1) Método de promedio y método de promedio ponderado (estrategia de combinación del modelo de regresión integrado)

(2) Método de votación por mayoría relativa y método de votación ponderada (estrategia de combinación del modelo de clasificación integrado)

 3.Método de embolsado y bosque aleatorio

(1) Método de embolsado

 (2) bosque aleatorio (bosque aleatorio)

4. Método Boosting y Adaboost

(1) Método de refuerzo

(2) método Adaboost

5. Implementación de Python de aprendizaje integrado


1. Idea básica del aprendizaje integrado

El aprendizaje integrado (combinación de clasificador) consiste en integrar varios modelos de minería de datos (modelo base, clasificador base) para el aprendizaje. Múltiples modelos base aprenden los conjuntos de datos y emiten los resultados respectivamente, y luego el modelo de aprendizaje integrado integra estos resultados a través de un método determinado y finalmente forma el resultado del modelo de aprendizaje integrado.

2. Estrategia de combinación del modelo de aprendizaje integrado

(1) Método de promedio y método de promedio ponderado (estrategia de combinación del modelo de regresión integrado)

Método de promedio simple:

 Método de promedio ponderado:

(En comparación con el método de promedio simple, el parámetro del coeficiente de peso aumenta, lo que es más propenso al sobreajuste)

 En el proceso de uso real, se encuentra que el resultado del método de promedio ponderado a veces no es tan bueno como el promedio simple.

(2) Método de votación por mayoría relativa y método de votación ponderada (estrategia de combinación del modelo de clasificación integrado)

Método de votación por mayoría relativa:

La categoría con más votos es la categoría de salida del modelo de conjunto (si hay varias categorías con los mismos votos más altos, una de estas categorías se selecciona aleatoriamente como salida final).

Método de votación ponderada:

(Es una forma especial del método de votación. En el método de votación ponderada, el poder de voto de diferentes modelos base es diferente aaaaaa)

 3.Método de embolsado y bosque aleatorio

(1) Método de embolsado

El método Bagging es un método de aprendizaje integrado paralelo, y su estructura básica es la siguiente:

 (2) bosque aleatorio (bosque aleatorio)

El bosque aleatorio es una implementación específica del método de embolsado.

Los pasos básicos son los siguientes:

1. Seleccione muestras de entrenamiento del modelo base

2. Modelo base del árbol de decisión de entrenamiento

3. Integre múltiples árboles de decisión

(En el bosque aleatorio, más modelos basados ​​en árboles de decisión pueden obtener mejores resultados de predicción)

4. Método Boosting y Adaboost

(1) Método de refuerzo

El método boosting es un modelo base de entrenamiento en serie, y su estructura básica es la siguiente:

 (En el método de impulso, las muestras de entrenamiento del modelo base están relacionadas con los resultados de predicción del modelo base anterior, y el modelo base actual se enfoca en las muestras incorrectas predichas por el modelo base anterior)

(2) método Adaboost

El método Adaboost (Adaptive Boosting) es una implementación concreta del aprendizaje integrado de Boosting.

Pasos específicos:

1. Inicializar pesos de muestra

2. Modelo base de entrenamiento

3. Calcula el peso del modelo base

4. Actualizar el peso de la muestra

5. Entrenamiento iterativo de múltiples modelos base

6. Combinación de los resultados de predicción del modelo base

5. Implementación de Python de aprendizaje integrado

La biblioteca sklearn proporciona el uso de múltiples modelos de aprendizaje integrados, a los que se puede llamar directamente.

Código de ejemplo (uso de la función de modelo de clasificación de bosque aleatorio):

El código del artículo anterior se usa aquí para modificarlo.Se puede ver que en comparación con el uso de un solo divisor Gaussian Naive Bayesian para el entrenamiento, la precisión del modelo entrenado con Random Forest es mayor.

import numpy as np
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import confusion_matrix
from matplotlib import pyplot as plt
import seaborn as sns
from sklearn.ensemble import RandomForestClassifier

#训练模型函数
def model_fit(x_train,y_train,x_test,y_test):
    model=RandomForestClassifier(n_estimators=50)
    model.fit(x_train,y_train)#对训练集进行拟合
    # print(model.score(x_train,y_train))
    print("accurancy:",model.score(x_test,y_test))
    Y_pred=model.predict(x_test)
    cm=confusion_matrix(Y_pred,y_test)
    return cm

#混淆矩阵可视化
def matplotlib_show(cm):
    plt.figure(dpi=100)#设置窗口大小(分辨率)
    plt.title('Confusion Matrix')

    labels = ['a', 'b', 'c', 'd']
    tick_marks = np.arange(len(labels))
    plt.xticks(tick_marks, labels)
    plt.yticks(tick_marks, labels)
    sns.heatmap(cm, cmap=sns.color_palette("Blues"), annot=True, fmt='d')
    plt.ylabel('real_type')#x坐标为实际类别
    plt.xlabel('pred_type')#y坐标为预测类别
    plt.show()

if __name__ == '__main__':
    cancer = load_breast_cancer()
    x, y = cancer.data, cancer.target
    x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=3)
    cm=model_fit(x_train,y_train,x_test,y_test)
    matplotlib_show(cm)

Ejecución de resultados: (índice de precisión y gráfico de resultados de predicción)

 

Supongo que te gusta

Origin blog.csdn.net/weixin_52135595/article/details/126728049
Recomendado
Clasificación