У меня есть таблица данных, и два ее столбца создают график, который выглядит следующим образом. Обратите внимание, что ось Y находится в журнале.
Не против случайных кандзи. Это уже исправлено
Я подумал, что было бы неплохо показать это отношение с помощью нелинейной регрессии, созданной методом машинного обучения с использованием TF и Keras. Код выглядит так:
def createModel():
model = Sequential()
model.add(Dense(50, activation='relu', input_dim=1))
model.add(Dense(25, activation='relu', input_dim=1))
model.add(Dense(1, activation='linear'))
return model
model1 = createModel()
model1.compile(SGD (lr=0.0001),loss='mse')
print(model1.summary())
Taisha_Learn=model1.fit(Heisei_Learn["竣工年月"],Heisei_Learn["平成27年まで詰めた堆砂容量_Percent"],batch_size=50, epochs=1000, validation_split=(0.08), verbose=2)
predictions = model1.predict(Heisei_Learn["竣工年月"], verbose=1)
plt.plot(Heisei_Learn["竣工年月"],predictions)
# plt.legend([ 'Predictated Y'])
plt.show()
Модель выполняет ужасно. Потеря почти не уменьшается. Впоследствии это предсказание.
Абсолютно ужасный прогноз
Я уже поиграл с другими оптимизаторами (Adam, RMSprop), Learning Rates и Batch-Sizes, но без положительного эффекта.
Я подумал, может ли это быть проблема с данными из-за выбросов. Я только что отфильтровал его для NaNs в соответствующем столбце.
Heisei = pd.read_excel("日本ダム/平成27.xlsx")
Heisei_Learn=Heisei.dropna(subset=['平成27年まで詰めた堆砂容量_Percent'])
Я действительно перепробовал много изменений, но обычно потеря выглядит примерно так:
Кошмарная потеря
Должен быть лучший способ получить реальную нелинейную регрессию из данных. Есть ли что-то о них, я должен изменить? Снова, пожалуйста, взгляните на график, размещенный в оригинальном вопросе. Меня это бесит ... - ...
Есть ли кто-нибудь порядочный, чтобы помочь кому-то глупому, как я?