Clasificación Regresión logística Ejemplo 1

1. Antecedentes de ejemplo

Supongamos que los tipos de recomendadores se clasifican según [puntuación de recomendación]: recomendación alta, recomendación media, recomendación baja
inserte la descripción de la imagen aquí

2. Objetivos de la misión

Entrene un modelo para predecir la clasificación de [tipo recomendado] según [puntuación recomendada]

3. Implementación del aprendizaje automático

1. Pasos básicos

Realiza todo el proceso:

inserte la descripción de la imagen aquí

1.1 Construcción de modelos

El objetivo de la tarea es lograr la clasificación, y de los datos originales se puede ver que las etiquetas de clasificación son categorías alta, media y baja: por lo tanto, se debe establecer un "modelo de regresión logística de clasificación múltiple" en sklearn
, ya sea es clasificación binaria o regresión logística de clasificación múltiple, en realidad son regresión logística basada en la ecuación de regresión lineal, por lo que el código central para construir el modelo es

# 1. 建立模型:逻辑回归模型
classifier = linear_model.LogisticRegression()

1.2 Modelo de aprendizaje

1) Determinar la función de pérdida: método de estimación de máxima verosimilitud
2) La forma óptima de resolver el índice de cálculo: sklearn tiene por defecto una solución iterativa-aproximada
y clasificador = linear_model.LogisticRegression() Si no hay una descripción especial, el valor predeterminado es cuasi-Newton Método (solucionador predeterminado = "lbfgs")
Si desea cambiar el método de solución iterativa óptima del índice, puede agregar configuraciones de parámetros: solucionador
inserte la descripción de la imagen aquí

# 1. 建立模型:逻辑回归模型+选择损失函数的优化方法
classifier = linear_model.LogisticRegression(solver="sag") # 随机梯度下降法
# 2. 学习模型
classifier.fit(X,Y) 

1.3 Modelo de medición

Los indicadores de medición del modelo de regresión logística de clasificación son: tasa de precisión, tasa de precisión, tasa de recuperación y puntuación F1. El
código central es el siguiente:

# 3. 衡量模型
accurency = classifier.score(X,Y)
PRF = classification_report(Y,Y_predict)

2. Código

from sklearn import linear_model
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import classification_report

# 获取所需数据:'推荐分值', '推荐类型'
datas = pd.read_excel('./datas2.xlsx')
important_features = ['推荐分值', '推荐类型']
datas_1 = datas[important_features]

# 明确实际类别Y为'推荐类型',X为'推荐分值'
Y = datas_1['推荐类型']
X = datas_1.drop('推荐类型',axis=1)


# 1. 建立模型:逻辑回归模型
classifier = linear_model.LogisticRegression()

# 2. 学习模型
classifier.fit(X,Y) 
Y_predict = classifier.predict(X) # 模型分类
labels = classifier.classes_ # 获取分类标签
w = classifier.coef_ # 获取参数 W
b = classifier.intercept_ # 获取偏差b,或称W0

# 3. 衡量模型
accurency = classifier.score(X,Y)
PRF = classification_report(Y,Y_predict)


# 输出模型最优状态下的参数W和b,R²分数
for index,value in enumerate(zip(labels,w)):
    print(f"【{
      
      value[0]}】类别的参数W{
      
      index+1}:",value[1])
print("偏差b,或参数W0:",list(zip(labels,b)))
print("逻辑回归模型的分类【准备率】为:",accurency)
print("逻辑回归模型的精确率、召回率、F1分数为:")
print(PRF)

3. Salida

Como se puede ver en los resultados de salida en la figura siguiente, la exactitud de clasificación, la precisión, la recuperación y las puntuaciones F1 del modelo son todas puntuaciones máximas. ! !
inserte la descripción de la imagen aquí
¡También se puede ver en la comparación entre los resultados de clasificación del modelo y la clasificación real que la clasificación del modelo es la misma que la clasificación real!
inserte la descripción de la imagen aquí

为什么会这么准确呢?

Esto se debe a que el [Tipo recomendado] de los datos originales se clasifica estrictamente de acuerdo con la [Puntuación recomendada] Las reglas de clasificación de los datos originales son las siguientes: Se puede ver que bajo estrictas reglas de clasificación lineal, la regresión logística puede lograr con
inserte la descripción de la imagen aquí
precisión clasificación.

Supongo que te gusta

Origin blog.csdn.net/weixin_50348308/article/details/130848603
Recomendado
Clasificación