創建一個包含類似下面的成員一個簡單的DataSet類:
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中處理它 –