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

View File

@@ -0,0 +1 @@
{"name":"PerzeptronLabor","modules":[{"name":"daten.txt","text":"Beschriftung;Klasse;Kalorien;Eiweiß\nErbsen;1;37;3\nGurken;1;4;0\nKarotten;1;29;1\nSpinat;1;12;2\nTomaten;1;16;1\nApfel;1;49;0\nAprikose;1;49;1\nBanane;1;70;1\nWassermelone;1;12;0\nAal;0;204;9\nForelle;0;50;10\nThunfisch;0;239;22\nLachs;0;137;13\nMakrele;0;124;12\nEnte;0;192;15\nPute;0;122;23\nSchwein;0;167;18\nCroissant;0;280;0\nDonut;0;295;3\nSemmel;0;276;7\nToastbrot;0;326;10\nWeizenbrot;0;235;8\nRührkuchen;0;430;6\nRoggenbrot;0;243;6","identical_to_repository_version":false},{"name":"Labor.java","text":"/**\n * Portierung des Perzeptron-Labors von Christoph Grässl für die Online-IDE.\n * \n * @author: Jan Bertram ( jbsoc@mailbox.org )\n */\npublic class Labor {\n ArrayList<DataPoint> trainingset;\n\n public Labor() {\n trainingset = new ArrayList<>();\n }\n\n public void ladeTrainingsdaten(String workspaceFilename) {\n String fileAsString = Files.read(workspaceFilename);\n String[] lines = fileAsString.split(\"\\n\");\n for (String line : lines) {\n String[] items = line.split(\";\");\n // 0 Beschriftung, 1 Klasse, 2 x1, 3 x2\n if(items[0] != \"Beschriftung\") { // Zeile mit Beschriftung aussparen\n double x1 = Double.valueOf(items[2]);\n double x2 = Double.valueOf(items[3]);\n int klasse = Integer.valueOf(items[1]);\n String name = items[0]; \n DataPoint dp = new DataPoint(x1, x2, klasse, name);\n this.trainingset.add(dp);\n }\n }\n }\n\n public void zeigeTrainingsdaten() {\n for (DataPoint dp : this.trainingset) {\n println(dp);\n }\n }\n}","identical_to_repository_version":false},{"name":"DataPoint.java","text":"public class DataPoint {\n private double x1;\n private double x2;\n private int label; // 0 für rot, 1 für grün\n private String name;\n\n public DataPoint(double x1, double x2, int label, String name) {\n this.x1 = x1;\n this.x2 = x2;\n this.label = label;\n this.name = name;\n }\n\n public String toString() {\n String retStr = \"\";\n retStr += this.name + \": \";\n retStr += this.label == 0 ? \"rot, \" : \"grün, \";\n retStr += \"x1: \" + String.valueOf(this.x1);\n retStr += \", x2: \" + String.valueOf(this.x2);\n return retStr;\n }\n}","identical_to_repository_version":false},{"name":"Start","text":"// Zum Testen, zeigeTrainingsdaten kann nach Abschluss\n// eigentlich entfernt werden…\nLabor lab = new Labor();\nlab.ladeTrainingsdaten(\"daten.txt\");\nlab.zeigeTrainingsdaten();","identical_to_repository_version":false}],"settings":{"libraries":[]}}