Hallo Sabrina,

ich würde eine neue Spalte machen, welche das neue Merkmal enthält. Die Berechnung kannst Du mit dem Befehl %in% machen, welcher überprüft, ob ein Wert in einem Vektor vorkommt.

Meiner Meinung nach ist eine boolsche Variable für Wochenende am einfachsten (TRUE = Wochenende, FALSE = Werktag). Also wenn df dein Datensatz ist, machst Du folgendes:

df$day2 <- df$day %in% c("Samstag","Sonntag")

alternativ, wenn Du

df$day2 <- ifelse(df$day %in% c("Samstag","Sonntag"), "Wochenende", "Werktag")

Ich hoffe, ich konnte Dir weiterhelfen.

Viele Grüße,

Holger

...zur Antwort

Die meisten Statistik/Maschinelle-Lernen-Algorithmen optimieren ihr Modell so, dass eine Fehlerfunktion (loss function) auf dem Trainingsdatensatz möglichst klein wird.

Damit wird ein komplizierteres Modell einem einfacheren vorgezogen, auch wenn die Verbesserung (also die Verkleinerung der Fehlerfunktion) nur minimal ausfällt.

Zum Beispiel kannst Du durch 2 Punkte eine Gerade (ein Polynom vom Grad 1) ziehen. Bei drei (beliebigen) Punkten geht das schon nicht mehr. Jetzt könnte der Algorithmus auf die Idee kommen, dann einfach eine Parabel (also ein Polynom vom Grad 2) zu verwenden, dann geht es wieder exakt. Bei 4 Punkten ein Polynom vom Grad 3 usw.

Aber vielleicht ist der Zusammenhang in Wirklichkeit ein linearer und dass die Punkte nicht auf einer Geraden liegen, liegt an der Messungenauigkeit.

Man muss also stets hinterfragen, ob das gewählte Modell nicht schon zu komplex ist. Daher teilt man einen Datensatz normalerweise in einen Trainingsdatensatz und einen Testdatensatz auf. Das Modell wird an den Trainingsdatensatz angepasst und dann beim Testdatensatz geprüft, ob es dort ebenfalls gut abschneidet.

...zur Antwort

Hallo MinecraftLOLOL,

es kommt ein bisschen darauf an, welche Vorkenntnisse Du hast. Hast Du schon Programmiererfahrung (in einer anderen Sprache)? Bist Du fit in Statistik?

Also wenn Du die Grundlagen lernen willst, wie man in Python mit Daten umgeht, ist das Buch "Datenanalyse mit Python" ganz gut. Ich habe vor kurzem in meinem Data Science Blog eine Rezension dazu geschrieben. Es ist eher IT-lastig, d.h. mehr auf die Anwendung der Bibliotheken pandas und numpy ausgelegt.

Viele Grüße,

Holger

...zur Antwort

Hallo,

die eckigen Klammern signalisieren, dass es sich bei L um eine Liste handelt. Genauer gesagt hast Du ja eine Liste von Tupeln.

Wenn Du zuerst die Liste entpackst (also in einen String umwandelst), kommst Du um die eckigen Klammern herum

print(*L, sep=", ")

Aber das löst noch nicht das Problem der Anführungsstriche. Dazu müssen wir alles in einen String umwandeln, der dann mit print ausgegeben wird.

So sieht meine Lösung aus (nicht so elegant, aber macht was es soll):

def custom_print(L):
    temp = ""
    for i,l in enumerate(L):
        temp = temp + ': '.join(map(str, l)) + ", "
    print(temp[:-2])

custom_print(L) 

...zur Antwort

Dein Gedanke ist prinzipiell richtig: Zuerst bildest Du die Gerade, die durch A und B geht. Danach prüfst Du, ob C auf dieser Geraden liegt (durch Einsetzen in die Geradengleichung).

...zur Antwort

Hallo Putzteufel,

also ich empfehle Dir, die Python-Distribution Anaconda zu installieren. Da bekommst Du neben Python auch noch Spyder (eine gute Python-IDE), Jupyter Notebook (der Standard für Python Notebooks) und conda (Update-Management-System für die Packages).

Alle Feinheiten zu nutzen ist zwar komplex, aber das brauchst Du für den Anfang gar nicht. Einfach den Installer von der Anaconda runterladen und installieren (https://www.anaconda.com/download)

Ich habe dazu vor kurzem einen Blog-Artikel geschrieben (http://databraineo.de/anaconda-installieren)

Viele Grüße,

Holger

...zur Antwort