0

したがって、モデルを予測に使用できるようにするには、モデルのパラメーターを考え出す必要があります (係数など)。私の質問が稚拙に聞こえる場合は申し訳ありませんが、私は学んでいます:) 使用される全体的なモデルは、y=p1*np.log(x)+p2 のようになります。問題は、 p1 と p2 が popt[0] と popt 1で表されるかどうかです。log(x) - 日付の数だけ (データセットは 2010 年 8 月 16 日から 2021 年 4 月 14 日まで実行されます)? y - 価格は、p1 & p2 および x に基づいて予測する必要があります。

import pandas as pd
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt

df = pd.read_csv('C:/Data_crypto/Log regression_bands/BCHAIN-MKPRU.csv')
df = df[ df['Value'] > 0]
df = df.iloc[::-1]
df['Date'] = pd.to_datetime(df['Date'])
df

ここに画像の説明を入力

def func(x, p1,p2):
    return p1*np.log(x)+p2
ydata = np.log(df['Value'])
xdata = np.array([x + 1 for x in range(len(df))])
popt, pcov = curve_fit(func, xdata, ydata)
print(popt)

print(pcov)

popt[0]

popt[1]

xdata

## y axis will be loged and x axis wont be

plt.semilogy(df["Date"], df['Value'])
plt.show()

## plot fitted data and expinatiate data

fittedydata = func(xdata, popt[0], popt[1])


popt[0]

plt.semilogy(df['Date'], df['Value'])
plt.plot(df['Date'], np.exp(fittedydata))
plt.ylim(bottom = 1)

plt.show()

ここに画像の説明を入力

4

0 に答える 0