我有以下代码,我想将所有的指标和分数与模型一起,并将其组合到一个数据帧中。下面的代码只是一个示例,我希望将其他9个模型组合在一起,形成一个数据帧,其中包含10个模型及其分数/指标和执行时间
# Multi-layer Perceptron Regression
from sklearn.neural_network import MLPRegressor
start = time.time()
diamonds_mlp = MLPRegressor()
diamonds_mlp.fit(X_train , y_train)
accuracies = cross_val_score(estimator = diamonds_mlp, X = X_train, y = y_train, cv = 10)
y_pred = diamonds_mlp.predict(X_test)
end = time.time()
print('')
print('---Multi-Layer Perceptron Regression---')
print('Score : %.2f' % diamonds_mlp.score(X_test, y_test))
print(accuracies)
mse = mean_squared_error(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)
rmse = mean_squared_error(y_test, y_pred)**0.5
r2 = r2_score(y_test, y_pred)
print('')
print('MSE : %0.2f ' % mse)
print('MAE : %0.2f ' % mae)
print('RMSE : %0.2f ' % rmse)
print('R2 : %0.2f ' % r2)
print(f"Runtime of the program is {end - start}")发布于 2020-09-24 12:59:55
您可以创建一个序列,我们将使其成为数据帧的行,如下所示:
s = pd.Series({'Model': 'MLPRegressor',
'MSE': mse,
'MAE': mae,
'RMSE': rmse,
'R2' :r2,
'Runtime': end-start})如果您有一个很长的脚本,其中包含您为每个模型发布的代码块(或者正在迭代它们),我会在一开始初始化一个空列表,比如list_of_rows = [],然后在每次测试之后,使用list_of_rows.append(s)将带有度量的系列添加到列表中。然后,在完成所有测试之后,您可以使用df = pd.DataFrame(list_of_rows)构建数据帧。
https://stackoverflow.com/questions/64039664
复制相似问题