Hallo. Also ich habe zum Beispiel die Folge "1110001100011" (Teilpalindrom). Als nächstes Bit der Folge sollte "1" vorhergesagt werden (Palindrom). Die Regression sollte also das Palindrom Muster erkennen. Ich verwende Apache Commons Math:
[CODE lang="java" highlight="9"] public BitSet getPrediction(BitSet inputSet) {
OLSMultipleLinearRegression regression = new OLSMultipleLinearRegression();
double[] y = new double[inputSet.length()];
double[][] x = new double[inputSet.length()][inputSet.length()];
for (int i = 0; i < inputSet.length(); i++) {
y = i;
x = inputSet.get(i) ? 1 : 0;
}
regression.newSampleData(y, x);
double[] residuals = regression.estimateResiduals();
BitSet outputSet = new BitSet();
for (int i = 0; i < residuals.length; i++) {
outputSet.set(i, residuals >= 0.5);
}
return outputSet;
}[/CODE]
Leider funktioniert das aber nicht, Fehlermeldung (Zeile 9):
Woran könnte das liegen?
[CODE lang="java" highlight="9"] public BitSet getPrediction(BitSet inputSet) {
OLSMultipleLinearRegression regression = new OLSMultipleLinearRegression();
double[] y = new double[inputSet.length()];
double[][] x = new double[inputSet.length()][inputSet.length()];
for (int i = 0; i < inputSet.length(); i++) {
y = i;
x = inputSet.get(i) ? 1 : 0;
}
regression.newSampleData(y, x);
double[] residuals = regression.estimateResiduals();
BitSet outputSet = new BitSet();
for (int i = 0; i < residuals.length; i++) {
outputSet.set(i, residuals >= 0.5);
}
return outputSet;
}[/CODE]
Java:
String string = "1110001100011"; // Palindrom
BitSet bitSet = new BitSet();
for (int i = 0; i < string.length(); i++) {
bitSet.set(i, string.charAt(i) == '1');
}
System.out.println(getPrediction(bitSet));
Leider funktioniert das aber nicht, Fehlermeldung (Zeile 9):
Exception in thread "main" org.apache.commons.math3.exception.MathIllegalArgumentException: not enough data (13 rows) for this many predictors (13 predictors)
Woran könnte das liegen?