Was ist das ARFF-Dateiformat?
Eine .arff-Datei ist das native Datensatzformat für die Weka Machine Learning Workbench, entwickelt von der Machine Learning Group an der University of Waikato. Sie speichert beschriftete Datensätze als Klartext mit einem strukturierten Schema-Header, was sie zu einem gängigen Austauschformat in der akademischen Machine-Learning-Forschung macht.
Eine .arff-Datei besteht aus zwei Abschnitten. Der Header beginnt mit @relation (Benennung des Datensatzes), gefolgt von @attribute-Deklarationen, die den Namen und Typ jedes Merkmals definieren. Zu den unterstützten Typen gehören NUMERIC, INTEGER, REAL, STRING, DATE (ISO 8601) und nominal (eine explizite Werteliste in geschweiften Klammern {}). Es folgt der @data-Abschnitt mit kommagetrennten Instanzen, eine pro Zeile; fehlende Werte werden mit ? markiert. Zeilen, die mit % beginnen, sind Kommentare.
Eine Sparse-Variante verwendet {index value}-Paare für hochdimensionale Datensätze, bei denen die meisten Werte Null sind - häufig bei der Textklassifizierung. Der Attributtyp @relational unterstützt verschachtelte Unterdatensätze für Multi-Instance-Learning.
Trotz ihres Alters wird .arff weit über Weka hinaus unterstützt: Python liest es über scipy.io.arff.loadarff(), R verarbeitet es mit dem Paket foreign, und viele ML-Toolkits akzeptieren es als Austauschformat. Für reichhaltigere Metadaten und Instanzgewichtungen ist das XML-basierte .xrff der Nachfolger, obwohl .arff und .csv in der Praxis gebräuchlicher bleiben.
Sicherheit
RISIKO: LOWKlartext-Datendatei; kein ausführbarer Inhalt. Sicher in jedem Texteditor zu öffnen. Weka verarbeitet sie in einer JVM-Sandbox.
Formatdetails
kurz gefasstProgramme zum Öffnen von ARFF-Dateien
Technische Details
technische Spezifikation| Kodierung | Klartext (historisch ASCII; UTF-8 im modernen Weka) |
| Dateistruktur | Header (@relation + @attribute Deklarationen) gefolgt vom @data Abschnitt |
| Attributtypen | NUMERIC, INTEGER, REAL, STRING, DATE, NOMINAL (Werteliste in geschweiften Klammern), RELATIONAL |
| Token für fehlende Werte | ? repräsentiert jeden fehlenden Wert im @data Abschnitt |
| Kommentarsyntax | Zeilen, die mit % beginnen, sind Kommentare; überall in der Datei erlaubt |
| Sparse-ARFF-Variante | {index value} Paare im @data Abschnitt für hochdimensionale Sparse-Datensätze |
| Datumsformat für Attribute | ISO 8601 Datums-/Zeit-Strings innerhalb von DATE-Attributdeklarationen |
| Unterstützung für verschachtelte Daten | Der Attributtyp @relational kodiert Unterdatensätze für Multi-Instance-Learning |
| MIME-Typ | text/plain (kein dedizierter MIME-Typ registriert) |
| Typische Dateigröße | 1 KB - 500 MB (Benchmark-Datensätze üblicherweise 1-50 MB) |
| Python-Unterstützung | scipy.io.arff.loadarff() in SciPy; eigenständiges arff-Paket auf PyPI |
| R-Unterstützung | read.arff() im foreign-Paket |
| XML-basierter Nachfolger | Das XRFF-Format fügt Instanzgewichtungen und reichhaltigere Datensatz-Metadaten hinzu |
| Plattform | Plattformübergreifend: Windows, Linux, macOS |
| Veröffentlicht | 1993 (Weka project, University of Waikato) |
| Neueste Version | ARFF with relational attributes (Weka 3.x, extended ~2005) |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | waikato.github.io |
ARFF-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu ARFF-Dateien.
Häufig gestellte Fragen
Wie öffne ich eine ARFF-Datei?
scipy.io.arff.loadarff() oder das arff-Paket.Wie konvertiere ich ARFF in CSV?
@relation / @attribute Header-Zeilen und behalten den @data-Abschnitt - dieser ist bereits kommagetrennt.