python - 在 Python 中拟合正弦余弦曲线
问题描述
我正在尝试从 R 过渡到 Python 以进行时间序列分析 - 但我发现它很难。下面的代码是我在 R 中使用的 - 将正弦曲线回归到具有已知周期的某些数据上。
year <- c(0:100)
lm(data~sin(2*pi*year/15)+cos(2*pi*year/15))
现在我想在 Python 中做同样的事情我遇到了很长的方法,包括进行初始猜测然后优化等。实现可比结果的最简单方法是什么?
解决方案
我没有得到你正在寻找的东西,lm 意思是线性模型,你可以在 sklearn 中尝试线性回归,如下所示:
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
year = np.arange(0, 100, 1)
year = np.reshape(year, (1, -1))
year_predict = np.arange(100, 200, 1)
year_predict = np.reshape(year_predict, (1, -1))
y = np.sin(2*np.pi*year/15)+np.cos(2*np.pi*year/15)
lm = LinearRegression()
lm.fit(year, y)
y_pred = lm.predict(year_predict)
plt.plot(year[0,:], y[0,:])
plt.plot(year_predict[0,:], y_pred[0,:])
plt.ylabel('np.sin(2*pi*year/15)+np.cos(2*pi*year/15)')
plt.show()
您可以在此处找到更多信息:https ://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html
如果您有不清楚的地方,请写在这里。我们可以帮助你
推荐阅读
- r - 如何从概率矩阵创建 1 0 矩阵
- javascript - JavaScript 错误:拒绝将字符串评估为 JavaScript,因为“unsafe-eval”不是允许的脚本来源
- java - 未创建会话:此版本的 ChromeDriver 仅支持 Chrome 版本 83
- excel - 为什么 .CopyPicture 返回的分辨率与手动复制图片不同?
- javascript - 视差滚动-上一页的文本显示在下一页的顶部
- javascript - Javascript:如何等待评估函数?
- postgresql - Docker:无法从 Docker 容器连接到远程 Postgres 服务器
- c - 我使用 ENTER 编写了一个程序来停止该程序,但它不工作
- scala - 将 CSV 从本地机器加载到在 Docker 上运行的 spark
- rest - 遵循 RFC 6570 处理 AND 和 OR 逻辑的 API URI 格式