resolves Issue: Einlesen der Datenpunkte in CSV-Datei

This commit is contained in:
2023-11-27 15:55:10 +01:00
parent 4d31a54547
commit 3e00dd39e6
5 changed files with 88 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
public class DataPoint {
private double x1;
private double x2;
private int label; // 0 für rot, 1 für grün
private String name;
public DataPoint(double x1, double x2, int label, String name) {
this.x1 = x1;
this.x2 = x2;
this.label = label;
this.name = name;
}
public String toString() {
String retStr = "";
retStr += this.name + ": ";
retStr += this.label == 0 ? "rot, " : "grün, ";
retStr += "x1: " + String.valueOf(this.x1);
retStr += ", x2: " + String.valueOf(this.x2);
return retStr;
}
}

View File

@@ -0,0 +1,35 @@
/**
* Portierung des Perzeptron-Labors von Christoph Grässl für die Online-IDE.
*
* @author: Jan Bertram ( jbsoc@mailbox.org )
*/
public class Labor {
ArrayList<DataPoint> trainingset;
public Labor() {
trainingset = new ArrayList<>();
}
public void ladeTrainingsdaten(String workspaceFilename) {
String fileAsString = Files.read(workspaceFilename);
String[] lines = fileAsString.split("\n");
for (String line : lines) {
String[] items = line.split(";");
// 0 Beschriftung, 1 Klasse, 2 x1, 3 x2
if(items[0] != "Beschriftung") { // Zeile mit Beschriftung aussparen
double x1 = Double.valueOf(items[2]);
double x2 = Double.valueOf(items[3]);
int klasse = Integer.valueOf(items[1]);
String name = items[0];
DataPoint dp = new DataPoint(x1, x2, klasse, name);
this.trainingset.add(dp);
}
}
}
public void zeigeTrainingsdaten() {
for (DataPoint dp : this.trainingset) {
println(dp);
}
}
}

5
Online-IDE-files/Start Normal file
View File

@@ -0,0 +1,5 @@
// Zum Testen, zeigeTrainingsdaten kann nach Abschluss
// eigentlich entfernt werden…
Labor lab = new Labor();
lab.ladeTrainingsdaten("daten.txt");
lab.zeigeTrainingsdaten();

View File

@@ -0,0 +1,25 @@
Beschriftung;Klasse;Kalorien;Eiweiß
Erbsen;1;37;3
Gurken;1;4;0
Karotten;1;29;1
Spinat;1;12;2
Tomaten;1;16;1
Apfel;1;49;0
Aprikose;1;49;1
Banane;1;70;1
Wassermelone;1;12;0
Aal;0;204;9
Forelle;0;50;10
Thunfisch;0;239;22
Lachs;0;137;13
Makrele;0;124;12
Ente;0;192;15
Pute;0;122;23
Schwein;0;167;18
Croissant;0;280;0
Donut;0;295;3
Semmel;0;276;7
Toastbrot;0;326;10
Weizenbrot;0;235;8
Rührkuchen;0;430;6
Roggenbrot;0;243;6