我试图通过特征预测价格。我选择了一个非常简单的模型,但它的工作原理很奇怪。损失函数非常高,我看不出问题出在哪里。
这是我的模型:
# define base model
def baseline_model():
# create model
model = Sequential()
model.add(Dense(62, input_dim = 62, kernel_initializer='normal', activation='relu'))
model.add(Dense(31, kernel_initializer='normal', activation='relu'))
model.add(Dense(15, kernel_initializer='normal', activation='relu'))
model.add(Dense(1, kernel_initializer='normal'))
# Compile model
model.compile(loss='mean_squared_error', optimizer='adam')
return model
Run Code Online (Sandbox Code Playgroud)
这就是我准备数据的方式:(一次热,我拆分了所有数据以进行训练和测试)
df = encode_onehot(dataframe, cols=['Shape', 'Cut', 'Color', 'Clarity', 'Polish', 'Symmetry', 'Culet', '\tFluorescence'])
dataset = df.values
X = dataset[1:,4:66]
Y = dataset[1:,2]
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.25, random_state=42)
Run Code Online (Sandbox Code Playgroud)
最后,培训:
baseline_model().fit(X_train, y_train, epochs=10, batch_size=64)
scores = baseline_model().evaluate(X_test, y_test, verbose=0)
print(baseline_model().summary())
Run Code Online (Sandbox Code Playgroud)
结果非常可悲:
Epoch 1/10
149767/149767 …Run Code Online (Sandbox Code Playgroud) 我正在尝试将数据帧转换为 numpy 数组:
dataset = myset.values
X = np.array(dataset[0:,6:68], dtype="float32")
X[0:5,0:]
Run Code Online (Sandbox Code Playgroud)
这是一个错误:
-----------------------------------------------------------------------
----
ValueError Traceback (most recent call last)
<ipython-input-162-4b67608047d1> in <module>()
1 dataset = myset.values
----> 2 X = np.array(dataset[0:,6:68], dtype="float32")
3 X[0:5,0:]
ValueError: could not convert string to float: '62,6'
Run Code Online (Sandbox Code Playgroud)
哪里有问题?