Ich bin neu in Machine Learning und Sklearn. Also, ich habe die folgende Frage:Wie kann ich meine eigenen Daten in sklearn verwenden - Python3
Ich versuche, eine lineare Regression zu tun, aber ich möchte meine eigenen Daten aus einigen .txt
Datei verwenden. Ich habe einige Daten mit einer Tabelle mit 3 Spalten.
Dann würde Ich mag wissen, wie kann ich diesen folgenden Code zu ändern, dass ein Beispiel aus http://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html
Dann änderte ich ein bisschen den Code in dem Beispiel vor und erfand ich einige Daten, ist, dass eine korrekte Weg, es zu tun? Verwenden Sie so etwas wie X
und Y
. Und dann würde ich auch wissen, wie in der Gleichung: x_train = x [:2]
, hat die [:2]
etwas Einfluss auf meine Vorgehensweise. Ich habe diesen Teil nicht wirklich bekommen.
from sklearn import linear_model
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error, r2_score
#X has to be numpy array not list.
x=([0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10])
y=[5,3,8,3,4,5,5,7,8,9,10]
x_train = x [:2]
x_test = x [2:]
y_train = y[:2]
y_test = y[2:]
regr = linear_model.LinearRegression()
regr.fit (x_train,y_train)
y_pred = regr.predict(x_test)
#coefficient
print('Coefficients: \n', regr.coef_)
#the mean square error
print("Mean squared error: %.2f" % mean_squared_error(y_test, y_pred))
print('Variance score: %.2f' % r2_score(y_test, y_pred))
plt.scatter(x_test, y_test, color='black')
plt.plot(x_test, y_pred, color='blue', linewidth=3)
plt.axis([0, 20, 0, 20])
plt.show()
Vielen Dank!
EDIT 1
Mit Hilfe mich auf dieser Webseite erhalten hat, habe ich versucht, einen Code zu machen, einen Anfall meiner eigenen Daten zu erzeugen, aber ich bin nicht in der Lage, die richtige Passform zu erhalten, so wenn jemand Zeit hat, mir ein bisschen mehr zu helfen oder mir zu sagen, wenn ich etwas falsch mache.
Der Code, den ich mit den Bildern verwende ich bin immer
import pandas as pd
import numpy as np
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn import linear_model
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt
data = pd.read_csv('data.txt')
#x = data[['col1','col2']]
x = data[['col1']]
y = data['col3']
#convert to array to fit the model
x=np.asarray(x)
y=np.asarray(y)
# define the KFolds
kf = KFold(n_splits=2)
#define the model
regr = linear_model.LinearRegression()
# use cross validation and return the r2 score for each Fold
#if you want to return other scores than r2, just change the scoring in cross_val_score
scores = cross_val_score(regr, x, y, cv= kf, scoring= 'r2')
print(scores)
for train_index, test_index in kf.split(x):
print("TRAIN:", train_index, "TEST:", test_index)
X_train, X_test = x[train_index], x[test_index]
y_train, y_test = y[train_index], y[test_index]
plt.scatter (X_test, y_test)
plt.show()
ich hier setzen ein Bild von dem, was aussieht wie meine Daten und was ich von ZUG UND TEST erhalten
dann habe ich einige die Anpassungsprozedur, aber ich bin nicht sicher, ob es korrekt ist:
regr.fit (X_train, y_train)
y_pred = regr.predict(X_test)
print(y_pred)
plt.scatter(X_test, y_test, color='black')
plt.plot(X_test, y_pred, color='blue', linewidth=3)
plt.show()
Und ich bekomme eine völlig fremde Passform.
Ich verstehe nicht, warum ich es bekomme, wenn wenn ich dies mit MINUIT tat, meine Passform funktionierte. Also, wenn jemand ein paar Tipps hat, um mir zu helfen.
Warum scheint das Programm nicht meine Daten von "y" zu benutzen, um TRAIN- oder TEST-Proben zu machen?
können Meine Daten hier taked werden: https://www.dropbox.com/sh/nbbsc0fqznkwxvt/AAD-u6lM4orJOGrgIyz0o8B9a?dl=0 Für mich
die einzige wichtig ist col1 und col3 sollten die col2 ignoriert werden. Dann möchte ich in diese Daten passen und den Wert meiner Passform extrahieren. Ich weiß, dass es eine Zeile ist, die zu diesen Daten passt.
Vielen Dank!
Dies ist zu breit einsetzbar und einfach ohne eigene Versuche der anderen Code zeigt. Lesen Sie die Dokumentation, um die benötigten Datenformen zu verstehen. Überprüfen Sie dies, indem Sie '' diabetes_X.shape''' und co ausdrucken. Dann lies numpy oder pandas docs, um mehr über das Lesen von Daten in numplige Arrays/Datenrahmen zu erfahren. (es hängt von Ihrer txt-Datei ab, die nicht angegeben ist; weiter ist Ihre Beschreibung über diese Datei informell) – sascha
@sascha Ich habe im Internet nach dem gesucht. Ich konnte keine Erklärung finden, um zu verstehen, wie ich meine eigenen Daten in einer linearen Regression verwenden kann. Alle Beispiele verwenden einen Datensatz, der nicht von der eigenen Person stammt. Ich kann meine Datensätze hier nicht bereitstellen. Es sind keine öffentlichen Informationen. Ich habe nur eine TXT-Datei mit 3 Spalten über einige Messungen. Sie können einen Link anbieten, wo ich eine Erklärung finden kann, wie ich mein eigenes Dataset hochladen kann. Ihre Antwort ist überhaupt nicht hilfreich. Aber trotzdem danke! – Gabriela
** Alles was du brauchst ** ist in der Dokumentation enthalten! sklearn's für die benötigten Formen. Dann müssen Sie nur Arrays mit den richtigen Formen erstellen. Wie du es machst ist egal. Numpy und Pandas bieten beide Lesern. Seien Sie darauf gefasst, dass diese Frage geschlossen wird, wenn Sie keine hilfreichen Informationen zur Verfügung stellen (die gegebene Antwort erwähnt einen Ansatz)! (Es gibt unendlich viele verschiedene Kodierungen von textbasierten 3-Spalten-Datensätzen!) – sascha