[gnucash-de] Zurücksetzen des Bayes-Algorithmus

Christian Gruber christian_gruber at gmx.de
Sa Mai 23 18:54:28 EDT 2020


Am 22.05.20 um 20:22 schrieb Jörg Schaible:
> Hallo Christian,
>
> Am Donnerstag, 14. Mai 2020, 00:28:16 CEST schrieb Christian Gruber:
>
>
>> Am 12.05.20 um 23:31 schrieb Jörg      Schaible:
> [snip]
>
>>> Neben den durch Leerzeichen (Zeilenumbruch bei der Übertragung) zerhackten
>>> Strings besteht jede Zeile aus einem riesigen Haufen Kutter. Der Bayes
>>> Filter muss hier also die Strings "LIDL", "PENNY" und "Deutsche Post"
>>> erkennen, um die ersten beiden einem Aufwandskonto "Lebensmittel" zuordnen
>>> zu können, bzw. die 3. Buchung zu "Sonstige Ausgaben". Dumm nur, dass man
>>> bei LIDL dann manchmal auch was anderes als Lebensmittel kauft. Da würde
>>> ich dann gern beim Import bei einem einzelnen Posten manuell zuordnen
>>> können, ohne dass der Bayes lernt ganz nach dem Motto "Ignoriere das,
>>> diesmal ist es eben anders".
>> Schau mal bei dir im Import-Zuordnungen Editor nach (Menü "Werkzeuge"),
> Lustig. Nun arbeite ich schon mehr als ein Jahrzehnt mit GnuCash, aber da bin
> ich noch nie drüber gestolpert.. :-)
>
>> welchen Konten die Begriffe "LIDL", "PENNY" und "Deutsche Post" zugeordnet
>> sind. Gibt es da mehrere Einträge mit verschiedenen Gegenkonten? Sind dort
>> Einträge mit "falschen" Gegenkonten dabei? Wenn ja, dann lösche mal diese
>> falschen Einträge.
> Wie Matthias schon bemerkt hat, gibt es hunderte von seltsamen Regeln hier.
Nur damit keine Missverständnisse aufkommen, der Import-Zuordnungen
Editor zeigt keine "Regeln". Er zeigt an, wie oft eine Buchung mit dem
jeweiligen Begriff im Zuge eines Imports einem bestimmten Gegenkonto
zugeordnet wurde. Es handelt sich hierbei lediglich um einen Zähler.
> Was mache ich mit Regeln, bei denen steht "Zugeordnetes Konto nicht gefunden"?
> Da gibt es ca. 1000 Einträge. Die sind doch eigentlich sinnlos. Auch habe ich

Einträge, zu denen das zugeordnete Konto nicht gefunden wurde, stammen
von früheren Importen, bei denen eine Buchung einem Konto zugeordnet
wurde, welches nicht mehr existiert, also wahrscheinlich gelöscht wurde.
Diese Einträge können problemlos gelöscht werden.

Und wie gesagt, es handelt sich hierbei nicht um irgendwelche Regeln,
die der Algorithmus "gelernt" hat. Es sind lediglich Beobachtungsdaten
ohne jegliche Wertung (sinnlos/sinnvoll).

