使用 python 中的统计数据计算 ANN 预测的 R 值

Calculating R value for ANN predictions using stats in python

我已经在数据帧上使用 tensorflow keras 实现了用于回归的 ann。我正在尝试为预测计算不同的准确度指标。以下是我用于计算准确度指标的部分代码。

    ypred = model_sel.predict(xscale_val)
    ypred1 = scaler_y.inverse_transform(ypred) 
    print("x")
    plt.plot(yact.values)
    plt.plot(ypred1.tolist( ))
    # plt.show()
    ANN_RMSE = sqrt(mean_squared_error(yact.values,ypred1.tolist()))
    ANN_R2 = r2_score(yact.values,ypred1.tolist())
    ANN_MAE = mean_absolute_error(yact.values,ypred1.tolist())
    print("type",type(yact),type(yact.values),type(ypred1),type(ypred1.tolist()))
    print(yact.values)
    print("pred",ypred1.tolist())
    ANN_R = stats.pearsonr(yact.values,ypred1)

我无法获得预测的皮尔逊相关值。我是 python 的初学者,如果您能提供有关我做错了什么以及如何纠正这个问题的信息,这将对我有所帮助。

错误如下,我看到了。

  File "c:\Users\DELL\journalPub\models.py", line 166, in ann_model_results
    ANN_R = stats.pearsonr(yact.values,ypred1)
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\scipy\stats\stats.py", line 4034, in pearsonr
    xmean = x.mean(dtype=dtype)
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\numpy\core\_methods.py", line 160, in _mean
    ret = umr_sum(arr, axis, dtype, out, keepdims)
TypeError: No loop matching the specified signature and casting was found for ufunc add

我能够通过对代码进行以下修改来解决此问题:

ANN_R = stats.pearsonr(yact.values.flatten(),ypred1.flatten())