Views
No views yet
1# Instalar dependencias
2pip install -r requirements.txt
3
4# O desde el repositorio
5pip install torch numpy pandas scikit-learn matplotlib seaborn tqdm scipy huggingface-hub transformers1import torch
2from pals_irt import PALSIRTModelForHF
3
4# Cargar modelo desde Hugging Face Hub
5model_wrapper = PALSIRTModelForHF.from_pretrained("ronsuez/pals-enhanced-irt-v1")
6model = model_wrapper.model
7
8# Preparar datos de ejemplo
9item_features = torch.randn(1, 12) # Características del ítem
10student_features = torch.randn(1, 11) # Características del estudiante
11comp_weights = torch.tensor([[0.3, 0.3, 0.2, 0.2]]) # Pesos BERTIN
12
13# Predecir probabilidad de respuesta correcta
14with torch.no_grad():
15 prob, difficulty, abilities, discriminations = model(
16 item_features,
17 student_features,
18 comp_weights=comp_weights
19 )
20
21print(f"Probabilidad de respuesta correcta: {prob.item():.3f}")
22print(f"Dificultad del ítem: {difficulty.item():.3f}")
23print(f"Habilidades del estudiante: {abilities.squeeze().tolist()}")1# Importar el sistema de calibración completo
2from pals_calibration.models.multidimensional_irt import MultidimensionalIRTModel
3from pals_calibration.training.trainer_multidim import MultidimTrainer
4from pals_calibration.data.dataset import PALSDataset
5from pals_calibration.evaluation.visualizer import TrainingVisualizer
6
7# Cargar datos
8dataset = PALSDataset.from_csv("responses.csv", "questions.csv", "students.csv")
9
10# Crear y entrenar modelo
11model = MultidimensionalIRTModel(
12 n_item_features=12,
13 n_student_features=11,
14 hidden_dim=64
15)
16
17trainer = MultidimTrainer(
18 model=model,
19 train_dataset=dataset.train,
20 val_dataset=dataset.val,
21 config=trainer_config
22)
23
24# Entrenar
25trainer.train()
26
27# Visualizar resultados
28visualizer = TrainingVisualizer()
29visualizer.plot_training_curves(trainer.history)
30visualizer.plot_competency_interactions(model.competency_interaction)1# Entrenar modelo multidimensional
2python -m scripts.training.train_multidim --config config.yaml
3
4# Calibrar banco de preguntas
5python -m scripts.calibration.calibrate_questions --data_path data/ --output calibration_results/
6
7# Ejecutar evaluación completa
8python -m scripts.evaluation.evaluate --model_path experiments/best_model.pth1# Calibrar un banco de ítems
2import numpy as np
3
4# Generar características sintéticas para demostración
5n_items = 100
6item_features_batch = torch.randn(n_items, 12)
7student_features_batch = torch.randn(1000, 11)
8
9# Pesos BERTIN por ítem (distribución realista)
10bertin_weights = torch.rand(n_items, 4)
11bertin_weights = bertin_weights / bertin_weights.sum(dim=1, keepdim=True)
12
13calibrated_difficulties = []
14
15with torch.no_grad():
16 for i in range(n_items):
17 # Expandir características del ítem para todos los estudiantes
18 item_feat_expanded = item_features_batch[i:i+1].expand(1000, -1)
19 weights_expanded = bertin_weights[i:i+1].expand(1000, -1)
20
21 # Calcular parámetros
22 _, difficulties, _, _ = model(
23 item_feat_expanded,
24 student_features_batch,
25 comp_weights=weights_expanded
26 )
27
28 calibrated_difficulties.append(difficulties.mean().item())
29
30print(f"Rango de dificultades calibradas: {min(calibrated_difficulties):.3f} a {max(calibrated_difficulties):.3f}")/
├── config.json # Configuración del modelo
├── pytorch_model.bin # Pesos del modelo PyTorch
├── requirements.txt # Dependencias de Python
├── README.md # Esta documentación
├── scalers.pkl # Escaladores para normalización
├── model_metadata.json # Metadatos adicionales
├── pals_calibration/ # Paquete completo de calibración
│ ├── __init__.py
│ ├── config.py # Configuración del sistema
│ ├── models/ # Modelos IRT
│ │ ├── base.py # Modelo base
│ │ ├── simple_irt.py # IRT unidimensional
│ │ └── multidimensional_irt.py # IRT multidimensional
│ ├── training/ # Entrenadores
│ │ ├── trainer_simple.py # Entrenador simple
│ │ └── trainer_multidim.py # Entrenador multidimensional
│ ├── data/ # Manejo de datos
│ │ └── dataset.py # Datasets de PALS
│ ├── evaluation/ # Evaluación y visualización
│ │ └── visualizer.py # Visualizador de resultados
│ └── inference/ # Inferencia y predicción
└── scripts/ # Scripts de entrenamiento
├── training/ # Scripts de entrenamiento
├── calibration/ # Scripts de calibración
├── evaluation/ # Scripts de evaluación
└── end_to_end/ # Scripts end-to-end1@misc{pals-enhanced-irt-2024,
2 title={PALS Simplified Enhanced IRT Model},
3 author={PALS Team},
4 year={2024},
5 howpublished={\url{https://huggingface.co/ronsuez/pals-enhanced-irt-v1}},
6 note={Multidimensional IRT model for mathematics assessment}
7}