Concurso de modelado matemático para graduados chinos "Copa Huawei" 2023 (pregunta E) Análisis en profundidad | Código completo de modelado matemático + Análisis completo del proceso de modelado


Insertar descripción de la imagen aquí

Pregunta uno

Modelado de exploración de factores relacionados con el riesgo de expansión del hematoma.

Idea:

De acuerdo con los requisitos de la pregunta, primero es necesario determinar si se ha producido un evento de expansión del hematoma en cada paciente. Por definición, se consideró que se había producido expansión del hematoma si el volumen del hematoma en exámenes posteriores aumentó ≥6 ml o ≥33% en comparación con el examen inicial.
Pasos de juicio específicos:
(1) Extraiga el número de serie del primer examen de imágenes de cada paciente al ingresar de la Tabla 1;

(2) Encuentre el momento correspondiente a la primera inspección en el Apéndice 1 según el número de serie;

(3) Calcule el intervalo de tiempo desde el inicio hasta el primer examen;

(4) Encuentre el volumen del hematoma en cada momento de seguimiento en la Tabla 2;

(5) Calcule el cambio de volumen del hematoma y el porcentaje de cambio entre dos exámenes consecutivos en secuencia;

(6) Si la cantidad de cambio es ≥6 ml o el porcentaje de cambio es ≥33%, se registra como expansión del hematoma y se registra el momento en el que se produce la expansión del hematoma.

3. Utilice modelos de regresión logística, tomando si se produce expansión del hematoma como variable objetivo y antecedentes personales, antecedentes de enfermedades y primeras características de imagen como variables independientes para establecer un modelo de predicción.

Variable objetivo: Y = si se produce expansión del hematoma (1 sí, 0 no)

Variables independientes: X1, X2,…, Xn (antecedentes personales, antecedentes de enfermedades, etc.)

Fórmula de modelado: P(Y=1|X) = 1 / (1+e^-(b0+b1X1+…+bnXn))

4. Utilice el conjunto de entrenamiento para ajustar el modelo de regresión logística.

(1) Organizar la historia personal, la historia de la enfermedad y las primeras características de imagen del conjunto de entrenamiento en variables independientes X

(2) Utilice la marca de expansión del hematoma (1 o 0) del conjunto de entrenamiento como variable objetivo Y

(3) Introduzca la variable independiente X y la variable objetivo Y en el modelo de regresión logística para su ajuste.

(4) Utilice la estimación de máxima verosimilitud para obtener coeficientes variables b0, b1,…, bn

(5) Obtenga el modelo ajustado:

P(Y=1|X) = 1 / (1+e^-(b0+b1X1+…+bnXn))

5. Utilice el modelo ajustado para predecir el conjunto de prueba.

(1) Realice la misma ingeniería de características en los datos del conjunto de prueba y extraiga la variable independiente X

(2) Sustituya la variable independiente X del conjunto de prueba en el modelo obtenido anteriormente

(3) Calcule la probabilidad de expansión del hematoma P (Y = 1 | X) de cada muestra

(4) Si P (Y = 1 | X) ≥ 0,5, se predice que la muestra tiene expansión del hematoma.

(5) Calcule los indicadores de evaluación del modelo en el conjunto de prueba, como AUC, etc.

(6) Analizar la correlación entre variables y la expansión del hematoma en función del tamaño de los coeficientes variables.

import pandas as pd
from sklearn.linear_model import LogisticRegression

# 读取表1和表2中的数据
table1 = pd.read_excel('表1.xlsx') 
table2 = pd.read_excel('表2.xlsx')

# 将表1和表2进行合并
data = pd.merge(table1, table2, on='ID')

# 提取需要的特征
features = ['age', 'gender', 'history', ...] 

# 获得每个患者的首次影像时间和血肿体积
first_scan = data.groupby('ID')['time'].min()
first_volume = data[data['time'] == first_scan]['HM_volume']  

Los pasos principales del código incluyen:

Leer y fusionar tablas
Ingeniería de funciones
Etiquetar variables objetivo
Dividir el conjunto de entrenamiento y el conjunto de pruebas
Entrenamiento y predicción del modelo
Resultados de salida
Aquí usamos xgboost para entrenar el modelo:

Los pasos principales son:

