python-3.x - ANN回归中的sklearn.model_selection.cross_val_score
问题描述
当我运行以下代码时,我收到
ValueError:模型未配置为计算精度。您应该传递
metrics=["accuracy"]
给该model.compile()
方法。
我的代码:
def create_network():
model = models.Sequential()
model.add(layers.Dense(64, activation='relu', input_shape=(X.shape[1],)))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(1))
model.compile(optimizer='rmsprop',
loss='mse',
metrics=['mae'])
return model
from keras.wrappers.scikit_learn import KerasClassifier
neural_network = KerasClassifier(build_fn=create_network,
epochs=100,
batch_size=10,
verbose=1)
X=feature_normalization(X)[0]
from sklearn.model_selection import cross_val_score
cross_val_score(neural_network, X, y, cv=4)
但我不能在回归模型中使用准确性。cross_val_score
如果不从头开始进行 k 折交叉验证,我如何仍然可以使用任何线索,如下所示:
for i in range(k):
print(f'Processing fold # {i}')
X_test = X[i * num_val_samples: (i+1) * num_val_samples]
y_test = y[i * num_val_samples: (i+1) * num_val_samples]
X_train = np.concatenate([X[:i * num_val_samples],
X[(i+1) * num_val_samples:]],
axis=0)
y_trains = np.concatenate([y[:i * num_val_samples],
y[(i+1)*num_val_samples:]],
axis=0)
model = create_network()
model.fit(X_train,
y_train,
epochs=num_epochs,
batch_size=10,
verbose=1)
val_mse, val_mae = model.evaluate(X_test, y_test, verbose=1)
all_scores.append(val_mae)
解决方案
Cross_val_score 函数无法识别 keras 模型中使用的指标,默认情况下为 None,尝试将 score='accuracy' 添加到 cross_val_score
推荐阅读
- java - 如何将 SSL 客户端证书与 Apache commons http 客户端一起使用
- python - 从路径名创建树结构
- python - 如何向电报机器人发送有关最近餐馆的位置?
- python - Tkinter,Canvas converting/saving details
- typescript - 如何遍历 TypeScript 枚举?
- java - 从 SpringBootTest 注解读取的属性为 null 而不是配置值
- c# - .Net如何检测是否在执行程序集中通过代码手动抛出内置异常
- ansible - 如何遍历两个列表以组合主机和端口
- java - 如何在 Spring Boot 应用程序中动态注入和使用多个数据源?
- ionic-framework - 发布应用程序的更新版本时,是否在 ios 上保留离子存储