--- library_name: transformers tags: - text-classification - nlp - automotive - nhtsa - bert datasets: - vic35get/nhtsa_complaints_dataset language: en license: apache-2.0 metrics: - accuracy - f1 - precision - recall base_model: - google-bert/bert-base-uncased pipeline_tag: text-classification --- # 🚗 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** | |---------------|-------------| | Treinamento | 8.357 | | Validação | 2.090 | | Teste | 2.090 | ## ⚙️ Hiperparâmetros do Treinamento | Parâmetro | Valor | |-------------------------|------------------------------------| | **Modelo base** | `bert-base-uncased` | | **Batch size** | 4 | | **Taxa de aprendizado** | 1e-5 | | **Épocas** | 30 (com early stopping de 3 épocas sem melhora) | | **Otimizador** | AdamW | ## 📊 Desempenho do Modelo ### 🔍 Conjunto de Validação | Métrica | Valor | |-----------|--------| | **Acurácia** | 86.40% | | **F1-Score** | 85.78% | | **Precisão** | 85.96% | | **Recall** | 86.40% | ### 🔍 Conjunto de Teste | Métrica | Valor | |-----------|--------| | **Acurácia** | 69.94% | | **F1-Score** | 75.69% | | **Precisão** | 87.96% | | **Recall** | 69.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))