私はsklearnを使用して予測を行っています。通常、予測に遅れたデータを作成しますが、この機能が1列のみの場合は簡単です。例えばパンダのデータフレームにデータが遅れます
:だから私のデータフレームになる
dataframe.temperature.shift()
:
index temperature temperature2 temperature3
1 100 NaN NaN
2 80 100 NaN
3 50 80 100
4 90 50 80
5 110 90 50
index temperature
1 100
2 80
3 50
4 90
5 110
通常私のような機能を使用して遅れたデータを作成するために、温度値をシフトして別の列を作成します。
私が予測したいとき、私は次のようなコードを使ってフィットすることができます:
x = dataframe.loc[:,('temperature3','temperature2')]
y = dataframe.temperature
model.fit([x],y)
問題は、データの遅延を作成するために多くの列があり、各列に遅れたデータが必要な場合、データフレームが大きすぎます。
私が使用できる簡単なアプローチはありますか?ありがとう!参考のため
、これは私のデータフレームです:
import pandas as pd
import talib
df = pd.read_csv('..\\data\\uj5.CSV', names=['date','time','open','high','low','close','volume'])
df.index = pd.to_datetime(df.date + df.time,format='%Y.%m.%d%H:%M')
# assuming this is the 'X', let say i need 100 lags of these column to predict the 'Y'
df['CDLBELTHOLD'] = talib.CDLBELTHOLD(df.open.values, df.high.values, df.low.values, df.close.values)
df['CDLCLOSINGMARUBOZU'] = talib.CDLCLOSINGMARUBOZU(df.open.values, df.high.values, df.low.values, df.close.values)
df['CDLDOJI'] = talib.CDLDOJI(df.open.values, df.high.values, df.low.values, df.close.values)
df['CDLHIKKAKE'] = talib.CDLHIKKAKE(df.open.values, df.high.values, df.low.values, df.close.values)
df['CDLLONGLEGGEDDOJI'] = talib.CDLLONGLEGGEDDOJI(df.open.values, df.high.values, df.low.values, df.close.values)
df['CDLLONGLINE'] = talib. CDLLONGLINE(df.open.values, df.high.values, df.low.values, df.close.values)
df['CDLSHORTLINE'] = talib.CDLSHORTLINE(df.open.values, df.high.values, df.low.values, df.close.values)
df['CDLSPINNINGTOP'] = talib.CDLSPINNINGTOP(df.open.values, df.high.values, df.low.values, df.close.values)
df['atr'] = talib.ATR(df.high.values, df.low.values, df.close.values,timeperiod=14)
#assuming this is the Y
df['target'] = #some int value
を使用してデータをフィット。 – unknowncoder
@cᴏʟᴅsᴘᴇᴇᴅ:解決策は、ラグnのデータを持つ複数の列を作成するのではなく、計算時間に中間値を動的に作成することです。 – smci
scikitとの組み合わせではありません。 model.fit()を呼び出すときにデータを準備する必要があります(あなたが言ったように大きなデータフレーム) –