Seite 1 von 1

Konventionen bei Rechenmodellen

Verfasst: Dienstag 14. September 2021, 20:16
von Buchfink
hi zusammen

ich habe mir diverse Tutorials zu Logistischer Regression, KNN etc. angeschaut.

Mir ist aufgefallen, dass in der Regel die "Basiswerte" mit X und die "abhängigen Zielwerte" mit y bezeichnet werden.
z.B.

Code: Alles auswählen

X = df[["yearOfRegistration", "kilometer", "brand"]]
cf = ColumnTransformer([("brand", OneHotEncoder(drop="first"), ["brand"])], remainder="passthrough")
cf.fit(X)
x_transformed = cf.transform(X)
y_df = df["price"]
x_train, x_test, y_train, y_test = train_test_split(x_transformed, y_df, train_size=0.75, random_state=42)
Vermutlich verwende ich hier nicht die korrekten Fachbegriffe. Bitte korrigiert mich gern.
Nun zu meiner Frage: Ist die Schreibweise mit X und y eine gängige Konvention?

Im ersten Moment war ich irritiert, da es nicht gut zu dem passt, was man z.B. von CleanCode her erwarten würde. Allerdings hab ich mich mittlerweile dran gewöhnt.
Aber gleichzeitig bin ich unsicher, ob das wirklich eine gute Idee ist.

Und wenn das eine Konvention ist, dann wäre meine nächste Frage: Was ist die Begründung für diese Konvention?

Meine Vermutung ist, dass das von den mathematischen Modellen "dahinter" kommt.
Aber warum wird X immer groß und das y klein geschrieben?

Vielen Dank im Voraus!

Re: Konventionen bei Rechenmodellen

Verfasst: Mittwoch 15. September 2021, 06:53
von tonikae
Ja, bei einer einfachen linearen Regression (ELR) sind X(Einflußgröße) und Y(Zielgröße) die
gängigen Bezeichnungen. Und das hat nichts mit Python, sondern einfach nur mit mathematischen
Konventionen zu tun.
Allles nachlesbar auf Wikipedia: https://de.wikipedia.org/wiki/Lineare_Regression

Allerdings sind die Konventionen für Variablen&Co in Programmiersprachen etwas anders, als in der
Mathematik.Besonders die der Schreibweisen.

Re: Konventionen bei Rechenmodellen

Verfasst: Mittwoch 15. September 2021, 07:46
von rogerb
@Buchfink,

die Konvention dient dazu, dass bei den vielen Möglichkeiten die einem zur Verfügung stehen, trotzdem noch eine gewisse Wiedererkennbarkeit bestehen bleibt. Das dient dem Verständnis und der Lesbarkeit und ist besonders wichtig, wenn man Code mit anderen teilt.
Wenn aber die Schreibweise eines Namens eine sehr starke Bedeutung hat, kann es sinnvoll sein, sich bewusst gegen die Konvention zu entscheiden um wieder das eigentliche Ziel, die bessere Kooperation und Lesbarkeit zu gewährlisten.
Hier trifft also die mathematische auf die pythonische Konvention. Man sollte sich einmal Gedanken machen an welche Konvention oder auch Mischform man sich halten möchte und diese dann konsequent und wiederholt anwenden.

Re: Konventionen bei Rechenmodellen

Verfasst: Mittwoch 15. September 2021, 17:28
von Buchfink
@tonikae und @rogerb

Danke für die Antworten, die sich auch mit meiner Vermutung deckt.
Das hilft mir schon mal sehr weiter, um das besser abzuwägen.

Im Moment sehe ich den Vorteil der Konvention darin, dass man die Modelle recht leicht austauschen kann. Insbesondere beim Vergleichen von Modellen, ist das vermutlich ein Vorteil.

Dass das X auch in der mathematischen Konvention (der Logistischen Regression) groß geschrieben wird, habe ich leider völlig übersehen.
Ich merke aber, dass ich die Theorie doch vielleicht nochmal genauer ansehen muss. Denn in den Tutorials, die ich jetzt gesehen habe, wurde das immer ein wenig oberflächlich "abgefrühstückt".