次のようなメンバーを含む単純なデータセットクラスを作成します。
public class DataSet {
private List<Column> columns = new ArrayList<Column>();
private List<Row> rows = new ArrayList<Row>();
public void parse(File file) {
// routines to read CSV data into this class
}
}
public class Row {
private Object[] data;
public void parse(String row, List<Column> columns) {
String[] row = data.split(",");
data = new Object[row.length];
int i = 0;
for(Column column : columns) {
data[i] = column.convert(row[i]);
i++;
}
}
}
public class Column {
private String name;
private int index;
private DataType type;
public Object convert(String data) {
if(type == DataType.NUMERIC) {
return Double.parseDouble(data);
} else {
return data;
}
}
}
public enum DataType {
CATEGORICAL, NUMERIC
}
使用したい任意のデータセットを処理します。唯一の問題は、データセットに列とそれぞれのデータ型を定義してデータセットを定義する必要があることです。あなたは、コードでそれを行うことができますまたはあなたがより簡単だと思うファイルからそれを読むことができます。多くの設定データをデフォルト(CATEGORICALと言ってもいい)したり、フィールドを解析しようとすると失敗した場合はCATEGORICAL、そうでなければ数値を解析することができます。通常、ファイルには列の名前を見つけるために解析できるヘッダーが含まれており、その列のデータを調べるだけでデータ型を把握する必要があります。データ型を推測する単純なアルゴリズムは、あなたを助けるのに非常に役立ちます。基本的にこれは、他のすべてのパッケージがこのようなデータ(例えばR、Wekaなど)に使用する全く同じデータ構造です。
いくつかの質問:1)データの使用をどのように計画していますか?あなたがクエリをしたり、おそらくデータベースのような何かをしたい場合は、あなたの最善の策です。 2)リポジトリからどのようにデータを取得しますか? – javydreamercsw
大規模なデータセットを言うとどういう意味ですか?データの問題は何ですか?例を教えてください。 – Behe
私はデータ離散化のための新しいアルゴリズムをテストしています。そのために、データを読み込んでJavaで処理する必要があります –