(Achtung: Der Autor ist nicht auf dieses Gebiet spezialisiert, daher kann es an Erklärungen oder Fehlern mangeln.) Dieser Artikel bringt die Diskussion über die Implementierung einer einfachen Regressionsanalyse in Keras durcheinander. Das Jupyter-Notizbuch wird auf GitHub veröffentlicht, sodass Sie es ausprobieren können, sobald Sie die Umgebung haben. Für eine einfache Regressionsanalyse verweisen wir auf Udemys [Kikagaku-Stil] künstliche Intelligenz / maschinelles Lernen. Diejenigen, die detaillierte Erklärungen sehen möchten, werden gebeten, daran teilzunehmen. [Kikagaku-Stil] Künstliche Intelligenz / maschinelles Lernen De-Black-Box-Kurs-Anfänger- https://www.udemy.com/course/kikagaku_blackbox_1/learn/lecture/8258758#overview
Klicken Sie hier für Notizbuch Führen Sie SimpleRegressionAnalysis_2.ipynb aus. Die Ausführungsumgebung usw. wird am Anfang des Notizbuchs beschrieben. https://github.com/moriitkys/SimpleRegressionAnalysis
Die Erklärung der einfachen Regressionsanalyse wird auf leicht verständliche Weise wie folgt zusammengefasst. "Eine Zielvariable wird durch eine erklärende Variable vorhergesagt, und die Beziehung zwischen den beiden Variablen wird in Form einer linearen Gleichung Y = aX + b ausgedrückt. Wenn a (Steigung) und b (Y-Abschnitt) bekannt sind, , Y (Gewicht) kann aus X (Größe) vorhergesagt werden. " https://www.albert2005.co.jp/knowledge/statistics_analysis/multivariate_analysis/single_regression
Auch diese Seite erklärt im Detail. Gründliche Erklärung der Regressionsanalyse (Einzelregressionsanalyse) auf leicht verständliche Weise! https://udemy.benesse.co.jp/ai/regression-analysis.html
Unten sehen Sie ein Diagramm, was diesmal zu tun ist.
Eine einfache Regressionsanalyse wird unter Verwendung einer Bibliothek für neuronale Netze namens Keras durchgeführt. Es ist in Python geschrieben und kann auf Tensorflow ausgeführt werden. Diesmal ist es eine einfache Regressionsanalyse Modellerstellung: model=Sequential() model.add() (Achtung: Wird nicht aktiviert) Modellinitialisierung model.init() Beginnen Sie mit dem Training des Modells model.fit() Modell erraten model.prediction() Es wird ein Fluss wie. Der Code ist dieser Teil.
SimpleRegressionAnalysis.ipynb
# Build model
model = Sequential()
model.add(Dense(1, input_shape=(s, ), use_bias=False))
opt = keras.optimizers.Adam(lr=0.04, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0003)
model.compile(optimizer=opt,
loss='mean_squared_error',
metrics=['mae'])
# Start training
history = model.fit(x_normalized, y_normalized, epochs=50, batch_size=20, verbose=1)
Es hat die folgende einfache Form.
Daher hat das Ergebnis von model.summary () auch einen Parameter.
Wenn es sich um eine multiple Regressionsanalyse handelt, sieht sie wie folgt aus.
Infolge des Lernens änderte sich der Verlustwert wie folgt und es scheint, dass er sofort angepasst wurde. Die Anzahl der Epochen liegt auf der horizontalen Achse.
Das Modell des Ergebnisses des Findens eines Modells durch Berechnen, Einstellen und Minimieren der Bewertungsfunktion und das Ergebnis des Findens des Modells durch Keras sind wie folgt.
Die grün dargestellten Punkte sind das Ergebnis von Vermutungen, indem die 98. bis 108. RMs des Immobilienpreisdatensatzes in das Modell der diesmal erstellten einfachen Regressionsanalyse eingegeben wurden. Da es sich um ein gerades Modell handelt, können Sie sehen, dass es auf der geraden Linie erraten wird. Übrigens, wenn Sie Keras verwenden, liegen die Daten im Bereich von 0 bis 1, aber seien Sie vorsichtig, da Sie nicht lernen können, wenn Sie sie normal eingeben (Sie können mit dieser Notebook-Methode nicht lernen). Daher unterscheidet sich der Wert von a auch stark von dem durch die Formel berechneten, aber es scheint, dass beide auf die gleiche Weise an die Daten angepasst werden.
Um die ursprüngliche Absicht nicht zu vergessen, habe ich das Lesen von Daten in Pandas mit einer for-Schleife in SimpleRegressionAnalysis_3.ipynb neu geschrieben. Wenn Sie gerade erst mit maschinellem Lernen beginnen und nicht wissen, was Sie hier tun, nur als Referenz.
SimpleRegressionAnalysis_3.ipynb
with open('boston.csv') as f:
reader = csv.reader(f)
for row in reader:
x_orig.append(row[6])
y_orig.append(row[14])
Es ist so. Artikel können aktualisiert werden.
Referenz https://matplotlib.org/ https://matplotlib.org/3.2.1/api/_as_gen/matplotlib.pyplot.subplot.html https://pandas.pydata.org/pandas-docs/stable/reference/frame.html https://scikit-learn.org/stable/ https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_boston.html#sklearn.datasets.load_boston https://seaborn.pydata.org/ https://keras.rstudio.com/articles/tutorial_basic_regression.html https://www.kaggle.com/xgdbigdata/keras-regression-tutorial https://github.com/KatsuhiroMorishita/machine_leaning_samples https://www.udemy.com/course/kikagaku_blackbox_1/learn/lecture/8258758#overview
Recommended Posts