Schlagt die Buchmacher mit unserem neuen Projekt overlyzer.com! Wir liefern LIVE-Trends für über 800 Ligen und Wettbewerbe, die den genauen Matchverlauf eines Spiels wiedergeben und euch insbesondere bei Live-Wetten einen entscheidenden Vorteil verschaffen können! Meldet euch jetzt an!

Jump to content
Sign in to follow this  
Evilken

Data Science

24 posts in this topic

Recommended Posts

Nachdem das Thema Data Science mittlerweile überall vorkommt und einfach riesiges Potential hat (und ich das ganze liebe :davinci:), dachte ich mir, warum keinen Thread erstellen.

Also liebend gern alles rein, was irgendwie mit Data Science, Machine Learning, Deep Learning usw. zu tun hat :D

Ich bin gespannt und sauge alles auf :D

Share this post


Link to post
Share on other sites
Evilken schrieb vor 1 Minute:

Mir gefällt eigentlich Python bis jetzt ganz gut, ich kenne R allerdings viel zu wenig :davinci:

 

bei mir ist's umgekehrt - allerdings scheint python populärer zu sein, also da werd ich mich später sicher noch damit beschäftigen. ich zitier mal einen österreichischen ds-guru: r is for artists, python for slaves :D

Share this post


Link to post
Share on other sites

hat wer tipps für gute online-kurse? mein problem bei den meisten ist, dass diese bei 0 anfangen, nachdem ich aber schon etliche jahre mit daten arbeite ist der großteil dann eher fad :D

ich hab bei edx den ds-kurs basierend auf r gemacht - den fand ich grundsätzlich recht gut, außer dass der bereich machine learning mmn zu wenig detailliert durchgemacht wird (vor allem hinsichtlich das abschlussprojekts).

allgemein ist's aber interessant, dass ich das zeugs ja konzeptionell alles auf der uni gelernt hab, damals (haggod, ich werd alt :D ) gab's aber die maschinen noch nicht die z.b. ein knn trainieren hätten können (abgesehen davon dass auch viele daten nicht in der form wie jetzt verfügbar waren).

Share this post


Link to post
Share on other sites
Pimmi schrieb am 3.4.2020 um 13:09 :

hat wer tipps für gute online-kurse? mein problem bei den meisten ist, dass diese bei 0 anfangen, nachdem ich aber schon etliche jahre mit daten arbeite ist der großteil dann eher fad :D

ich hab bei edx den ds-kurs basierend auf r gemacht - den fand ich grundsätzlich recht gut, außer dass der bereich machine learning mmn zu wenig detailliert durchgemacht wird (vor allem hinsichtlich das abschlussprojekts).

allgemein ist's aber interessant, dass ich das zeugs ja konzeptionell alles auf der uni gelernt hab, damals (haggod, ich werd alt :D ) gab's aber die maschinen noch nicht die z.b. ein knn trainieren hätten können (abgesehen davon dass auch viele daten nicht in der form wie jetzt verfügbar waren).

Hab mal nur kurz gesucht:

https://www.forbes.com/sites/bernardmarr/2017/06/06/the-9-best-free-online-big-data-and-data-science-courses/#38c60dc043cd

Vielleicht hilft dir da was weiter, wobei der Artikel auch schon wieder zwei Jahre alt ist. 

https://www.classcentral.com/subject/data-science

Da sind unglaublich viele, scheint auch sehr aktuell zu sein, kann aber auch viel Dreck dabei sein :davinci:

Share this post


Link to post
Share on other sites

War immer überzeugter R-User (weil damals auf der WU gelernt), aber mittlerweile durch die Uni python kennengelernt und seitdem eigentlich nur mehr das. Für ML hat man dort einfach alles was man braucht.

Kommts bei euch auch vor, dass ihr die Sprachen öfters verwechselt?

Share this post


Link to post
Share on other sites
GrimCvlt schrieb am 9.4.2020 um 21:02 :

War immer überzeugter R-User (weil damals auf der WU gelernt), aber mittlerweile durch die Uni python kennengelernt und seitdem eigentlich nur mehr das. Für ML hat man dort einfach alles was man braucht.

Kommts bei euch auch vor, dass ihr die Sprachen öfters verwechselt?

