ARFF ファイル形式とは?
.arff ファイルは、ワイカト大学の機械学習グループによって開発された機械学習ワークベンチ Weka のネイティブデータセット形式です。ラベル付きデータセットを構造化されたスキーマヘッダー付きのプレーンテキストとして保存するため、学術的な機械学習研究における一般的な交換形式となっています。
.arff ファイルは 2 つのセクションで構成されています。ヘッダーは @relation(データセット名)で始まり、その後に各特徴の名前と型を定義する @attribute 宣言が続きます。サポートされている型には、NUMERIC、INTEGER、REAL、STRING、DATE (ISO 8601)、および名義型(波括弧 {} 内に明示的な値リストを記述)があります。続いて @data セクションがあり、1 行に 1 インスタンスずつカンマ区切りで記述されます。欠損値は ? でマークされます。% で始まる行はコメントです。
スパース(疎)バリアントでは、ほとんどの値がゼロである高次元データセット(テキスト分類などで一般的)のために {index value} ペアを使用します。@relational 属性型は、マルチインスタンス学習用のネストされたサブデータセットをサポートしています。
古い形式ではありますが、.arff は Weka 以外でも広くサポートされています。Python では scipy.io.arff.loadarff() を介して読み取ることができ、R では foreign パッケージで処理できます。また、多くの機械学習ツールキットが交換形式としてこれを受け入れています。より豊富なメタデータやインスタンスごとの重みを扱う場合は、Weka の XML ベースの .xrff が後継となりますが、実務では依然として .arff や .csv の方が一般的です。
セキュリティと安全性
リスク: LOWプレーンテキストのデータファイルであり、実行可能なコンテンツは含まれません。任意のテキストエディタで安全に開くことができます。Weka はこれを JVM サンドボックス内で処理します。
形式の詳細
概要ARFF ファイルを開くプログラム
from scipy.io.arff import loadarff; data, meta = loadarff('file.arff') 技術的詳細
詳細仕様| エンコーディング | プレーンテキスト(歴史的には ASCII、現代の Weka では UTF-8) |
| ファイル構造 | ヘッダー(@relation + @attribute 宣言)に続く @data セクション |
| 属性の型 | NUMERIC, INTEGER, REAL, STRING, DATE, NOMINAL(波括弧の値リスト), RELATIONAL |
| 欠損値トークン | @data セクション内の欠損値は ? で表される |
| コメント構文 | % で始まる行はコメント。ファイル内のどこにでも配置可能 |
| スパース ARFF バリアント | 高次元の疎なデータセット向けに @data セクションで {index value} ペアを使用 |
| 日付属性の形式 | DATE 属性宣言内の ISO 8601 日付/時刻文字列 |
| ネストされたデータのサポート | @relational 属性型によりマルチインスタンス学習用のサブデータセットをエンコード |
| MIME タイプ | text/plain(専用の MIME タイプは登録されていません) |
| 一般的なファイルサイズ | 1 KB - 500 MB(ベンチマークデータセットは通常 1-50 MB) |
| Python サポート | SciPy の scipy.io.arff.loadarff()、または PyPI のスタンドアロン arff パッケージ |
| R サポート | foreign パッケージの read.arff() |
| XML ベースの後継 | インスタンスの重みやより豊富なメタデータを追加した XRFF 形式 |
| プラットフォーム | クロスプラットフォーム: Windows, Linux, macOS |
| リリース日 | 1993 (Weka project, University of Waikato) |
| 最新バージョン | ARFF with relational attributes (Weka 3.x, extended ~2005) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | waikato.github.io |
ARFF の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。ARFF ファイルについて最初の質問をしてみましょう。
よくある質問
ARFF ファイルを開くにはどうすればよいですか?
scipy.io.arff.loadarff() または arff パッケージを使用してください。ARFF を CSV に変換するにはどうすればよいですか?
@relation や @attribute のヘッダー行を削除して @data セクションのみを残す方法もあります。このセクションはすでにカンマ区切りになっています。Excel で ARFF を開くことはできますか?
ARFF と CSV の違いは何ですか?
? による欠損値やスパース形式もサポートしています。