Что может быть причиной того, что выходные данные моей модели ML отражают входные данные? - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь выяснить, почему выходные данные моей модели ML отражают входные данные. Я использую очень простую модель, определенную с помощью Pytorch:

class LinearRegressionModel(torch.nn.Module): 
    def __init__(self, input_dim, output_dim): 
        super(LinearRegressionModel, self).__init__() 
        self.linear = torch.nn.Linear(input_dim, output_dim) 
    def forward(self, x): 
        y_pred = self.linear(x) 
        return y_pred 

Как вы можете видеть на этом изображении ( Целевые данные и данные объектов модели ML ), входные данные нормализуются с использованием пакет Sklearn MinMaxScaler. Я использую MSELoss в качестве критерия, а Адам - ​​в качестве оптимизатора.

Данные обрабатываются с 70% данных при lr = 0,1. После обучения в 2000 эпох я беру выходные данные и выполняю обратное преобразование, чтобы изменить масштаб data.

train_predict = model(dataX)
data_predict = train_predict.data.numpy()
dataY_plot = dataY.data.numpy()

trainPredict_dataset_like = np.zeros(shape=(len(target_data_reshaped), 2) )
trainPredict_dataset_like[:, 1] = data_predict[:,0]
# inverse transform and then select the right field
data_predict = sc.inverse_transform(trainPredict_dataset_like)[:,1]
trainPredict_dataset_like[:, 1] = dataY_plot[:,0]
dataY_plot = sc.inverse_transform(trainPredict_dataset_like)[:,1]

Как видно из выходного представления ( Вывод модели ML с ожидаемым и полученным значением ), я провожу модель через весь набор данных и отметьте пунктирной красной линией точку, где заканчиваются данные поезда и начинаются тестовые данные.

Почему прогнозируемый выходной сигнал отражает данные объекта? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...