Konventionen bei Rechenmodellen

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Buchfink
User
Beiträge: 21
Registriert: Samstag 11. September 2021, 10:16

Dienstag 14. September 2021, 20:16

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!
tonikae
User
Beiträge: 66
Registriert: Sonntag 23. Februar 2020, 10:27

Mittwoch 15. September 2021, 06:53

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.
rogerb
User
Beiträge: 534
Registriert: Dienstag 26. November 2019, 23:24

Mittwoch 15. September 2021, 07:46

@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.
Buchfink
User
Beiträge: 21
Registriert: Samstag 11. September 2021, 10:16

Mittwoch 15. September 2021, 17:28

@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".
Antworten