thf-thiago's picture
Upload folder using huggingface_hub
34d3e93 verified
|
Raw
History Blame Contribute Delete
2.88 kB
---
license: mit
library_name: fastai
pipeline_tag: image-classification
tags:
- fastai
- timm
- convnext
- image-classification
- hierarchical-classification
- e-commerce
- fashion
metrics:
- accuracy
---
# Classificador hierárquico de produtos de e-commerce (flat + taxonomia)
Classificador de imagens de produtos de moda em **três níveis de taxonomia**
(`masterCategory → subCategory → articleType`): ConvNeXt-Tiny com fine-tuning
(fastai + timm) no dataset [Fashion Product Images](https://www.kaggle.com/datasets/paramaggarwal/fashion-product-images-small)
(~44 mil produtos de um catálogo real).
Esta é a variante **flat**, vencedora da comparação controlada flat × multi-head:
prevê apenas o nível mais fino (`articleType`) e deriva os níveis superiores
pela taxonomia (`taxonomy.json`), o que garante **100% de consistência
hierárquica por construção**.
| Nível | Acurácia (validação) |
|---|---|
| masterCategory | 99,6% |
| subCategory | 97,2% |
| articleType | 90,1% |
Validação estratificada por `articleType` (20%, seed 42), 224 px, ~3 h de
fine-tuning em uma Tesla T4.
## Arquivos
- `export_flat.pkl` — pipeline fastai completo (transforms + vocab + pesos),
carregável com `fastai.learner.load_learner` (CPU basta).
- `taxonomy.json` — mapeamento hierárquico usado para derivar os níveis
superiores na inferência.
## Uso
```python
from huggingface_hub import hf_hub_download
from hierclf.inference import HierarchicalPredictor # pacote do repo GitHub
pkl = hf_hub_download("thf-thiago/hierarchical-product-classifier", "export_flat.pkl")
tax = hf_hub_download("thf-thiago/hierarchical-product-classifier", "taxonomy.json")
predictor = HierarchicalPredictor.from_run(Path(pkl).parent)
print(predictor.predict("foto_do_produto.jpg"))
```
Código completo, desenho experimental, testes e análise de erros:
**[github.com/tf-ferreira/hierarchical-product-classifier](https://github.com/tf-ferreira/hierarchical-product-classifier)**.
## Uso pretendido e limitações
Uso pretendido: sugestão de categoria no cadastro de produtos
(human-in-the-loop), triagem de produtos possivelmente mal categorizados,
apoio a matching entre catálogos, fins educacionais/portfólio.
**Não** use para: decisão automática final sem revisão humana, fotos de
usuário "in the wild" (o treino é 100% foto de estúdio/catálogo — o domain
gap é real), domínios fora de moda/vestuário, ou qualquer inferência sobre
pessoas nas imagens.
Limitações conhecidas (detalhadas no
[MODEL_CARD.md](https://github.com/tf-ferreira/hierarchical-product-classifier/blob/main/MODEL_CARD.md)
do repositório): taxonomia congelada do catálogo de origem; classes com <20
exemplos removidas do escopo; vieses de sortimento/fotografia de um único
e-commerce; imagens em resolução reduzida (versão "small" do dataset).