python-3.x - 如何使用 Constrained np.polyfit 或 curve_fit 学习或查找权重向量并删除所有数据点的异常值?
问题描述
我正在尝试将 a 拟合exponential decay
到一些实验数据并在 numpy 中使用 polyfit。此外,拟合本身是加权的,即每个数据点都有一些与之相关的权重,而polyfit function can find that optimal weights
?
所以最终输出将是coefficient value
每个weight vector
相关数据点的。
另外我想将M
参数限制在 0.9 到 1 和N
-0.001 到 -0.009之间
数据:
t(x) rate(y)
0 0.950
1 0.940
2 0.931
3 0.921
4 0.912
5 0.902
6 0.893
7 0.884
8 0.875
9 0.866
10 0.857
11 0.849
12 0.840
13 0.831
14 0.823
15 0.814
16 0.806
17 0.798
18 0.790
19 0.782
20 0.774
21 0.766
22 0.758
23 0.750
24 0.743
25 0.735
26 0.728
27 0.720
28 0.713
29 0.705
30 0.698
我想拟合最接近该数据的指数曲线。
我的做法:
def fit_exp_linear(x, y):
y = np.log(y)
M, N_log = np.polyfit(t, y, 1)
N = np.exp(N_log)
return M, N
我如何在这里学习每一行的重量?
我想要的最终输出是:M, N and Weights vector of size dim(x)
异常值:
如何使用curve_fit去除这些异常值?
解决方案
推荐阅读
- python - 如何根据列中的数值创建逗号分隔的数字列表
- swiftui - 如何在 SwiftUI 的一个视图中缩放和排列多个 UIBezierPath?
- sql-server - 用于更改登录属性并禁用“强制密码过期”的 SQLCMD 语法
- azure-devops - 在 azure devops 部署期间覆盖 helm 图表中的配置映射
- javascript - 如何在没有确认按钮的情况下提交 Hcaptcha。(2验证码/数据库)
- oracle - 如何覆盖 Oracle Apex 以上传文件
- c# - 来自 Azure 函数中使用的类库的日志消息
- python - Spacy 在指定单词之前查找文本
- ruby-on-rails - 我们可以在 Ruby on Rails 应用程序中使用 SendGrid 模板和 ActionMailer 吗?
- python - 导入portalocker时出现锁文件语法错误