Ai, Linear Regression

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Raphael_155
User
Beiträge: 23
Registriert: Sonntag 12. September 2021, 06:01

Hallo,
derzeit bin ich bei Linear Regression, da ich mit dem erstellen von Kis beginnen möchte, dafür habe ich diesen Code, ein paar Sachen verstehe ich noch nicht ganz.

import pandas as pd
import numpy as np
import sklearn
from sklearn import linear_model
from sklearn.utils import shuffle

data = pd.read_csv("student-mat.csv", sep=";")
data = data[["G1", "G2", "G3", "studytime","failures", "absences"]]
predict = "G3"

import numpy as np
import sklearn
from sklearn import linear_model
from sklearn.utils import shuffle

data = pd.read_csv("student-mat.csv", sep = ";")
data = data[["G1","G2", "G3", "studytime", "failures", "absences"]]
predict = "G3"

X = np.array(data.drop([predict],1))
y = np.array(data[predict])


x_train, x_test , y_train, y_test = sklearn.model_selection.train_test_split(X, y, test_size = 0.1)
linear = linear_model.LinearRegression()
linear.fit(x_train, y_train)

#linear.score(x_test, y_test)
acc = linear.score(x_test, y_test)
print(acc)

print("Coefficient: \n",linear.coef_)
print("Intercept: \n", linear.intercept_)

predictions = linear.predict(x_test)

for x in range(len(predictions)):
print(predictions[x], x_test[x], y_test[x])

Erstmal zur data, mir ist klar, das das nur ein Algorithmus ist, aber wenn man jetzt eine Ki beispielsweise für ein Spiel programmiert, wie macht man das dann mit der data, da hat man ja keine Reihen und so sondern die Daten sind dann eher Screenshots. Zweitens was soll bei X = np.array(data.drop([predict],1)) die eins am Ende? Drittens was ist der unterscheid zwischen der fit function und der learn function? Und als letztes was ist der Coefficient und der Intercept?
Danke für eure Hilfe!
Benutzeravatar
sparrow
User
Beiträge: 4231
Registriert: Freitag 17. April 2009, 10:28

In meine Augen sattelst du das Pferd von der völlig falschen Seite auf.
Anstatt dir Code zu suchen, der Dinge macht, die du nicht verstehst, solltest du den umgekehrten Weg gehen. Setz dich mit Python auseinander und beherrsche die Grundlagen und dann such dir eine der vielen Erklärungen (und ich würde nicht unbedingt auf die Youtube-Universität dafür gehen, weil ich Videos bei so etwas nur bedingt für die richtige Medienform halte), die dich an das Thema heran führen.
Wie gesagt: Von einem fertigen Code zu kommen halte ich für falsch. Programmieren in meinen Augen das Überführen von realen Sachverhalten in Code. Wenn du das reale Problem nicht verstehst, verstehst du auch den Code nicht.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Deine Frage offenbart fundamentales Unverständnis sowohl für Python, als auch das Thema ML. Was ja nicht schlimm ist, jeder fängt klein an. Aber sich ein Stück Code aus dem Netz zu pulen & zu hoffen, das wird einem dann haarklein erklärt, ist keine erfolgversprechende Strategie. Wie andere schon erwähnt haben: erarbeite dir Grundlagen.
Benutzeravatar
__blackjack__
User
Beiträge: 13199
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Was die 1 bei `DataFrame.drop()` bedeutet, ist IMHO in der Pandas-Dokumentation verständlich beschrieben.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Raphael_155
User
Beiträge: 23
Registriert: Sonntag 12. September 2021, 06:01

Ich bin eigentlich schon relativ lange mit der Programmierung beschäftigt vor allem bei Python, ich bin nur ein kompletter Neueinsteiger in den Sachen machine learning und wollte mich mit diesem Thema auseinander setzen, wobei ich dann eben darauf gestoßen bin, das Algorithmen, wie linear regression dafür wichtig sind, also habe ich mich damit auseinander gesetzt, davor war ich eher in Modulen, wie Pygame und so etwas unterwegs, ich würde aber dennoch sagen, dass ich mich mit Python eigentlich einigermaßen zumindest auskenne und auch ein ganz gutes Verständnis fürs coden habe.Ich bin halt komplett neu im maschine learning und deshalb kenn ich diese ganzen sachen wie drop(), fit() und learn() eben nicht. Was genau würdet ihre denn sagen ist das fundamentale was mir fehlt? Weil warum bei einer drop function am Ende eine 1 steht zu fragen, sehe ich jetzt nicht als "schlimm" an wenn man da komplett neu drinnen ist. Ich verstehe auch den code, bis auf eben diese Einzelheiten. Und ich meine wenn ich mich mit einem Algorithmus auseinander setzte, dann muss ich doch den Code dafür kennen, den kann ich doch nicht einfach selber erfinden, ich bin komplett bei euch. Das System ist wichtig zu verstehen und mir ist auch klar, welche Mathematische Struktur dahinter ist, aber ich kann doch nicht ohne den Code zu kennen einen Algorithmus lernen? Oder wie seht ihr das? Was würdet ihre mir denn jetzt raten?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Also noch vor zwei Tagen oder so war dir Index-Zugriff bei einem fast gleichen Thema unklar. Das sieht nicht nach “einigermaßen auskennen” aus.

Zum Thema ML gibt es ja alle möglichen Einsteiger-Kurse, die einem die Grundlagen vermitteln. Inklusive von Konzepten wie fit und predict. Kaggle zB.
Benutzeravatar
__blackjack__
User
Beiträge: 13199
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Raphael_155: Die 1 bei `drop()` hat nichts mit „machine learning“ zu tun. Das sind einfach Pandas-Grundlagen, die man ja auch problemlos nachlesen kann, wenn man einem Pandas noch unbekannt ist.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Benutzeravatar
ThomasL
User
Beiträge: 1367
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

https://sites.wustl.edu/jeffheaton/t81-558/

Obiger Kurs wird an der Washington University von St.Louis von Jeff Heaton seit einigen Jahren vor Ort und remote unterrichtet und enthält alles was man zum Verständnis von AI/ML mit Python benötigt.

Der Code zu den Modulen ist auf Github verfügbar und wird in 77 Youtube Videos ausführlich besprochen.

Ein Bestandteil zum Ende eines Kurses ist auch eine Kaggle Challenge in der sich die Kursteilnehmer untereinander messen können.

Viel Spaß.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Raphael_155
User
Beiträge: 23
Registriert: Sonntag 12. September 2021, 06:01

@ThomasL vielen Dank, für diese Videoreihe, die ist echt gut, jetzt weiß ich, woran ich zu arbeiten habe und verstehe auch, was ihre meintet mit mir fehlen die Grundkenntnisse. Vielen Dank, für eure Hilfe!
Antworten