Importe xgboost
y establezca los parámetros de xgboost:
eta: tasa de aprendizaje
profundidad máxima: profundidad máxima del árbol
objetivo: regresión logística binaria
eval_metric: establezca el índice de evaluación en AUC
Convierta los datos de entrenamiento al formato DMatrix
Utilice xgboost para entrenar el modelo
Convierta los datos de prueba al formato DMatrix
Utilice el modelo entrenado para predecir
los resultados de salida.
XGBoost es una biblioteca de modelos de árbol popular y eficiente que puede extraer relaciones de características complejas de datos.

En comparación con la regresión logística, XGBoost puede manejar varios tipos de funciones y también es conveniente para ajustar parámetros y optimizar el modelo.

Pregunta 2

Modele la aparición y progresión del edema perihematoma y explore la relación entre la intervención terapéutica y la progresión del edema.

Para construir un modelo de volumen de edema que cambia con el tiempo
, puede utilizar el método de ajuste de curvas, utilizando el tiempo como variable independiente y el volumen de edema como variable objetivo, para ajustar un modelo de curva de volumen de edema que cambia con el tiempo:

VED = f (t) V_{ED} = f(t)VED _=f ( t )

Entre ellos, VED V_{ED}VED _representa el volumen del edema, ttt representa el tiempo.

Puede probar diferentes métodos de ajuste de curvas, como regresión lineal, regresión polinómica, regresión ponderada local, etc.

Calcule el residual entre el valor real del paciente y la curva ajustada
para la i-ésima muestra:

ri = VED i − f ( ti ) r_i = V_{ED_i} - f(t_i)ryo=VED _yof ( tyo)

Entre ellos, VED i V_{ED_i}VED _yoes el verdadero volumen de edema de la i-ésima muestra, f (ti) f(t_i)f ( tyo) es el valor de ajuste en el momento correspondiente.

Divida los subgrupos de pacientes y ajuste las curvas de volumen del edema de cada subgrupo. Puede
utilizar un algoritmo de agrupamiento como K-medias para agrupar a los pacientes y luego ajustar una curva separada para cada grupo.

Para analizar el impacto de diferentes tratamientos en la evolución del edema,
se pueden utilizar métodos de tratamiento como características de categoría, se pueden construir diferentes modelos de curvas y luego se pueden comparar los efectos del modelo.

Las diferencias en los cambios en el volumen del edema en diferentes grupos de tratamiento también se pueden comparar mediante métodos estadísticos (como la prueba t).

Analice la relación entre los tres.
Se pueden utilizar métodos estadísticos como el análisis de correlación para explorar la relación entre el volumen del hematoma, el volumen del edema y el tratamiento.

También puede crear un modelo de predicción que incluya las tres como características y descubrir la correlación entre las tres analizando coeficientes.
Específicamente , el método de análisis de correlación
(1) calcula la representación 0/1 del volumen del hematoma, el volumen del edema y varias modalidades de tratamiento para cada muestra.

(2) Utilice el coeficiente de correlación de Pearson para calcular la correlación lineal entre el volumen del hematoma y el volumen del edema.

(3) Utilice el coeficiente de correlación de rangos de Spearman para calcular la correlación de rangos entre el volumen del hematoma y cada método de tratamiento.

(4) Utilice el coeficiente de correlación de rangos de Spearman para calcular la correlación de rangos entre el volumen del edema y cada método de tratamiento.

(5) Compare los tamaños de diferentes coeficientes y analice el grado de correlación entre los tres.

El método de modelado
(1) utiliza el volumen del hematoma y el volumen del edema como características continuas y los métodos de tratamiento como características de clasificación.

(2) Construya un modelo de regresión con el volumen del edema como variable objetivo y el volumen del hematoma y el tratamiento como variables independientes.

(3) Entrenar el modelo y obtener los coeficientes de cada variable.

(4) Compare los coeficientes de cada categoría de tratamiento para ver su impacto en el volumen del edema.

(5) Seleccionar factores de influencia clave mediante pruebas de significancia de variables

(6) Analizar el desempeño general del modelo y evaluar la capacidad explicativa de cada variable.

import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.cluster import KMeans

# 读取数据
data = pd.read_excel('table2.xlsx') 

# 特征工程:提取时间和水肿体积
X = data[['time']]  
y = data[['ED_volume']]

# 构建线性回归模型
lr = LinearRegression()

