Principio y aplicación de la regresión logística (regresión logística)

Tabla de contenido

Capítulo 1: Escenarios de aplicación de la regresión logística

Capítulo 2: Principios de la regresión logística

1. Entrada

2. Función sigmoidea

3. Función de pérdida

4. Optimización de la pérdida

Utilice descenso de gradiente:

Capítulo 3 Casos de aplicación de regresión logística

1. Conjunto de datos

 2. Proceso específico

1. Leer datos

 2. Procesamiento de valores faltantes

3. Divida el conjunto de datos

4.Estandarización

5. Proceso predictivo

6. Evaluación del modelo

7. Visualización de resultados

Capítulo 4 Algoritmo de evaluación de clasificación

 1. Método de evaluación de clasificación------tasa de precisión y tasa de recuperación

Exactitud:

Tasa de recuperación:

Puntuación F1

2. Método de evaluación de clasificación------Curva ROC e índice AUC


Capítulo 1: Escenarios de aplicación de la regresión logística

  • tasa de clics en anuncios
  • ¿Es spam?
  • ¿Estás enfermo?
  • fraude financiero
  • cuenta falsa

Mirando los ejemplos anteriores, podemos encontrar características, es decir, todos pertenecen al juicio entre dos categorías. La regresión logística es una herramienta poderosa para resolver problemas de clasificación binaria.

Nota: Aunque la regresión logística tiene la palabra regresión en su nombre, no es un algoritmo de regresión, sino un algoritmo de clasificación.

Capítulo 2: Principios de la regresión logística

1. Entrada

Este es el resultado del resultado de la regresión lineal, que generalmente podemos escribir en forma matricial. como sigue:

Después de representar los pesos y sesgos mediante matrices, la fórmula anterior se puede escribir de la siguiente manera:

 Importante: La entrada a la regresión logística es el resultado de una regresión lineal.

2. Función sigmoidea

La imagen es:

Observe la imagen, el rango de valores de la variable independiente es (-∞, +∞) y el rango de valores de la variable dependiente es (0,1), lo que significa que no importa cuánto sea el valor de la variable independiente, se puede asignar a (0,1) mediante la función sigmoidea )entre.

Resumen: la función sigmoide asignará los resultados de la regresión lineal a [0,1]. Suponiendo que 0,5 es el umbral, el valor predeterminado será 0 si es menor que 0,5 y 1 si es mayor que 0,5, de modo que puede ser clasificado 

Supuesto: La función de predicción es:

en

 El significado de las dos ecuaciones anteriores es expresar primero los resultados de la regresión lineal como una matriz y luego poner los resultados expresados ​​en la función sigmoidea.

Tareas de clasificación:

Comprensión: Tome la probabilidad de lanzar una moneda como ejemplo: si la probabilidad de que salga cara es 0,7, entonces la probabilidad de que salga cruz es 1-0,7 = 0,3

Combinando las dos fórmulas anteriores, obtenemos:

Las características de esta fórmula son que cuando y=0, el entero será igual a la fórmula de la derecha, y cuando y=1, el todo será igual a la fórmula de la izquierda. 

3. Función de pérdida

Para encontrar una buena regresión logística, se deriva la función de pérdida:

①La función de pérdida es una función que refleja el grado de similitud entre el "valor previsto" y el "valor real".

②Cuanto menor sea la función de pérdida, mejor será el modelo

La pérdida de regresión logística se denomina pérdida de probabilidad logarítmica y la fórmula es la siguiente:

Esta fórmula no es desconocida. Tomar el logaritmo de la fórmula integrada anterior es una multiplicación. Después de tomar el logaritmo, se sumará y el exponente también se puede mover al frente.

Suponiendo que las muestras son independientes entre sí, la probabilidad generada por todo el conjunto de muestras es el producto de las probabilidades generadas de todas las muestras, y luego la fórmula es logarítmica y se puede obtener la siguiente fórmula:

 Ejemplo: buscar pérdida

Entre ellos, y representa el resultado real y h (x) o 1-h (x) representa el resultado de la regresión logística (también el valor predicho), que se puede obtener ingresando el valor.

4. Optimización de la pérdida

Utilice descenso de gradiente:

Comprensión: α es la tasa de aprendizaje, que debe especificarse manualmente, y el conjunto junto a α indica la dirección

