[PYTHON] Erstellen Sie ein Multi-Output-Modell für die Regressionsanalyse [Anfänger]

Was ich mit maschinellem Lernen versuchen möchte, ist eine KI zu erstellen, die mehrere Antworten gibt. Ich habe es geschafft, es so zu verschieben, also habe ich es als Memorandum veröffentlicht

Testumgebung

Software Ausführung
Google Colaboratory 2020-10-01

Implementierungscode

Modell-

def build_model():
  inputs = layers.Input(shape=(len(train_dataset.keys()),))
  x = layers.Dense(64, activation='relu')(inputs)

  a = layers.Dense(64, activation='relu')(x)
  output_a = layers.Dense(1, name='bmi')(a)

  b = layers.Dense(64, activation='relu')(x)
  output_b = layers.Dense(1, name='life_expectancy')(b)

  model = keras.Model(inputs=inputs, outputs=[output_a, output_b], name='Health')

  model.compile(
      optimizer=tf.keras.optimizers.RMSprop(0.001),
      loss_weights=[1., 0.8],
      loss=['mse', 'mse'],
      metrics=['mae', 'mse'])

  return model

Plötzlich ist der Code, den ich tatsächlich ausprobiert habe, oben Es scheint, dass "keras.Sequential", das häufig im Beispielcode verwendet wird, nur eine Ausgabe hat. Wenn Sie mehrere Dinge gleichzeitig anfordern möchten, müssen Sie anscheinend das Modell mit der "funktionalen API" definieren Zum Beispiel die Vorhersage der Anzahl von "Retweets" und "Likes" aus dem Inhalt des Tweets.

Es scheint, dass Sie die Ausgabe beliebig erhöhen können, indem Sie das Ausgabeergebnis der Ebene, die hinzugefügt werden soll, in einer Variablen speichern und als Array an das Argument "Ausgaben" von "Keras.Model" übergeben.

Es scheint auch, dass Sie die Auswertungsmethode für jede Ausgabe ändern können, indem Sie die Verlustfunktion im Array für "Verlust" angeben.

Lehrerdaten

height weight bmi sex birthday life_expectancy
161 121 47 female 1982-02-01 40
154 55 23 female 2005-08-09 72
172 64 22 male 1976-09-21 37

Ich habe fiktive Daten erstellt, die Größe, Gewicht und BMI sowie die Lebenserwartung miteinander verknüpfen Erstellen Sie ein Modell, das den BMI und die Lebenserwartung anhand von Größe, Gewicht, Geschlecht und Geburtsjahr vorhersagt

Ausbildung

model.fit(train_data, [train_label_a, train_label_b], epochs=100)

Übergeben Sie beim Training die Daten und Lehrerdaten als Array an "fit" Es scheint, dass, wenn Sie es im Wörterbuchformat übergeben, die Rückmeldung des Fehlers nicht gut geht und Sie nicht lernen können Ein gängiges Bildanalysesystem verarbeitet große Bilddaten gut mit "tf.data.Dataset", dies scheint jedoch auch ein Wörterbuchtyp zu sein, sodass das Training mit mehreren Ausgabemodellen fehlgeschlagen ist. Wenn Sie mit "tf.data.Dataset" übergeben, wird es außerdem mit dem Daten- und Beschriftungssatz übergeben, sodass es noch mehr Schimpansen gibt

Nachtrag: Beim Übergeben von Daten mit tf.data.Dataset konnte ich Feedback geben, indem ich den Schlüssel des Wörterbuchs mit dem Ausgabenamen des Modells abgleichen konnte.

ds = tf.data.Dataset.from_tensor_slices((normed_train_data, {"bmi": train_labels.bmi, "life_expectancy": train_labels.life_expectancy}))
ds = ds.batch(BATCH_SIZE)

model.fit(ds, epochs=100)

Bonus

Es ist der gesamte Code, den ich beim Schreiben und Verschieben überprüft habe Veröffentlicht am Colaboratory

Problem vorhersagender BMI und Lebenserwartung zurückgeben

schließlich

Ich habe versucht, über maschinelles Lernen zu schreiben, aber ich bin im Gori-Nebel, ohne es zu wissen. Bitte verzeihen Sie mir, obwohl das Ende des Artikels nur "~ scheint" ist.

Die Genauigkeit des maschinellen Lernens selbst ist unvorstellbar, und wenn die Trainingsdaten keine Verzerrung aufweisen, scheint es, dass selbst eine kleine Datenmenge eine beträchtliche Vorhersagegenauigkeit ergibt. Außergewöhnliche Dinge und Muster, die nicht mit Lerndaten gesegnet sind, ergeben seltsame Zahlenwerte. Wie viel können wir also packen? Ich frage mich, ob es der Unterschied zu Bonjin sein wird. Ich fühlte, dass

Referenz

Erste Schritte mit Keras mit funktionaler API

Recommended Posts

Erstellen Sie ein Multi-Output-Modell für die Regressionsanalyse [Anfänger]
Multiple Regressionsanalyse mit Keras
Algorithmus für maschinelles Lernen (multiple Regressionsanalyse)
Datenanalyse zur Verbesserung von POG 3 ~ Regressionsanalyse ~
Ausgabe Anfänger
[scikit-learn, matplotlib] Multiple Regressionsanalyse und 3D-Zeichnung
Poisson-Regressionsanalyse
Methode der Regressionsanalyse
2. Multivariate Analyse in Python 2-1. Multiple Regressionsanalyse (Scikit-Learn)