Che cos'è il formato di file ARFF?
Un file .arff è il formato di dataset nativo per la piattaforma di machine learning Weka, sviluppata dal Machine Learning Group presso l'University of Waikato. Memorizza dataset etichettati come testo semplice con un'intestazione di schema strutturata, rendendolo un formato di interscambio comune nella ricerca accademica sul machine learning.
Un file .arff ha due sezioni. L'intestazione inizia con @relation (che nomina il dataset), seguita dalle dichiarazioni @attribute che definiscono il nome e il tipo di ogni caratteristica. I tipi supportati includono NUMERIC, INTEGER, REAL, STRING, DATE (ISO 8601) e nominale (un elenco esplicito di valori tra parentesi graffe {}). Segue la sezione @data con le istanze separate da virgole, una per riga; i valori mancanti sono contrassegnati da ?. Le righe che iniziano con % sono commenti.
Una variante sparsa utilizza coppie {index value} per dataset ad alta dimensionalità dove la maggior parte dei valori è zero - comune nella classificazione del testo. Il tipo di attributo @relational supporta sotto-dataset annidati per l'apprendimento multi-istanza.
Nonostante la sua età, .arff è ampiamente supportato oltre Weka: Python lo legge tramite scipy.io.arff.loadarff(), R lo gestisce con il pacchetto foreign e molti toolkit di ML lo accettano come formato di interscambio. Per metadati più ricchi e pesi per istanza, il successore è .xrff basato su XML di Weka, sebbene .arff e .csv rimangano più comuni nella pratica.
Sicurezza e incolumità
RISCHIO: LOWFile di dati in testo semplice; nessun contenuto eseguibile. Sicuro da aprire in qualsiasi editor di testo. Weka lo elabora in una sandbox JVM.
Dettagli del formato
in sintesiProgrammi che aprono file ARFF
Dettagli tecnici
specifiche approfondite| Codifica | Testo semplice (ASCII storicamente; UTF-8 nel moderno Weka) |
| Struttura del file | Intestazione (dichiarazioni @relation + @attribute) seguita dalla sezione @data |
| Tipi di attributo | NUMERIC, INTEGER, REAL, STRING, DATE, NOMINAL (elenco valori tra graffe), RELATIONAL |
| Token valore mancante | ? rappresenta qualsiasi valore mancante nella sezione @data |
| Sintassi dei commenti | Le righe che iniziano con % sono commenti; ammessi ovunque nel file |
| Variante ARFF sparsa | Coppie {index value} nella sezione @data per dataset sparsi ad alta dimensionalità |
| Formato attributo data | Stringhe di data/ora ISO 8601 all'interno delle dichiarazioni degli attributi DATE |
| Supporto dati annidati | Il tipo di attributo @relational codifica sotto-dataset per l'apprendimento multi-istanza |
| Tipo MIME | text/plain (nessun tipo MIME dedicato registrato) |
| Dimensione tipica del file | 1 KB - 500 MB (i dataset di benchmark sono comunemente di 1-50 MB) |
| Supporto Python | scipy.io.arff.loadarff() in SciPy; pacchetto arff autonomo su PyPI |
| Supporto R | read.arff() nel pacchetto foreign |
| Successore basato su XML | Il formato XRFF aggiunge pesi alle istanze e metadati del dataset più ricchi |
| Piattaforma | Cross-platform: Windows, Linux, macOS |
| Rilasciato | 1993 (Weka project, University of Waikato) |
| Ultima versione | ARFF with relational attributes (Weka 3.x, extended ~2005) |
| Standard aperto | Sì · royalty-free |
| Specifica | waikato.github.io |
Conversioni ARFF
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file ARFF.
Domande frequenti
Come apro un file ARFF?
scipy.io.arff.loadarff() o il pacchetto arff.