#python #tensorflow #keras #lightgbm
#python #tensorflow #keras #lightgbm
Вопрос:
Постановка задачи
Недавно я пытался обучить регрессионную модель для данных временных рядов. Когда я тренировался на почасовой точке данных (около 7000 точек данных), обе модели показали хорошие результаты.
Я выполнил нормализацию для каждой функции. затем конвейер данных подается в модели.
Следующая картина подготовлена на основе почасовых данных.
Кроме того, когда я тренировался на ежедневной точке данных (около 400 точек данных), усредняя почасовые данные, обе модели казались недостаточными.
Следующая картина подготовлена на основе ежедневных данных.
Текущая системная информация
- Набор данных: Набор данных представляет собой набор данных о качестве воздуха из UCI
- Пакеты: То, что я использую, это
LightGBM
и LSTM ofKeras
- ЛГБМ
параметры и модель
params = {
'boosting_type': 'gbdt',
'objective': 'regression',
'metric': {'l2', 'l1'},
'num_leaves': 40,
'learning_rate': 0.01,
'feature_fraction': 0.9,
'bagging_fraction': 0.8,
'bagging_freq': 5,
'verbose': 0
}
gbm = lgb.train(params, lgb_train,
num_boost_round=300, # 300 num_iterations is not enough?
valid_sets=lgb_eval,
early_stopping_rounds=5)
- RNN
параметры и модель
# design network
model = Sequential()
# X_train_rnn is the input dataframe
model.add(LSTM(rnn_hidden_neurons, activation='relu', kernel_initializer='glorot_uniform', input_shape=(X_train_rnn.shape[1], X_train_rnn.shape[2])))
model.add(Dense(1))
model.compile(loss='mae', optimizer='adam')
history = model.fit(X_train_rnn, y_train_walk[labelY].values,
epochs=50,
batch_size=32,
validation_data=(X_test_rnn, y_test_walk[labelY].values),
callbacks=callbacks, # Early stopping
verbose=2,
shuffle=False)
Мой вопрос
Почему я получил результат недостаточной подгонки? Это из-за слишком малого количества точек данных?
Есть идеи? Заранее спасибо!
Комментарии:
1. Как вы сформулировали вопрос, т. Е. что вы пытались предсказать, используя какие данные? Какие функции вы использовали? Как вы разделили наборы данных для обучения и проверки (т. Е. ранней остановки)? идентичны ли два графика, кроме почасовой и ежедневной модели? Если это так, то, похоже, что в ежедневном случае это вообще не недостаточная подгонка, но вы получаете постоянное предсказание 0 для ежедневной модели
2. Привет @MykhailoLisovyi, я попытался предсказать значение временного ряда определенного признака (например, концентрации бензола). Я использовал пошаговую проверку (обучение: 2 месяца, тест: 1 месяц). Изображения отличаются (почасовые данные от ежедневных данных)
3. Вам нужно будет выяснить, почему в ежедневном случае результат равен 0. Это не недостаточная подгонка в целом, а частный случай, когда кажется, что в обучении ничего не изучено