Я пытаюсь использовать нейронную сеть для прогнозирования цен на дома. Вот как выглядит верхняя часть набора данных:
Price Beds SqFt Built Garage FullBaths HalfBaths LotSqFt
485000 3 2336 2004 2 2.0 1.0 2178.0
430000 4 2106 2005 2 2.0 1.0 2178.0
445000 3 1410 1999 1 2.0 0.0 3049.0
...
Я использую функцию активации ReLU. Когда я пытаюсь оценить свою модель на своих тестовых данных, я получаю это TypeError: unsupported operand type(s) for +=: 'Dense' and 'str'
.
Я посмотрел типы столбцов из моего исходного фрейма данных, и все выглядит нормально.
print(df.dtypes)
## Output
#Price int64
#Beds int64
#SqFt int64
#Built int64
#Garage int64
#FullBaths float64
#HalfBaths float64
#LotSqFt float64
#dtype: object
Я не уверен, что я что-то испортил в своей нейронной сети, чтобы вызвать эту ошибку. Любая помощь приветствуется! Вот мой код для справки.
- Подготовьте данные для сети
dataset = df.values
X = dataset[:, 1:8]
Y = dataset[:,0]
## Normalize X-Values
from sklearn import preprocessing
min_max_scaler = preprocessing.MinMaxScaler()
X_scale = min_max_scaler.fit_transform(X)
X_scale
##Partition Data
from sklearn.model_selection import train_test_split
X_train, X_val_and_test, Y_train, Y_val_and_test = train_test_split(X_scale, Y, test_size=0.3)
X_val, X_test, Y_val, Y_test = train_test_split(X_val_and_test, Y_val_and_test, test_size=0.5)
print(X_train.shape, X_val.shape, X_test.shape, Y_train.shape, Y_val.shape, Y_test.shape)
- Начать построение модели
from keras.models import Sequential
from keras.layers import Dense
model = Sequential(
Dense(32, activation='relu', input_shape=(7,)),
Dense(1, activation='linear'))
model.compile(optimizer='sgd',
loss='mse',
metrics=['mean_squared_error'])
model.evaluate(X_test, Y_test)[1] ##Type Error is here!