Busque a lo largo de la dirección descendente de esta función y, finalmente, podrá encontrar el punto más bajo del valle y luego actualizar el valor W.

Uso: Ante tareas con datos de entrenamiento muy grandes se pueden encontrar mejores resultados 

La imagen se representa de la siguiente manera:

Se trata de reducir constantemente su propio valor y finalmente encontrar el punto más bajo.

Capítulo 3 Casos de aplicación de regresión logística

1. Conjunto de datos

Descarga del conjunto de datos original

URL: Índice de /ml/machine-learning-databases/breast-cancer-wisconsin https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/

 

 Después de abrir, descargue los dos marcados en rojo.

 Entre ellos, los datos contienen datos, un total de 699 muestras, un total de 11 columnas de datos, la primera columna es la identificación recuperada por el término, las últimas 9 columnas son las características médicas relacionadas con el tumor y la última columna indica el valor del tipo de tumor. Contiene 16 valores faltantes, marcados con "?".

 Los nombres son la descripción del archivo de datos, principalmente la descripción de cada columna de los datos, y la última columna es la categoría.

 2. Proceso específico

1. Leer datos

Cabe señalar que los datos y la lista están separados, por lo que al leer deben leerse juntos.

import pandas as pd
import numpy as np
# 1.读取数据
path = "breast-cancer-wisconsin.data"
column_name = ['Sample code number', 'Clump Thickness', 'Uniformity of Cell Size', 'Uniformity of Cell Shape',
                   'Marginal Adhesion', 'Single Epithelial Cell Size', 'Bare Nuclei', 'Bland Chromatin',
                   'Normal Nucleoli', 'Mitoses', 'Class']

data = pd.read_csv(path, names=column_name)
# print(data)

 2. Procesamiento de valores faltantes

# 2、缺失值处理
# 1)替换-》np.nan
data = data.replace(to_replace="?", value=np.nan)
# 2)删除缺失样本
data.dropna(inplace=True)

3. Divida el conjunto de datos

# 3、划分数据集
from sklearn.model_selection import train_test_split
# 筛选特征值和目标值
x = data.iloc[:, 1:-1]
y = data["Class"]
x_train, x_test, y_train, y_test = train_test_split(x, y)

4.Estandarización

Transforme los datos originales en un rango con una media de 0 y una desviación estándar de 1

# 4、标准化
from sklearn.preprocessing import StandardScaler
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)

5. Proceso predictivo

from sklearn.linear_model import LogisticRegression
# 5、预估器流程
estimator = LogisticRegression()
estimator.fit(x_train, y_train)
# 逻辑回归的模型参数:回归系数和偏置
# estimator.coef_
# estimator.intercept_

6. Evaluación del modelo

# 6、模型评估
# 方法1:直接比对真实值和预测值
y_predict = estimator.predict(x_test)
print("y_predict:\n", y_predict)
print("直接比对真实值和预测值:\n", y_test == y_predict)
# 方法2:计算准确率
score = estimator.score(x_test, y_test)
print("准确率为:\n", score)

7. Visualización de resultados

El código aún no ha terminado, todavía hay un código de evaluación detrás

Capítulo 4 Algoritmo de evaluación de clasificación

 1. Método de evaluación de clasificación------tasa de precisión y tasa de recuperación

A menudo no prestamos atención a la precisión, sino a si los pacientes con cáncer se detectan entre los pacientes con cáncer, por lo que existe una tasa de precisión y una tasa de recuperación.

Bajo la tarea de clasificación, hay cuatro combinaciones diferentes entre el resultado previsto (Condición prevista) y la etiqueta correcta (Condición verdadera), formando una matriz de confusión.

Exactitud:

El resultado previsto es la proporción del resultado real en la muestra positiva, y la situación que se muestra en la matriz de confusión es:

Tasa de recuperación:

La proporción de los resultados previstos en las muestras cuyos resultados reales son ejemplos positivos se muestra en la matriz de confusión de la siguiente manera:

Resumir:

La tasa de precisión es cuántos de los ejemplos positivos de los resultados predichos realmente se predicen correctamente.

La tasa de recuperación es cuántos ejemplos positivos del resultado real se predicen correctamente.

Lo anterior es la tasa de precisión y la tasa de recuperación, ahora introduzca la puntuación F1

Puntuación F1

