ML Model дает мне огромные результаты после тренировки - PullRequest
0 голосов
/ 12 марта 2020

У меня довольно маленький набор данных для обучения здесь , и я тренирую модель, как показано ниже: -

import numpy as np
import pandas as pd

from sklearn import preprocessing

data = pd.read_csv("house.csv")
x=data.iloc[:,0:3]
y=data["price"]
sd=preprocessing.scale(x)
#print(sd)
#print(data.head())
#
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam

model = Sequential()
model.add(Dense(1, input_shape=(3,)))
model.compile(Adam(lr=0.2), loss="mean_squared_error", metrics=["mean_squared_error"])
model.fit(x,y,epochs=50)

yp=model.predict(sd)
data ["pred"] = yp

Я получаю странные результаты от обучения На сколько я увеличиваю скорость обучения или эпохи

> Epoch 50/50 32/47 [===================>..........] - ETA: 0s - loss:
> 109420707840.0000 - mean_squared_error: 109420707840.0000 47/47 
>[==============================] - 0s 0us/step - loss:
> 103942317426.3830 - mean_squared_error: 103942316032.0000

Даже без предварительной обработки я все еще получаю некоторые необоснованные цифры!

1 Ответ

0 голосов
/ 12 марта 2020

Вы обучаете свою модель не по предварительно обработанным данным, а по необработанным данным, а затем оцениваете их по предварительно обработанным данным. Данные должны иметь одинаковые масштабы во время обучения и тестирования.

Может быть, распечатать статистику (диапазон, среднее) переменной интереса («цена»). Я предполагаю, что цель состоит в том, чтобы предсказать цены на жилье. Я предполагаю, что единица цен на жилье - доллары, так что это будут большие цифры. В случае, если ваша зависимая переменная велика, даже небольшие относительные ошибки могут привести к большим потерям, особенно с MSE.

Я бы порекомендовал также нормализовать данные о ценах и обучить модель на масштабированных версиях данных x, y

Уменьшается ли потеря как минимум во время обучения?

Надеюсь, это немного поможет!

...