O que é o formato de ficheiro ARFF?
Um arquivo .arff é o formato nativo de conjunto de dados para a plataforma de machine learning Weka, desenvolvido pelo Machine Learning Group da Universidade de Waikato. Ele armazena conjuntos de dados rotulados como texto simples com um cabeçalho de esquema estruturado, tornando-o um formato de intercâmbio comum em pesquisas acadêmicas de machine learning.
Um arquivo .arff possui duas seções. O cabeçalho começa com @relation (nomeando o conjunto de dados), seguido por declarações @attribute que definem o nome e o tipo de cada recurso. Os tipos suportados incluem NUMERIC, INTEGER, REAL, STRING, DATE (ISO 8601) e nominal (uma lista explícita de valores entre chaves {}). A seção @data segue com instâncias separadas por vírgulas, uma por linha; valores ausentes são marcados com ?. Linhas que começam com % são comentários.
Uma variante esparsa usa pares {index value} para conjuntos de dados de alta dimensão onde a maioria dos valores é zero - comum em classificação de texto. O tipo de atributo @relational suporta subconjuntos de dados aninhados para aprendizado de múltiplas instâncias.
Apesar de sua idade, o .arff é amplamente suportado além do Weka: o Python o lê via scipy.io.arff.loadarff(), o R o manipula com o pacote foreign e muitos kits de ferramentas de ML o aceitam como formato de intercâmbio. Para metadados mais ricos e pesos por instância, o .xrff baseado em XML do Weka é o sucessor, embora o .arff e o .csv continuem sendo mais comuns na prática.
Segurança e proteção
RISCO: LOWArquivo de dados em texto simples; sem conteúdo executável. Seguro para abrir em qualquer editor de texto. O Weka o processa em uma sandbox JVM.
Detalhes do formato
em resumoProgramas que abrem arquivos ARFF
Detalhes técnicos
especificação profunda| Codificação | Texto simples (ASCII historicamente; UTF-8 no Weka moderno) |
| Estrutura do arquivo | Cabeçalho (declarações @relation + @attribute) seguido pela seção @data |
| Tipos de atributos | NUMERIC, INTEGER, REAL, STRING, DATE, NOMINAL (lista de valores entre chaves), RELATIONAL |
| Token de valor ausente | ? representa qualquer valor ausente na seção @data |
| Sintaxe de comentário | Linhas começando com % são comentários; permitidos em qualquer lugar do arquivo |
| Variante ARFF esparsa | Pares {index value} na seção @data para conjuntos de dados esparsos de alta dimensão |
| Formato de atributo de data | Strings de data/hora ISO 8601 dentro de declarações de atributo DATE |
| Suporte a dados aninhados | O tipo de atributo @relational codifica subconjuntos de dados para aprendizado de múltiplas instâncias |
| Tipo MIME | text/plain (nenhum tipo MIME dedicado registrado) |
| Tamanho de arquivo típico | 1 KB - 500 MB (conjuntos de dados de benchmark comumente entre 1-50 MB) |
| Suporte Python | scipy.io.arff.loadarff() no SciPy; pacote arff independente no PyPI |
| Suporte R | read.arff() no pacote foreign |
| Sucessor baseado em XML | O formato XRFF adiciona pesos de instância e metadados de conjunto de dados mais ricos |
| Plataforma | Multiplataforma: Windows, Linux, macOS |
| Lançado | 1993 (Weka project, University of Waikato) |
| Versão mais recente | ARFF with relational attributes (Weka 3.x, extended ~2005) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | waikato.github.io |
Conversões de ARFF
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos ARFF.
Perguntas frequentes
Como abro um arquivo ARFF?
scipy.io.arff.loadarff() ou o pacote arff.