# 训练模型
lr.fit(X, y)

# 获取拟合的系数
print('模型Slope:', lr.coef_)  
print('模型Intercept:', lr.intercept_)

# 预测水肿体积
y_pred = lr.predict(X) 

Pregunta 3

Predicción del pronóstico y exploración de factores clave en pacientes con accidente cerebrovascular hemorrágico
1. Predecir el pronóstico basándose en los primeros resultados de las imágenes
. Utilice un modelo de regresión, con la puntuación mRS de 90 días como variable objetivo, y los antecedentes personales, los antecedentes de la enfermedad y las primeras características de las imágenes. como variables independientes:

metro RS = w 0 + w 1 x 1 + . . . + wnxn mRS = w_0 + w_1x_1 + ... + w_nx_nmRS _=w0+w1X1+...+wnorteXnorte

Entre ellos, mRS mRSm RS es la puntuación de pronóstico,xi x_iXyoPara cada característica, wi w_iwyoes el coeficiente de peso correspondiente.

Puede probar la regresión lineal, la regresión LASSO y otros algoritmos.

2. Predecir el pronóstico en función de todos los resultados de las imágenes.
Como se indicó anteriormente, no solo utilice la primera imagen, sino que también combine las características de la imagen en puntos temporales posteriores para construir un modelo de regresión para la predicción.

3. Analice los factores de influencia clave
analizando el peso de cada variable wi w_iwyo, determine el par de m RS mRSm Características RS con mayor impacto.
Utilice pruebas estadísticas para analizar los efectos de diferentes características enm RS mRSImpacto significativo de m RS .
Utilice métodos de selección de funciones (como RFE) para seleccionar funciones clave.
Después de eliminar características irrelevantes, observe los cambios en las puntuaciones del modelo.
Específicamente,
1) Para la selección de algoritmos de modelado,
puede probar la regresión lineal, la regresión LASSO, GBDT y otros algoritmos
para comparar los errores y las condiciones de sobreajuste de diferentes algoritmos, seleccionar el mejor algoritmo
para ajustar los parámetros y optimizar el modelo, y mejorar el precisión
2) Características
Procesamiento de ingeniería de valores faltantes: eliminación/relleno
de codificación características categóricas:
estandarización de codificación one-hot características continuas: eliminación de media y normalización de varianza
extracción de características de series de tiempo: tendencia, periodicidad, etc.
Reducción de dimensionalidad usando PCA y otros métodos
3 ) Evaluación del modelo y
división del conjunto de entrenamiento,
validación cruzada múltiple del
, cálculo de RMSE, R2, MAE y otros indicadores de evaluación
, dibujo de la curva de aprendizaje y verificación del problema de sobreajuste
4) Análisis de factores clave, calcular
la influencia de las características, ordenar y filtrar
agregando/eliminando características, comparación
Usar pruebas estadísticas (prueba t, etc.) para determinar la importancia de los
Usar métodos de regularización para seleccionar características y analizar automáticamente
los efectos de las características en diferentes subgrupos.

4. Hacer sugerencias
sobre las características que tienen un impacto significativo, analizar la importancia clínica y dar sugerencias de intervención.
Se realizó un análisis comparativo entre los grupos de pacientes con buen y mal pronóstico para descubrir las diferencias en los factores que influyen.
Código:

# 导入需要的库
import pandas as pd
from sklearn.linear_model import Lasso
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt

# 读取数据
data = pd.read_csv('data.csv')

# 特征工程
X = data[['age', 'gender', 'treatment', 'image_features']]
y = data['mRS']

# 拆分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=2020)

# Lasso回归
model = Lasso()

# 使用网格搜索找到最优参数
from sklearn.model_selection import GridSearchCV
params = {
    
    'alpha': [0.001, 0.01, 0.1, 1]}
gs = GridSearchCV(model, params, scoring='neg_mean_squared_error', cv=5)
gs.fit(X_train, y_train)
print('最优参数:', gs.best_params_)
model = gs.best_estimator_#见完整版

Mira mi respuesta para ver la versión completa de la idea ~

(5 mensajes privados/2 mensajes) ¿Cómo evaluar el Concurso de Investigación en Modelización Matemática 2023? -csdn

Supongo que te gusta

Origin blog.csdn.net/qq_25834913/article/details/133157018
Recomendado
Clasificación