ich hab mit python nur ein paar dinge gemacht, da ich mal java gelernt hab bekomm ich beim sourcecode immer ein bissl augenweh :D r hat mir deshalb besser zugesagt weil manches meiner "sql-denke" näher kommt. ich möcht mich aber wenn ich ein bissl mehr gemacht unbedingt noch intensiver mit python beschäftigen. gefühlt wird es ja auch mehr gefordert als r bei ausgeschriebenen stellen.

Share this post


Link to post
Share on other sites
Pimmi schrieb vor 17 Stunden:

ich hab mit python nur ein paar dinge gemacht, da ich mal java gelernt hab bekomm ich beim sourcecode immer ein bissl augenweh :D r hat mir deshalb besser zugesagt weil manches meiner "sql-denke" näher kommt. ich möcht mich aber wenn ich ein bissl mehr gemacht unbedingt noch intensiver mit python beschäftigen. gefühlt wird es ja auch mehr gefordert als r bei ausgeschriebenen stellen.

Kann ich nachvollziehen. Dplyr funktioniert ja mehr oder weniger wie SQL. Erwische mich ab und zu auch mit dem Gedanken für Datenaufbereitung und Exploration lieber R zu verwenden und erst für das reine ML zu python zu wechseln.

Share this post


Link to post
Share on other sites

Für die Experten, ich hab eine kurze Verständnisfrage, für euch geht das wahrscheinlich sehr schnell :davinci:

Ich bin ja noch nicht so der Machine Learning-Profi und jetzt müssen wir eine Perzeptron-Logik erstmals in Python umsetzen, ohne auf keras/tensorflow/etc. zu bauen. Da hab ich ein kleines Verständnisproblem:

Datensatz ist folgender (einfach nur zum Probieren, ganz einfach):

image.png

Das ist ein ganz primitives neuronales Netz, mit nur einem Output-Node, also nur einem Perzeptron, wo etwas passiert. Der schmeißt dann auch gleich den Output raus. 

Also zuerst hätte ich die Gewichte initialisiert. Das wären in diesem Fall zwei, weil eines für x1 und eines für x2. Dann noch zusätzlich einen Bias, der aber an kein Feature gebunden ist. Soweit klar.

Als nicht-lineare Transferfunktion verwenden wir einfach die logistische Funktion:

image.png

Und jetzt gehts darum, die Aktivierung und die Transferfunktion auf die Daten auszuführen bzw. mal so zu programmieren, dass es auch dementsprechend funktioniert:

image.png

Da wir oben drei Datensätze haben, brauchen wir bei Activation und Output jeweils ein Array mit drei Einträgen, wie ich das richtig verstanden habe? Dann haben wir uns für jeden Datensatz das vorhergesagte Label berechnet.

Feed Forward ist jetzt nicht so das Problem, eher die Backpropagation. Als Loss-Funktion verwenden wir folgende:

image.png

bzw. umgeschrieben

image.png

Wir sollten lt. unserer Anforderung die untere Formel verwenden, allerdings fehlt da der Bias. Im Skript, woher diese Formel stammt, ist der Bias 0. Sollte man da nicht noch den Bias hinzufügen und kann ich demzufolge nicht eigentlich eh gleich den output, den ich mir vorher berechnet habe, verwenden?

Die true Labels sind ein Array mit 3 Zeilen, die Outputs sind ein Array mit 3 Zeilen, dann wird der Loss berechnet. Ist der dann auch ein Array von drei Zeilen oder wird der summiert? Das ist mal ein Punkt, der für mich unklar ist. Wir brauchen ja einen Loss-Wert pro Ausführung mit allen Daten.

Dann kommt die Berechnung des Gradienten, den wir für die Anpassung der Gewichte und Bias brauchen. 

image.png

Da stellt sich mir auch wieder die Frage, kann ich statt logistic(act) nicht eigentlich eh den Output verwenden? Da ist dann im Grunde die gleiche Frage wie beim Loss. Muss ich dann die Berechnungen von x1 aufsummieren, dass ich pro Gewicht nur einen Wert bekomme? Und der Bias multipliziert einfach am Schluss nicht mit xi?

Dann hätten wir ein Array für den Gradienten mit 3 Einträgen. Erster Eintrag ist aufsummiert für x1 (bzw. w1), zweiter Eintrag aufsummiert für x2 und der dritte Eintrag für den Bias.

