tiaya01 2022-03-05 15:07 采纳率: 85.7%
浏览 83
已结题

pycharm运行不出答案,安装插件了。以前可以运行,代码没有错误

img


这是代码


'''非线性回归'''
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import numpy as np
from numpy import pi
from sklearn.metrics import mean_squared_error, r2_score

def func(x,a,b,c):
    return a*np.sin(2*pi*x/12+b)+c

x=np.linspace(1,12,12)
y_max=[17, 19, 21, 28, 33, 38, 37, 37, 31, 23, 19, 18]
y_min=[-62, -59, -56, -46, -32, -18, -9, -13, -25, -46, -52, -58]

print('时间与最高温度的相关系数矩阵:\n',np.corrcoef(x,y_max)) #计算相关系数
print('时间与最低温度的相关系数矩阵:\n',np.corrcoef(x,y_min)) #计算相关系数

plt.figure(1)
plt.scatter(x,y_max,color='red',marker='.',label='Max')
plt.scatter(x,y_min,color='blue',marker='*',label='Min')
plt.legend(loc=2)
plt.xlabel('Month')
plt.ylabel('Temperature')
plt.show()

popt1,pcov1=curve_fit(func,x,y_max)
print('最高温度的拟合系数=',popt1)
popt2,pcov2=curve_fit(func,x,y_min)
print('最高温度的拟合系数=',popt2)

xt=np.linspace(1,12,120)
yhat1=func(xt,*popt1)
yhat2=func(xt,*popt2)
yh1=func(x,*popt1)
yh2=func(x,*popt2)

er1=mean_squared_error(y_max,yh1) #计算均方差
er2=mean_squared_error(y_min,yh2) #计算均方差
print('最高温度的均方差=',er1)
print('最高温度的均方差=',er2)
rt1=r2_score(y_max,yh1) #计算R方
rt2=r2_score(y_min,yh2) #计算R方
print('最高温度的R2=',rt1)
print('最低温度的R2=',rt2)

plt.figure(2)
plt.scatter(x,y_max,color='red',marker='.',label='Max')
plt.scatter(x,y_min,color='blue',marker='*',label='Mix')
plt.xlabel('Month')
plt.ylabel('Temperature')
plt.plot(xt,yhat1,color='red',linestyle='dashed',label='Max regression')
plt.plot(xt,yhat2,color='blue',label='Min regression')
plt.legend(loc=2)
plt.show()

  • 写回答

1条回答 默认 最新

  • 丨封尘绝念斩丨 2022-03-05 15:11
    关注

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月16日
  • 已采纳回答 3月8日
  • 创建了问题 3月5日

悬赏问题

  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)