> oft mehrere Regeln, bei denen ein einzelnes Zeichen (z.B. '+') auf
> verschiedenen Konten verweist. Wenn ich die Bayes-Regeln nach z.B. "LIDL"
Da in vielen Buchungstexten das '+' Zeichen auftaucht, gibt es
dementsprechend hier auch viele Einträge. Ich konnte bisher nicht
beobachten, dass diese den Bayes-Algorithmus nachteilig beeinflussen.
> filtere, habe ich ca. 20 Treffer, wobei die "richtigen" Regeln auch mit einer
> hohen Verwendungszahl aufwarten.
Das ist ja schon mal gut. Aber wie ich bereits geschrieben hatte (siehe
unten), kommt der Bayes-Algorithmus nach meiner Beobachtung
durcheinander, wenn keine eindeutige Zuordnung mehr möglich ist, d.h.
wenn zu einem Begriff mehrere Einträge existieren. Gibt es denn aus
deiner Sicht von den 20 Einträgen mehrere "richtige"? Oder sollen
Buchungen mit dem Begriff "LIDL" immer demselben Gegenkonto zugeordnet
werden. Falls Letzteres der Fall ist, könntest du bei dir mal alle
Einträge löschen, in denen der Begriff "LIDL" einem anderen Gegenkonto
zugeordnet wurde.
>
>> Wenn danach immer noch mehr als ein Eintrag übrig bleibt, wird es nach
>> meiner Beobachtung problematisch. Sobald die Zuordnung nämlich nicht mehr
>> eindeutig möglich ist, weil mehr als eine Zuordnung existiert, wird es
>> schwierig für den Bayes-Algorithmus. Und zwar funktioniert bei mir der
>> Bayes-Algorithmus nur dann korrekt, solange es mindestens einen Begriff gibt,
>> den er eindeutig einem Konto zuordnen kann. Das sind in manchen Fällen sogar
>> völlig unbedeutende Textschnipsel. Sobald aber kein solcher Begriff mehr
>> existiert, gibt der Bayes-Algorithmus keine sinnvollen Ergebnisse mehr aus.
>> Dieser Effekt verstärkt sich wahrscheinlich mit der Zeit, je mehr Konten und
>> Zuordnungen hinzukommen.
> Ich hätte jetzt gedacht, dass Bayes die Regeln der Konten trennt, zumindest
> legt das die Darstellung nahe. Auch die Verwendungszahl sollte da irgendwie
> ein fließen
Der Bayes-Algorithmus trennt die Zuordnungssdaten nach dem
Herkunftskonto, so wie dies im Import-Zuordnungen Editor auch
dargestellt wird. D.h. Importe aus unterschiedlichen Herkunftskonten
beeinflussen sich nicht gegenseitig. Der Bayes-Algorithmus arbeitet
stets nur mit den Zuordnungsdaten des jeweiligen Herkunftskontos, für
das neue Buchungen importiert werden sollen. Die Verwendungszahl fließt
in die Berechnung mit ein. Ich kann aber noch nicht so recht beurteilen,
inwieweit diese Zahl das Ergebnis beeinflusst.
>
>> Das dürfte eigentlich nicht sein, denn ein Bayes-Algorithmus ist ein
>> statistischer Ansatz und müsste hier wenigstens das Gegenkonto mit den
>> häufigsten Zuordnungen höher gewichten als einen "Ausreißer", wo mal eine
>> andere Zuordnung erfolgte. Das tut er aber in GnuCash nicht. Ich versuche
>> gerade, dem auf den Grund zu gehen.
> Und? Hast Du etwas gefunden?
Das ist echt keine einfache Sache. Die Implementierung des
Bayes-Algorithmus leuchtet mir jedenfalls noch nicht ein. Ich werde wohl
bei den Entwicklern mal nachhaken, ob es zu dieser Implementierung
nähere Informationen gibt. Die Implementierung stammt aus 2003, ist also
schon eine Weile her.
>
> Wo kommen eigentlich die Regeln im Tab "Nicht-Bayesich" her? Da habe ich auch
> tausende. Hier scheint es ja sogar unterschiedliche je nach Beschreibung und
> Buchungstext zu geben.
Die stammen von dem vorherigen Zuordnungsalgorithmus, welcher nicht auf
einem Bayes-Ansatz beruhte. Diese Einträge werden vom Bayes-Algorithmus
ignoriert.
>
> Eine Verbesserung wäre nämlich auch, wenn beim Import die Buchungen, die
> zwischen Konten getätigt werden, die beide in GnuCash verwaltet werden, immer
> eindeutig erkennen und zuordnen würde. Das Gegenkonto steht nämlich
> einwandfrei im Buchungstext (nicht in der Beschreibung) drin.
Was meinst du genau mit "Das Gegenkonto steht nämlich einwandfrei im
Buchungstext"? Wo kommt diese Information her? Wurde bereits vor dem
Import in GnuCash eine Zuordnung vorgenommen?
>
> Grüße,
> Jörg
>
>


Mehr Informationen über die Mailingliste gnucash-de