Dann können wir recht einfach die Gewichte anpassen:

image.png

Vielleicht hat wer einen Tipp von euch :davinci: Danke!

Share this post


Link to post
Share on other sites
Evilken schrieb vor 3 Stunden:

Für die Experten, ich hab eine kurze Verständnisfrage, für euch geht das wahrscheinlich sehr schnell :davinci:

Ich bin ja noch nicht so der Machine Learning-Profi und jetzt müssen wir eine Perzeptron-Logik erstmals in Python umsetzen, ohne auf keras/tensorflow/etc. zu bauen. Da hab ich ein kleines Verständnisproblem:

Datensatz ist folgender (einfach nur zum Probieren, ganz einfach):

image.png

Das ist ein ganz primitives neuronales Netz, mit nur einem Output-Node, also nur einem Perzeptron, wo etwas passiert. Der schmeißt dann auch gleich den Output raus. 

Also zuerst hätte ich die Gewichte initialisiert. Das wären in diesem Fall zwei, weil eines für x1 und eines für x2. Dann noch zusätzlich einen Bias, der aber an kein Feature gebunden ist. Soweit klar.

Als nicht-lineare Transferfunktion verwenden wir einfach die logistische Funktion:

image.png

Und jetzt gehts darum, die Aktivierung und die Transferfunktion auf die Daten auszuführen bzw. mal so zu programmieren, dass es auch dementsprechend funktioniert:

image.png

Da wir oben drei Datensätze haben, brauchen wir bei Activation und Output jeweils ein Array mit drei Einträgen, wie ich das richtig verstanden habe? Dann haben wir uns für jeden Datensatz das vorhergesagte Label berechnet.

Feed Forward ist jetzt nicht so das Problem, eher die Backpropagation. Als Loss-Funktion verwenden wir folgende:

image.png

bzw. umgeschrieben

image.png

Wir sollten lt. unserer Anforderung die untere Formel verwenden, allerdings fehlt da der Bias. Im Skript, woher diese Formel stammt, ist der Bias 0. Sollte man da nicht noch den Bias hinzufügen und kann ich demzufolge nicht eigentlich eh gleich den output, den ich mir vorher berechnet habe, verwenden?

Die true Labels sind ein Array mit 3 Zeilen, die Outputs sind ein Array mit 3 Zeilen, dann wird der Loss berechnet. Ist der dann auch ein Array von drei Zeilen oder wird der summiert? Das ist mal ein Punkt, der für mich unklar ist. Wir brauchen ja einen Loss-Wert pro Ausführung mit allen Daten.

Dann kommt die Berechnung des Gradienten, den wir für die Anpassung der Gewichte und Bias brauchen. 

image.png

Da stellt sich mir auch wieder die Frage, kann ich statt logistic(act) nicht eigentlich eh den Output verwenden? Da ist dann im Grunde die gleiche Frage wie beim Loss. Muss ich dann die Berechnungen von x1 aufsummieren, dass ich pro Gewicht nur einen Wert bekomme? Und der Bias multipliziert einfach am Schluss nicht mit xi?

Dann hätten wir ein Array für den Gradienten mit 3 Einträgen. Erster Eintrag ist aufsummiert für x1 (bzw. w1), zweiter Eintrag aufsummiert für x2 und der dritte Eintrag für den Bias.

Dann können wir recht einfach die Gewichte anpassen:

image.png

Vielleicht hat wer einen Tipp von euch :davinci: Danke!

Glaub, ich habs jetzt eh gelöst :davinci:

Share this post


Link to post
Share on other sites
Evilken schrieb vor 4 Stunden:

image.png

 

Die Lösung ist übrigens y=x1 ;)

EDIT:
Und viel besser als du das jemals mit der logistischen Funktion hinbekommst, weil 0 und 1 kriegst dort bei plus bzw minus Unendlich.

D.h. deine Lösung wird im Endeffekt sein, daß der Bias gegen minus Unendlich geht w1 gegen plus Unendlich und w2 irgendeinen Wert annimmt, weil eh schon wurscht.

 

Edited by jimmy1138

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Folge uns auf Facebook

  • Partnerlinks

  • Unsere Sponsoren und Partnerseiten

  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...