Refleja la solidez del modelo: si el valor F1 es grande, la tasa de precisión y la tasa de recuperación también lo son.

Ahora use código para lograr precisión, recuperación y puntuación F1

# 查看精确率、召回率、F1-score
from sklearn.metrics import classification_report
report = classification_report(y_test, y_predict, labels=[2, 4], target_names=["良性", "恶性"])
print(report)

 El resultado es:

Antes de presentar la curva ROC y los indicadores AUC, dé un ejemplo de desequilibrio de muestra

¿pensar?

Suponiendo tal situación, si 99 muestras son cancerosas y 1 muestra no es cancerosa, predeciré todos los casos positivos de todos modos (el cáncer es positivo por defecto)

Escriba esta información en la matriz de confusión, de la siguiente manera:

Calcular por separado:

Precisión: 99%

Precisión: 99/(99+1)=99%

Tasa de recuperación: 99/(99+0)=100%

Puntuación F1: 2*99%*100%/99%+100%=99,497487% 

Se puede ver que se trata de un modelo irresponsable, la razón fundamental es que la muestra está desequilibrada, con demasiados ejemplos positivos y muy pocos ejemplos negativos. Presentamos la curva ROC y los indicadores AUC.

2. Método de evaluación de clasificación------Curva ROC e índice AUC

Antes de presentar la curva ROC y los indicadores AUC, es necesario comprender TPR y FPR.

TPR = TP / (TP + FN)

La proporción de clase 1 prevista entre todas las muestras con clase 1 verdadera

FPR = FP / (FP + TN)

La proporción de clase 1 prevista entre todas las muestras con clase 0 verdadera

Método de evaluación de clasificación ------ Curva ROC e índice AUC

 

 La línea azul es la curva ROC y el indicador AUC es el área entre la curva ROC y los ejes vertical y horizontal.

Ahora presenta esta imagen:

El eje horizontal de la curva ROC es FPRate y el eje vertical es TPRate. Cuando los dos son iguales, el significado es: para muestras, independientemente de si la categoría verdadera es 1 o 0, la probabilidad de que el clasificador prediga 1 es igual. En este momento, el AUC es 0,5 (es decir, una suposición aleatoria)

El valor mínimo de AUC es 0,5 y el valor máximo es 1. Cuanto mayor sea el valor, mejor.

AUC = 1, clasificador perfecto. Cuando se utiliza este modelo de predicción, se pueden obtener predicciones perfectas sin importar el umbral establecido. En la mayoría de situaciones de predicción, no existe un clasificador perfecto.

0,5<AUC<1, mejor que adivinar al azar. Este clasificador (modelo) puede tener valor predictivo si el umbral se establece correctamente.

en conclusión:

El AUC final oscila entre [0,5, 1] ​​y cuanto más cerca de 1, mejor.

Implementado mediante código, calcule el área de la curva ROC, es decir, el indicador AUC:

# y_true:每个样本的真实类别,必须为0(反例),1(正例)标记
# 将y_test 转换成 0 1
y_true = np.where(y_test > 3, 1, 0)
from sklearn.metrics import roc_auc_score
print("AUC指标:",roc_auc_score(y_true, y_predict))

Los resultados muestran:

Resumir:

AUC solo se puede utilizar para evaluar dos categorías

AUC es muy adecuado para evaluar el rendimiento del clasificador en desequilibrio de muestras. 

Ahora que conocemos la curva ROC y los indicadores AUC, volvamos al ejemplo de muestras desequilibradas mencionado anteriormente, es decir, a pensar en ese lugar.

TPR:99/99+0=100%

FPR:1/1+0=100%

TPR=FPR

ABC=0,5

Para esta muestra desequilibrada, el indicador AUC es 0,5, lo que indica que el modelo es deficiente.

Nota:

Tenga en cuenta que el contenido anterior proviene del aprendizaje de videos de aprendizaje automático del programador Dark Horse.

El contenido anterior también es la tarea que dejó el profesor del curso de aprendizaje automático. Originalmente estaba en forma de PPT. Creo que está relativamente completo en general, así que lo publiqué en el blog para que yo y otros podamos aprender. de ello en el futuro. 2022.6.16

Supongo que te gusta

Origin blog.csdn.net/qq_39031009/article/details/125305196
Recomendado
Clasificación