Downloads · 30 days
0
Tyan1988/SMV
SMV is a machine learning model from Tyan1988. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as mit.
Proyecto que entrena un clasificador SVM + PCA sobre el dataset Fashion-MNIST y lo sirve como API REST con Flask.
Downloads · 30 days
0
Access
Public
Updated May 12, 2026
Repo size
29.3 MB
Likes
0
Public
Click a slice to open those files.
.pkl29.3 MB · 100%
From the Hugging Face model README
Proyecto que entrena un clasificador SVM + PCA sobre el dataset Fashion-MNIST y lo sirve como API REST con Flask.
svm_fashion_flask/
├── train_model.py ← Entrena y guarda los artefactos (.pkl)
├── app.py ← API Flask (endpoint de predicción)
├── test_api.py ← Script de prueba de los endpoints
├── requirements.txt
└── models/ ← Generado automáticamente por train_model.py
├── scaler.pkl
├── pca.pkl
└── svm_model.pkl
# 1. Crear entorno virtual (recomendado)
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 2. Instalar dependencias
pip install -r requirements.txt
python train_model.py
Descarga Fashion-MNIST, aplica PCA, busca hiperparámetros con GridSearchCV y guarda los artefactos en
models/.
Tiempo estimado: 10-30 min según el hardware.
La precisión objetivo es ≥ 90 %.
python app.py
La API queda disponible en http://127.0.0.1:5000.
python test_api.py
GET /healthVerifica que la API y el modelo estén operativos.
{
"status": "ok",
"model_loaded": true,
"message": "API operativa"
}
GET /model/infoMetadatos del modelo cargado.
{
"model_type": "SVC",
"kernel": "rbf",
"C": 50,
"gamma": 0.01,
"classes": ["T-shirt/top", "Trouser", "..."],
"pca_components": 187,
"pca_variance_ratio": 0.9502,
"input_features": 784
}
POST /predictClasifica una imagen.
Body:
{
"pixels": [0, 128, 255, ...] // 784 valores enteros (0-255)
}
Respuesta:
{
"class_id": 7,
"class_name": "Sneaker",
"confidence": 0.9423,
"probabilities": {
"T-shirt/top": 0.01,
"Sneaker": 0.9423,
"..."
},
"inference_ms": 12.4
}
POST /predict/batchClasifica múltiples imágenes en una llamada.
Body:
{
"images": [
[0, 128, 255, ...],
[...]
]
}
Respuesta:
{
"results": [
{"class_id": 7, "class_name": "Sneaker", "confidence": 0.94},
{"class_id": 1, "class_name": "Trouser", "confidence": 0.88}
],
"count": 2,
"inference_ms": 25.1
}
| ID | Nombre |
|---|---|
| 0 | T-shirt/top |
| 1 | Trouser |
| 2 | Pullover |
| 3 | Dress |
| 4 | Coat |
| 5 | Sandal |
| 6 | Shirt |
| 7 | Sneaker |
| 8 | Bag |
| 9 | Ankle boot |
C ∈ {10, 50}, gamma ∈ {0.001, 0.01}, kernel rbf, cv=3.SVC(probability=True) habilita scores de confianza por clase.