Machine Learning + Sigmoid + Boolsche Werte

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
lordi
User
Beiträge: 3
Registriert: Montag 1. März 2021, 18:18

Hallo Community,

ich habe mir das Buch "Machine Learnnig für Softwareentwickler" zugelegt und mich etwas ins Thema Machine Learning eingelesen.
Beim Thema "LIneare Regression", "Logistische Regression" habe ich ein Problem:

Die Datentabellen/Eingabevariablen erhalten immer natürliche Zahlen, also z.B.

Code: Alles auswählen

Gäste   Preis1    Preis2              Ergebnis
18        11           34                 0
12         12          9                   1
13        12           4                   0
11        14           3                   1
Der Ergebniswert wird dann mittels Sigmoid klassifiziert (binäre Klassifizierung)- soweit "ok".

Was genau tue ich aber, wenn ich boolsche Werte für die Datentabelle habe? Nehmen wir also z.B die Wochentage dazu.
Wie kann ich Booleans in die Datentabelle integrieren?

Code: Alles auswählen

Gäste   Preis1    Preis2                Mo    Di     Ergebnis
18        11         34                 0        1         0
12        12          9                  1       1         1
13        12          4                  1       0         0
11        14          3                  0       1         1
Macht das Sinn?
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Hi,

die nimmst du so einfach mit rein. Würde generell aber alle Trainingsdaten vor dem Training deines Models normalisieren, damit keine unabhängige Variable zu sehr das Model verzerrt.

Solange du Zahlen hast, ist alles gut. Wörter (strings) müsstest du zu Zahlen encoden.

Generell kannst du dir mal Scikit-Learn anschauen. Da gibt es alles was du brauchst.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
lordi
User
Beiträge: 3
Registriert: Montag 1. März 2021, 18:18

So ganz beantwortet das meine Fragen noch nicht ;-)
OK, dass es funktioniert habe ich schon festgestellt, aber was genau ist die Auswirkung, wenn ich boolsche Variablen 0 und 1 z.B. für Wochentage nutze?

Als Ergebnis bekomme ich ja eine Gleichung, z.B. y = 0,9 (BIAS) + 0,2x (Gäste) + -0.002x2 (Preis1) + 0,9x3 (Preis2) + -0.9x4 (Preis3) + 0,8x5 (Montag) + -0.9x6 (Dienstag).
Bei den Werte für Gäste, Preis1 und Preis2 kann ich ja sagen: Je näher an der 1 desto größer der Einfluß der Variable auf mein Ergebnis und je näher an der -1 desto größer der komplementäre Einfluss auf mein Ergebnis. Je näher direkt an der 0, desto geringer der Einfluß der Variablen auf der Ergebnis (wg. der Sigmoidfunktion).

Beim Beispiel bedeutet das:
* 0.2x -> Je mehr Gäste, desto eher "Ergebnis tritt ein"
* -0.002x2 -> Preis1 ist eher unwichtig für das Ergebnis
* 0,9x3 -> Preis2 hat starken Einfluß auf das Ergebnis. Je Höher Preis2 desto höher die Wahrscheinlichkeit dass das Ergebnis eintritt
* -0.9X4 -> Je geringer Preis3, desto wahrscheinlicher, dass das Ergebnis eintritt

Wie ist das aber bei den Wochentagen? Kann ich hier auch tatsächlich so eine Aussage treffen? Ich habe für "ist Montag" bzw. "ist Dienstag" ja einfach fix eine 1 vergeben, die in der Gleichung ja genau so gehandhabt wird wie eine echte Menge z.B. von Preis1.
Wäre es nicht sinnvoller hier anstelle von 0 für nein einen maximalen negativen Wert und anstelle von 1 einen maximalen positiven Wert zu nehmen?

Meine grundlegende Fragen sind also:
* Macht es Sinn Boolsche Werte mit 0 und 1 abzubilden?
* Liefert mir das Ergebnis einen qualifizierten Rückschluss auf den Einfluss der Variable auf das Gesamtergebnis?

Noch eines: Sollte ich ich einfach unverständlich ausdrücken, werde ich versuchen etwas nachzujustieren ;-)
Antworten