首页 > 解决方案 > “‘numpy.ndarray’对象不可调用”在我的机器学习代码中

问题描述

我想用一个函数绘制两个 ml 模型的学习曲线。

def Learning_Curves(estimator,data1=input_data,data2=output_data,cv=5,train_sizes=train_sizes):
    train_sizes,train_score,validation_score=learning_curve(estimator,data1,data2,cv=cv,train_sizes=train_sizes,shuffle=True)
    mean_train_score=-train_score.mean(axis=1)
    mean_validation_score=-validation_score(axis=1)
    sns.lineplot(train_sizes,mean_train_score)
    sns.lineplot(train_sizes,mean_validation_score)
    plt.ylim(0,40)

plt.figure(figsize = (16,5))   
for model,i in zip([LinearRegression(),RandomForestRegressor()],[1,2]):                 
    plt.subplot(1,2,i)
    Learning_Curves(model)

无法理解错误是什么。

标签: pythonnumpymachine-learning

解决方案


你似乎忘记validation_score.mean在这里打电话了:

mean_validation_score = -validation_score(axis=1)

您也可以替换此行:

for model,i in zip([LinearRegression(),RandomForestRegressor()],[1,2]):

有了这个

for i, model in enumerate((LinearRegression(),RandomForestRegressor()), start=1):

推荐阅读