CoolFace
Modelpublic

vic35get/nhtsa_complaints_classifier

sourceHugging Faceapache-2.0updated 2y agoView on Hugging Face
0likes20downloads
Model Card

🚗 Modelo de Classificação de Reclamações de Veículos do NHTSA

Este modelo foi treinado para classificar reclamações de veículos registradas no banco de dados da NHTSA (National Highway Traffic Safety Administration) entre 2014 e 2024. Ele classifica textos em cinco categorias de componentes veiculares:

  • —ELECTRICAL SYSTEM
  • —AIR BAGS
  • —STRUCTURE
  • —SERVICE BRAKES
  • —OTHER (outras reclamações não categorizadas)

📂 Dados e Pré-processamento

Os dados foram extraídos da API oficial da NHTSA e passaram por um pipeline de processamento de linguagem natural (NLP), incluindo:

  • —Limpeza e normalização: remoção de caracteres especiais, conversão para caixa baixa e remoção de duplicatas/nulos.
  • —Balanceamento das classes: ajuste da distribuição de categorias para evitar viés no treinamento.
  • —Tokenização: uso do tokenizer do bert-base-uncased para transformar o texto em tensores compatíveis com o modelo.

📊 Divisão dos Dados:

**Conjunto****Amostras**
Treinamento8.357
Validação2.090
Teste2.090

⚙️ Hiperparâmetros do Treinamento

ParâmetroValor
Modelo basebert-base-uncased
Batch size4
Taxa de aprendizado1e-5
Épocas30 (com early stopping de 3 épocas sem melhora)
OtimizadorAdamW

📊 Desempenho do Modelo

🔍 Conjunto de Validação

MétricaValor
Acurácia86.40%
F1-Score85.78%
Precisão85.96%
Recall86.40%

🔍 Conjunto de Teste

MétricaValor
Acurácia69.94%
F1-Score75.69%
Precisão87.96%
Recall69.94%

A diferença de desempenho entre os conjuntos de validação e teste pode ser explicada pelo desbalanceamento e pela natureza ampla da classe OTHER, que agrupa diferentes tipos de reclamações.

🚀 Como Usar

Para carregar e utilizar o modelo:

python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

# Carregar modelo e tokenizer
model_name = "vic35get/nhtsa_complaints_classifier"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

# Função de inferência
def predict(text):
    inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=512)
    with torch.no_grad():
        outputs = model(**inputs)
    return torch.argmax(outputs.logits, dim=1).item()

# Exemplo de uso
text = "The airbag did not deploy during the accident."
print(predict(text))