Как прогнозировать после обучения?

#machine-learning #keras #deep-learning

#машинное обучение #keras #глубокое обучение

Вопрос:

мои данные csv здесь: https://storage.googleapis.com/download.tensorflow.org/data/abalone_train.csv Я хочу предсказать «Возраст» по другим столбцам. Код обучения здесь:

 import pandas as pd
import numpy as np
# Make numpy values easier to read.
np.set_printoptions(precision=3, suppress=True)
import tensorflow as tf
from tensorflow.keras import layers
from tensorflow.keras.layers.experimental import preprocessing
abalone_train = pd.read_csv("https://storage.googleapis.com/download.tensorflow.org/data/abalone_train.csv", header=None, 
names=["Length", "Diameter", "Height", "Whole weight", "Shucked weight","Viscera weight", "Shell weight", "Age"])
abalone_train.head()
abalone_features = abalone_train.copy()
abalone_labels = abalone_features.pop('Age')
abalone_features = np.array(abalone_features)
abalone_features
abalone_model = tf.keras.Sequential([
layers.Dense(64),
layers.Dense(1)
])

abalone_model.compile(loss = tf.losses.MeanSquaredError(),optimizer = tf.optimizers.Adam())
abalone_model.fit(abalone_features, abalone_labels, epochs=10)
  

Вывод:

Эпоха 1/10 104/104 [==============================] — 0s 1 мс/шаг — потеря: 63.1474 Эпоха 2/10 104/104 [==============================] — 0s 924us/шаг — потеря: 11.8933 Эпоха 3/10 104/104 [==============================] — 0s 920us / шаг — потеря: 8.4037 эпох 4/10 104/104 [==============================] — 0s 885us / шаг — потеря: 7.9656 Эпоха 5/10 104/104 [==============================] — 0s 900us /шаг — потеря: 7.5481 Эпоха 6/10 104/104 [==============================] — 0s 908us /шаг — потеря: 7.2339 Эпох 7/10 104/104 [==============================] -0s 926us / шаг — потеря: 6,9871 эпоха 8/10 104/104 [==============================] — 0s 919us / шаг — потеря: 6.7886 Эпоха 9/10 104/104 [==============================] — 0s 956us /шаг — потеря: 6.6482 Эпоха 10/10 104/104 [==============================] — 0s 953us / шаг — потеря: 6.5404История в 0x7f20abb1a518>

Теперь я хочу загрузить другой csv-файл с пустым столбцом «Возраст» и посмотреть прогноз, но я застрял. Я получил несколько уроков, но на всех уроках до этапа «эпоха». После этапа «эпоха», как я могу импортировать свой CSV-файл «пустой возраст» и посмотреть «Прогнозы возраста»?

Комментарии:

1. model.predict(new_data) ?

2. #да, это сработало, я также добавил этот код: оценка = norm_abalone_model.predict(abalone_predict, verbose= 0) # Сохранить прогноз в формате csv np.savetxt(«score.csv», оценка, разделитель =»,») #проверить, есть ли выход score.csv в Google colab !ls #Загрузитьпрогнозируемые данные в виде файлов csv. загрузить (‘score.csv’)

Ответ №1:

Согласно документации (https://www.tensorflow.org/api_docs/python/tf/keras/Sequential#predict ), у Sequential объекта есть predict метод. Входные данные могут быть:

  • Массив NumPy
  • Тензорный тензор или список тензорных
  • набор tf.data данных

Вы можете использовать abalone_model.predict(YourData) , где YourData находится один из упомянутых типов данных. Конечно, вы можете использовать predict() свои собственные обучающие данные, которые, вероятно, будут перегружены. Попробуйте использовать несвязанный набор проверок или тестов, если он предоставлен, или разделить доступный набор данных. Здесь вы можете найти хороший пример для решения проблем регрессии, подобных той, с которой вы столкнулись: https://www.tensorflow.org/tutorials/keras/regression