Короче говоря, у меня есть две матрицы: одна называется t, а другая — y. В каждом из них по 7 столбцов. Допустим, они называются a, b, c, d, e, f и g. Мне хотелось бы получить регрессию от a к a, b к b, ..., g к g для этих двух матриц.
Мне уже удалось это сделать заставить мой алгоритм выполнить регрессию, используя Curve_fit для одного столбца за раз. Но мне бы очень хотелось, чтобы он сделал 7 регрессий за один раз. Думаю, мне следует использовать цикл for, но я не уверен, как это сделать.
В конце концов, я хотел бы сохранить значения k в одном массиве и построить график этого массива. чтобы увидеть тенденцию. К сожалению, я все еще застрял в той части, где мне приходится создавать несколько регрессий одновременно.
Я думаю, что моя проблема чем-то похожа на эту. Выполнение многих итераций `curve_fit` scipy за один раз, но мне не удалось применить его к моему случаю.
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import pandas as pd
file = ('y.xls')
xl = pd.ExcelFile(file)
t = xl.parse('t')
y = xl.parse('y')
y=y.dropna()
t=t.dropna()
def func(x, A, k, C):
return A * np.exp(-k * x) + C
for i in np.arange(0,6):
plt.figure()
plt.plot(t.iloc[:,], y.iloc[:,])
popt, pcov = curve_fit(func, t.iloc[:,], y.iloc[:,], p0=([0,1,0]))
plt.plot(t, func(t, *popt), 'r-',
label='fit: A=%5.2f, k=%5.4f, C=%5.2f' % tuple(popt))
print(popt)
plt.xlabel('t (h)')
plt.ylabel('y')
plt.legend()
plt.show()
Подробнее здесь: https://stackoverflow.com/questions/495 ... ressions-i
Как использовать функцию Curve_fit внутри цикла for для создания нескольких регрессий за один раз в Python? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Установленная Lorentzian Curve перевернута по сравнению с исходными данными
Anonymous » » в форуме C# - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Установленная Lorentzian Curve перевернута по сравнению с исходными данными
Anonymous » » в форуме C# - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-