From 1e46ad2fbef2a8713ef559407afe176752d3a137 Mon Sep 17 00:00:00 2001 From: LewenWang Date: Wed, 25 Nov 2020 16:35:28 +0800 Subject: [PATCH 01/13] Add readme for tabnet. --- examples/benchmarks/TabNet/README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 examples/benchmarks/TabNet/README.md diff --git a/examples/benchmarks/TabNet/README.md b/examples/benchmarks/TabNet/README.md new file mode 100644 index 000000000..8f37104aa --- /dev/null +++ b/examples/benchmarks/TabNet/README.md @@ -0,0 +1,4 @@ +#TabNet +* TabNet is a novel high-performance and interpretable canonical deep tabular data learning architectur. TabNet uses sequential attention to choose which features to reason from at each decision step, enabling interpretability and more effcient learning as the learning capacity is used for the most salient features. +* The code used in Qlib is a pyTorch implementation of Tabnet (Arik, S. O., & Pfister, T. (2019). [https://github.com/dreamquark-ai/tabnet](https://github.com/dreamquark-ai/tabnet) +* Paper: TabNet: Attentive Interpretable Tabular Learning. [https://arxiv.org/pdf/1908.07442.pdf](https://arxiv.org/pdf/1908.07442.pdf). \ No newline at end of file From 5ac90f25b3bd786dd43075793bd550f812b98de9 Mon Sep 17 00:00:00 2001 From: LewenWang Date: Wed, 25 Nov 2020 16:37:19 +0800 Subject: [PATCH 02/13] Add readme for tabnet. --- examples/benchmarks/TabNet/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/benchmarks/TabNet/README.md b/examples/benchmarks/TabNet/README.md index 8f37104aa..3a233df46 100644 --- a/examples/benchmarks/TabNet/README.md +++ b/examples/benchmarks/TabNet/README.md @@ -1,4 +1,4 @@ -#TabNet +# TabNet * TabNet is a novel high-performance and interpretable canonical deep tabular data learning architectur. TabNet uses sequential attention to choose which features to reason from at each decision step, enabling interpretability and more effcient learning as the learning capacity is used for the most salient features. * The code used in Qlib is a pyTorch implementation of Tabnet (Arik, S. O., & Pfister, T. (2019). [https://github.com/dreamquark-ai/tabnet](https://github.com/dreamquark-ai/tabnet) * Paper: TabNet: Attentive Interpretable Tabular Learning. [https://arxiv.org/pdf/1908.07442.pdf](https://arxiv.org/pdf/1908.07442.pdf). \ No newline at end of file From 88b6fc4818e702694832452692bfe7847eb9b8fa Mon Sep 17 00:00:00 2001 From: LewenWang Date: Wed, 25 Nov 2020 17:29:05 +0800 Subject: [PATCH 03/13] Add readme. --- examples/benchmarks/CatBoost/README.md | 3 +++ examples/benchmarks/LightGBM/README.md | 4 ++++ examples/benchmarks/XGBoost/README.md | 3 +++ 3 files changed, 10 insertions(+) create mode 100644 examples/benchmarks/CatBoost/README.md create mode 100644 examples/benchmarks/LightGBM/README.md create mode 100644 examples/benchmarks/XGBoost/README.md diff --git a/examples/benchmarks/CatBoost/README.md b/examples/benchmarks/CatBoost/README.md new file mode 100644 index 000000000..5e4f3966f --- /dev/null +++ b/examples/benchmarks/CatBoost/README.md @@ -0,0 +1,3 @@ +# CatBoost +* Code: [https://github.com/catboost/catboost](https://github.com/catboost/catboost) +* Paper: CatBoost: unbiased boosting with categorical features. [https://proceedings.neurips.cc/paper/2018/file/14491b756b3a51daac41c24863285549-Paper.pdf](https://proceedings.neurips.cc/paper/2018/file/14491b756b3a51daac41c24863285549-Paper.pdf). \ No newline at end of file diff --git a/examples/benchmarks/LightGBM/README.md b/examples/benchmarks/LightGBM/README.md new file mode 100644 index 000000000..13f408d5f --- /dev/null +++ b/examples/benchmarks/LightGBM/README.md @@ -0,0 +1,4 @@ +# LightGBM +* Code: [https://github.com/microsoft/LightGBM](https://github.com/microsoft/LightGBM) +* Paper: LightGBM: A Highly Efficient Gradient Boosting +Decision Tree. [https://proceedings.neurips.cc/paper/2017/file/6449f44a102fde848669bdd9eb6b76fa-Paper.pdf](https://proceedings.neurips.cc/paper/2017/file/6449f44a102fde848669bdd9eb6b76fa-Paper.pdf). \ No newline at end of file diff --git a/examples/benchmarks/XGBoost/README.md b/examples/benchmarks/XGBoost/README.md new file mode 100644 index 000000000..33e04b23b --- /dev/null +++ b/examples/benchmarks/XGBoost/README.md @@ -0,0 +1,3 @@ +# XGBoost +* Code: [https://github.com/dmlc/xgboost](https://github.com/dmlc/xgboost) +* Paper: XGBoost: A Scalable Tree Boosting System. [https://dl.acm.org/doi/pdf/10.1145/2939672.2939785](https://dl.acm.org/doi/pdf/10.1145/2939672.2939785). \ No newline at end of file From c14a99a735cdfffc2d4f1fbdbb687269c71f7b85 Mon Sep 17 00:00:00 2001 From: zhupr Date: Wed, 25 Nov 2020 17:35:26 +0800 Subject: [PATCH 04/13] Fix TopkDropoutStrategy && dump_bin --- qlib/contrib/strategy/strategy.py | 168 ++++++++++++++++++++++-------- scripts/README.md | 4 + scripts/dump_bin.py | 10 +- 3 files changed, 136 insertions(+), 46 deletions(-) diff --git a/qlib/contrib/strategy/strategy.py b/qlib/contrib/strategy/strategy.py index 6eac9bafe..2fc5dbc0f 100644 --- a/qlib/contrib/strategy/strategy.py +++ b/qlib/contrib/strategy/strategy.py @@ -26,7 +26,7 @@ class BaseStrategy: def generate_order_list(self, score_series, current, trade_exchange, pred_date, trade_date): """ - Parameters: + Parameters ----------- score_series : pd.Seires stock_id , score @@ -46,7 +46,7 @@ class BaseStrategy: def update(self, score_series, pred_date, trade_date): """User can use this method to update strategy state each trade date. - Parameters: + Parameters ----------- score_series : pd.Series stock_id , score @@ -140,12 +140,15 @@ class WeightStrategyBase(BaseStrategy, AdjustTimer): def generate_target_weight_position(self, score, current, trade_date): """ - Parameters: + Parameters ----------- - score : pred score for this trade date, pd.Series, index is stock_id, contain 'score' column - current : current position, use Position() class - trade_exchange : Exchange() - trade_date : trade date + score : pd.Series + pred score for this trade date, index is stock_id, contain 'score' column + current : Position + current position, use Position() class + trade_exchange : Exchange + trade_date : str, pd.Timestamp + trade date generate target position from score for this date and the current position The cash is not considered in the position """ @@ -153,7 +156,7 @@ class WeightStrategyBase(BaseStrategy, AdjustTimer): def generate_order_list(self, score_series, current, trade_exchange, pred_date, trade_date): """ - Parameters: + Parameters ---------- score_series : pd.Seires stock_id , score @@ -186,16 +189,29 @@ class WeightStrategyBase(BaseStrategy, AdjustTimer): class TopkDropoutStrategy(BaseStrategy, ListAdjustTimer): - def __init__(self, topk, n_drop, method="bottom", risk_degree=0.95, thresh=1, hold_thresh=1, **kwargs): + def __init__( + self, + topk, + n_drop, + method_sell="bottom", + method_buy="top", + risk_degree=0.95, + thresh=1, + hold_thresh=1, + only_tradable=False, + **kwargs, + ): """ - Parameters: - ----------- + Parameters + ---------- topk : int The number of stocks in the portfolio n_drop : int number of stocks to be replaced in each trading date - method : str - dropout method, random/bottom + method_sell : str + dropout method_sell, random/bottom + method_buy : str + dropout method_buy, random/top risk_degree : float position percentage of total value thresh : int @@ -203,12 +219,19 @@ class TopkDropoutStrategy(BaseStrategy, ListAdjustTimer): hold_thresh : int minimum holding days before sell stock , will check current.get_stock_count(order.stock_id) >= self.thresh + only_tradable : bool + will the strategy only consider the tradable stock when buying and selling. + if only_tradable: + strategy will make buy sell decision without checking the tradable state of the stock + else: + strategy will make decision with the tradable state of the stock info and avoid buy and sell them """ super(TopkDropoutStrategy, self).__init__() ListAdjustTimer.__init__(self, kwargs.get("adjust_dates", None)) self.topk = topk self.n_drop = n_drop - self.method = method + self.method_sell = method_sell + self.method_buy = method_buy self.risk_degree = risk_degree self.thresh = thresh # self.stock_count['code'] will be the days the stock has been hold @@ -216,6 +239,7 @@ class TopkDropoutStrategy(BaseStrategy, ListAdjustTimer): self.stock_count = {} self.hold_thresh = hold_thresh + self.only_tradable = only_tradable def get_risk_degree(self, date): """get_risk_degree @@ -226,42 +250,102 @@ class TopkDropoutStrategy(BaseStrategy, ListAdjustTimer): return self.risk_degree def generate_order_list(self, score_series, current, trade_exchange, pred_date, trade_date): - """ - Gnererate order list according to score_series at trade_date, will not change current. - - Parameters: - ----------- - score_series : pd.Series - stock_id , score - current : Position() - current of account - trade_exchange : Exchange() - exchange - pred_date : pd.Timestamp - predict date - trade_date : pd.Timestamp - trade date + """Gnererate order list according to score_series at trade_date. + will not change current. + Parameters + ---------- + score_series : pd.Seires + stock_id , score + current : Position() + current of account + trade_exchange : Exchange() + exchange + pred_date : pd.Timestamp + predict date + trade_date : pd.Timestamp + trade date """ if not self.is_adjust(trade_date): return [] + + if self.only_tradable: + # If The strategy only consider tradable stock when make decision + # It needs following actions to filter stocks + def get_first_n(l, n, reverse=False): + cur_n = 0 + res = [] + for si in reversed(l) if reverse else l: + if trade_exchange.is_stock_tradable(stock_id=si, trade_date=trade_date): + res.append(si) + cur_n += 1 + if cur_n >= n: + break + return res[::-1] if reverse else res + + def get_last_n(l, n): + return get_first_n(l, n, reverse=True) + + def filter_stock(l): + return [si for si in l if trade_exchange.is_stock_tradable(stock_id=si, trade_date=trade_date)] + + else: + # Otherwise, the stock will make decision with out the stock tradable info + def get_first_n(l, n): + return list(l)[:n] + + def get_last_n(l, n): + return list(l)[-n:] + + def filter_stock(l): + return l + current_temp = copy.deepcopy(current) # generate order list for this adjust date sell_order_list = [] buy_order_list = [] # load score + cash = current_temp.get_cash() current_stock_list = current_temp.get_stock_list() + # last position (sorted by score) last = score_series.reindex(current_stock_list).sort_values(ascending=False).index - today = ( - score_series[~score_series.index.isin(last)] - .sort_values(ascending=False) - .index[: self.n_drop + self.topk - len(last)] - ) - comb = score_series.reindex(last.union(today)).sort_values(ascending=False).index - if self.method == "bottom": - sell = last[last.isin(comb[-self.n_drop :])] - elif self.method == "random": - sell = pd.Index(np.random.choice(last, self.n_drop) if len(last) else []) + # The new stocks today want to buy **at most** + if self.method_buy == "top": + today = get_first_n( + score_series[~score_series.index.isin(last)].sort_values(ascending=False).index, + self.n_drop + self.topk - len(last), + ) + elif self.method_buy == "random": + topk_candi = get_first_n(score_series.sort_values(ascending=False).index, self.topk) + candi = list(filter(lambda x: x not in last, topk_candi)) + n = self.n_drop + self.topk - len(last) + try: + today = np.random.choice(candi, n, replace=False) + except ValueError: + today = candi + else: + raise NotImplementedError(f"This type of input is not supported") + # combine(new stocks + last stocks), we will drop stocks from this list + # In case of dropping higher score stock and buying lower score stock. + comb = score_series.reindex(last.union(pd.Index(today))).sort_values(ascending=False).index + + # Get the stock list we really want to sell (After filtering the case that we sell high and buy low) + if self.method_sell == "bottom": + sell = last[last.isin(get_last_n(comb, self.n_drop))] + elif self.method_sell == "random": + candi = filter_stock(last) + try: + sell = pd.Index(np.random.choice(candi, self.n_drop, replace=False) if len(last) else []) + except ValueError: # No enough candidates + sell = candi + else: + raise NotImplementedError(f"This type of input is not supported") + + # Get the stock list we really want to buy buy = today[: len(sell) + self.topk - len(last)] + + # buy singal: if a stock falls into topk, it appear in the buy_sinal + buy_signal = score_series.sort_values(ascending=False).iloc[: self.topk].index + for code in current_stock_list: if not trade_exchange.is_stock_tradable(stock_id=code, trade_date=trade_date): continue @@ -285,12 +369,14 @@ class TopkDropoutStrategy(BaseStrategy, ListAdjustTimer): if trade_exchange.check_order(sell_order): sell_order_list.append(sell_order) trade_val, trade_cost, trade_price = trade_exchange.deal_order(sell_order, position=current_temp) + # update cash + cash += trade_val - trade_cost # sold del self.stock_count[code] else: # no buy signal, but the stock is kept self.stock_count[code] += 1 - elif code in buy: + elif code in buy_signal: # NOTE: This is different from the original version # get new buy signal # Only the stock fall in to topk will produce buy signal @@ -300,7 +386,7 @@ class TopkDropoutStrategy(BaseStrategy, ListAdjustTimer): # buy new stock # note the current has been changed current_stock_list = current_temp.get_stock_list() - value = current_temp.get_cash() * self.risk_degree / len(buy) if len(buy) > 0 else 0 + value = cash * self.risk_degree / len(buy) if len(buy) > 0 else 0 # open_cost should be considered in the real trading environment, while the backtest in evaluate.py does not consider it # as the aim of demo is to accomplish same strategy as evaluate.py, so comment out this line diff --git a/scripts/README.md b/scripts/README.md index 88ebdc680..99af4a457 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -43,6 +43,8 @@ python get_data.py qlib_data --help ### US data +> Need to download data first: [Downlaod US Data](#Downlaod-US-Data) + ```python import qlib from qlib.config import REG_US @@ -52,6 +54,8 @@ qlib.init(provider_uri=provider_uri, region=REG_US) ### CN data +> Need to download data first: [Download CN Data](#Download-CN-Data) + ```python import qlib from qlib.config import REG_CN diff --git a/scripts/dump_bin.py b/scripts/dump_bin.py index 2bca4f037..9f6dd88e2 100644 --- a/scripts/dump_bin.py +++ b/scripts/dump_bin.py @@ -140,7 +140,7 @@ class DumpDataBase: def _get_source_data(self, file_path: Path) -> pd.DataFrame: df = pd.read_csv(str(file_path.resolve()), low_memory=False) - df[self.date_field_name] = df[self.date_field_name].astype(np.datetime64) + df[self.date_field_name] = df[self.date_field_name].astype(str).astype(np.datetime64) # df.drop_duplicates([self.date_field_name], inplace=True) return df @@ -339,10 +339,10 @@ class DumpDataFix(DumpDataAll): def dump(self): self._calendars_list = self._read_calendars(self._calendars_dir.joinpath(f"{self.freq}.txt")) # noinspection PyAttributeOutsideInit - self._old_instruments = self._read_instruments( - self._instruments_dir.joinpath(self.INSTRUMENTS_FILE_NAME) - ).to_dict( - orient="index" + self._old_instruments = ( + self._read_instruments(self._instruments_dir.joinpath(self.INSTRUMENTS_FILE_NAME)) + .set_index([self.symbol_field_name]) + .to_dict(orient="index") ) # type: dict self._dump_instruments() self._dump_features() From cd7c81cfd0d6e18048eb3e5f4e89c1beff6ae7b4 Mon Sep 17 00:00:00 2001 From: meng-ustc Date: Wed, 25 Nov 2020 17:46:34 +0800 Subject: [PATCH 05/13] add pretrain-mode to gats --- .../benchmarks/GATs/worflow_config_gats.yaml | 5 +++-- examples/benchmarks/GRU/model_gru_csi300.pkl | Bin 0 -> 157578 bytes .../benchmarks/LSTM/model_lstm_csi300.pkl | Bin 0 -> 209290 bytes examples/workflow_by_code_gats.py | 5 +++-- qlib/contrib/model/pytorch_gats.py | 21 ++++++++++++++++++ 5 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 examples/benchmarks/GRU/model_gru_csi300.pkl create mode 100644 examples/benchmarks/LSTM/model_lstm_csi300.pkl diff --git a/examples/benchmarks/GATs/worflow_config_gats.yaml b/examples/benchmarks/GATs/worflow_config_gats.yaml index 84eeff4db..37bced99d 100644 --- a/examples/benchmarks/GATs/worflow_config_gats.yaml +++ b/examples/benchmarks/GATs/worflow_config_gats.yaml @@ -37,9 +37,10 @@ task: lr: 1e-3 early_stop: 20 batch_size: 800 - metric: IC + metric: loss loss: mse - base_model: GRU + base_model: LSTM + with_pretrain: True seed: 0 GPU: 0 dataset: diff --git a/examples/benchmarks/GRU/model_gru_csi300.pkl b/examples/benchmarks/GRU/model_gru_csi300.pkl new file mode 100644 index 0000000000000000000000000000000000000000..46347ce8c748e6e790dee25da6d5f546b19568a3 GIT binary patch literal 157578 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≷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

8jr?!> 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 Date: Wed, 25 Nov 2020 17:48:12 +0800 Subject: [PATCH 06/13] update --- .../GATs/{worflow_config_gats.yaml => workflow_config_gats.yaml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename examples/benchmarks/GATs/{worflow_config_gats.yaml => workflow_config_gats.yaml} (100%) diff --git a/examples/benchmarks/GATs/worflow_config_gats.yaml b/examples/benchmarks/GATs/workflow_config_gats.yaml similarity index 100% rename from examples/benchmarks/GATs/worflow_config_gats.yaml rename to examples/benchmarks/GATs/workflow_config_gats.yaml From b31480a06a01bdd376eaed0a1279ef49c2033b3c Mon Sep 17 00:00:00 2001 From: Jactus Date: Wed, 25 Nov 2020 18:03:52 +0800 Subject: [PATCH 07/13] Update doc strings and fix --- .../benchmarks/DNN/workflow_config_dnn.yaml | 2 +- qlib/contrib/evaluate.py | 9 ++- qlib/contrib/strategy/strategy.py | 35 +++++----- qlib/data/dataset/__init__.py | 65 ++++++++++++------- qlib/data/dataset/handler.py | 11 ++-- qlib/data/dataset/loader.py | 36 +++++----- 6 files changed, 94 insertions(+), 64 deletions(-) diff --git a/examples/benchmarks/DNN/workflow_config_dnn.yaml b/examples/benchmarks/DNN/workflow_config_dnn.yaml index e853726ca..0f9ae7254 100644 --- a/examples/benchmarks/DNN/workflow_config_dnn.yaml +++ b/examples/benchmarks/DNN/workflow_config_dnn.yaml @@ -30,7 +30,7 @@ task: module_path: qlib.contrib.model.pytorch_nn kwargs: loss: mse - input_dim: 360 + input_dim: 158 output_dim: 1 lr: 0.002 lr_decay: 0.96 diff --git a/qlib/contrib/evaluate.py b/qlib/contrib/evaluate.py index a9b08719a..cf1793c93 100644 --- a/qlib/contrib/evaluate.py +++ b/qlib/contrib/evaluate.py @@ -190,7 +190,8 @@ def backtest(pred, account=1e9, shift=1, benchmark="SH000905", verbose=True, **k Parameters ---------- - # backtest workflow related or commmon arguments + - **backtest workflow related or commmon arguments** + pred : pandas.DataFrame predict should has index and one `score` column account : float @@ -202,7 +203,8 @@ def backtest(pred, account=1e9, shift=1, benchmark="SH000905", verbose=True, **k verbose : bool whether to print log - # strategy related arguments + - **strategy related arguments** + strategy : Strategy() strategy used in backtest topk : int (Default value: 50) @@ -225,7 +227,8 @@ def backtest(pred, account=1e9, shift=1, benchmark="SH000905", verbose=True, **k str_type: 'amount', 'weight' or 'dropout' strategy type: TopkAmountStrategy ,TopkWeightStrategy or TopkDropoutStrategy - # exchange related arguments + - **exchange related arguments** + exchange: Exchange() pass the exchange for speeding up. subscribe_fields: list diff --git a/qlib/contrib/strategy/strategy.py b/qlib/contrib/strategy/strategy.py index 6eac9bafe..0e6a4ae2d 100644 --- a/qlib/contrib/strategy/strategy.py +++ b/qlib/contrib/strategy/strategy.py @@ -26,7 +26,9 @@ class BaseStrategy: def generate_order_list(self, score_series, current, trade_exchange, pred_date, trade_date): """ - Parameters: + DO NOT directly change the state of current + + Parameters ----------- score_series : pd.Seires stock_id , score @@ -39,14 +41,13 @@ class BaseStrategy: predict date trade_date : pd.Timestamp trade date - - DO NOT directly change the state of current """ pass def update(self, score_series, pred_date, trade_date): """User can use this method to update strategy state each trade date. - Parameters: + + Parameters ----------- score_series : pd.Series stock_id , score @@ -98,8 +99,9 @@ class AdjustTimer: """AdjustTimer Responsible for timing of position adjusting - This is designed as multiple inheritance mechanism due to + This is designed as multiple inheritance mechanism due to: - the is_adjust may need access to the internel state of a strategy + - it can be reguard as a enhancement to the existing strategy """ @@ -140,21 +142,24 @@ class WeightStrategyBase(BaseStrategy, AdjustTimer): def generate_target_weight_position(self, score, current, trade_date): """ - Parameters: + Generate target position from score for this date and the current position.The cash is not considered in the position + + Parameters ----------- - score : pred score for this trade date, pd.Series, index is stock_id, contain 'score' column - current : current position, use Position() class + score : pd.Series + pred score for this trade date, index is stock_id, contain 'score' column + current : Position() + current position trade_exchange : Exchange() - trade_date : trade date - generate target position from score for this date and the current position - The cash is not considered in the position + trade_date : pd.Timestamp + trade date """ raise NotImplementedError() def generate_order_list(self, score_series, current, trade_exchange, pred_date, trade_date): """ - Parameters: - ---------- + Parameters + ----------- score_series : pd.Seires stock_id , score current : Position() @@ -188,7 +193,7 @@ class WeightStrategyBase(BaseStrategy, AdjustTimer): class TopkDropoutStrategy(BaseStrategy, ListAdjustTimer): def __init__(self, topk, n_drop, method="bottom", risk_degree=0.95, thresh=1, hold_thresh=1, **kwargs): """ - Parameters: + Parameters ----------- topk : int The number of stocks in the portfolio @@ -229,7 +234,7 @@ class TopkDropoutStrategy(BaseStrategy, ListAdjustTimer): """ Gnererate order list according to score_series at trade_date, will not change current. - Parameters: + Parameters ----------- score_series : pd.Series stock_id , score diff --git a/qlib/data/dataset/__init__.py b/qlib/data/dataset/__init__.py index c46528944..3dbc17c23 100644 --- a/qlib/data/dataset/__init__.py +++ b/qlib/data/dataset/__init__.py @@ -14,9 +14,11 @@ class Dataset(Serializable): def __init__(self, *args, **kwargs): """ - init is designed to finish following steps + init is designed to finish following steps: + - setup data - The data related attributes' names should start with '_' so that it will not be saved on disk when serializing + - initialize the state of the dataset(info to prepare the data) - The name of essential state for preparing data should not start with '_' so that it could be serialized on disk when serializing. @@ -29,11 +31,15 @@ class Dataset(Serializable): """ setup the data - We split the setup_data function for following situation - - 1) User have a Dataset object with learned status on disk - - 2) User load the Dataset object from the disk(Note the init function is skiped) - - 3) User call `setup_data` to load new data - - 4) User prepare data for model based on previous status + We split the setup_data function for following situation: + + - User have a Dataset object with learned status on disk + + - User load the Dataset object from the disk(Note the init function is skiped) + + - User call `setup_data` to load new data + + - User prepare data for model based on previous status """ pass @@ -41,8 +47,9 @@ class Dataset(Serializable): """ The type of dataset depends on the model. (It could be pd.DataFrame, pytorch.DataLoader, etc.) The parameters should specify the scope for the prepared data - The method sould + The method should: - process the data + - return the processed data Returns @@ -55,11 +62,12 @@ class Dataset(Serializable): class DatasetH(Dataset): """ - Dataset with Data(H)anler + Dataset with Data(H)andler User should try to put the data preprocessing functions into handler. - Only following data processing functions should be placed in Dataset + Only following data processing functions should be placed in Dataset: - The processing is related to specific model. + - The processing is related to data split """ @@ -81,21 +89,26 @@ class DatasetH(Dataset): Parameters ---------- handler : Union[dict, DataHandler] - handler could be - 1) insntance of `DataHandler` - 2) config of `DataHandler`. Please refer to `DataHandler` + handler could be: + + - insntance of `DataHandler` + + - config of `DataHandler`. Please refer to `DataHandler` segments : list Describe the options to segment the data. - Here are some examples - 1) 'segments': { - 'train': ("2008-01-01", "2014-12-31"), - 'valid': ("2017-01-01", "2020-08-01",), - 'test': ("2015-01-01", "2016-12-31",), - } - 2) 'segments': { - 'insample': ("2008-01-01", "2014-12-31"), - 'outsample': ("2017-01-01", "2020-08-01",), - } + Here are some examples: + + .. code-block:: + + 1) 'segments': { + 'train': ("2008-01-01", "2014-12-31"), + 'valid': ("2017-01-01", "2020-08-01",), + 'test': ("2015-01-01", "2016-12-31",), + } + 2) 'segments': { + 'insample': ("2008-01-01", "2014-12-31"), + 'outsample': ("2017-01-01", "2020-08-01",), + } """ self._handler = init_instance_by_config(handler, accept_types=DataHandler) self._segments = segments.copy() @@ -114,9 +127,11 @@ class DatasetH(Dataset): ---------- segments : Union[List[str], Tuple[str], str, slice] Describe the scope of the data to be prepared - Here are some examples - 1) 'train' - 2) ['train', 'valid'] + Here are some examples: + + - 'train' + + - ['train', 'valid'] col_set : str The col_set will be passed to self._handler when fetching data data_key: str diff --git a/qlib/data/dataset/handler.py b/qlib/data/dataset/handler.py index e0a4d809a..4d3d88c38 100644 --- a/qlib/data/dataset/handler.py +++ b/qlib/data/dataset/handler.py @@ -41,7 +41,7 @@ class DataHandler(Serializable): Example of the data: The multi-index of the columns is optional. - .. code-block:: + .. code-block:: python feature label $close $volume Ref($close, 1) Mean($close, 3) $high-$low LABEL0 @@ -109,7 +109,8 @@ class DataHandler(Serializable): Parameters ---------- enable_cache : bool - default value is false + default value is false: + - if `enable_cache` == True: the processed data will be saved on disk, and handler will load the cached data from the disk directly @@ -378,8 +379,10 @@ class DataHandlerLP(DataHandler): init_type : str The type `IT_*` listed above enable_cache : bool - default value is false - if `enable_cache` == True: + default value is false: + + - if `enable_cache` == True: + the processed data will be saved on disk, and handler will load the cached data from the disk directly when we call `init` next time """ diff --git a/qlib/data/dataset/loader.py b/qlib/data/dataset/loader.py index e95dc4479..404313e80 100644 --- a/qlib/data/dataset/loader.py +++ b/qlib/data/dataset/loader.py @@ -39,14 +39,16 @@ class DataLoader(abc.ABC): pd.DataFrame: data load from the under layer source - Example of the data: - (The multi-index of the columns is optional.) - feature label - $close $volume Ref($close, 1) Mean($close, 3) $high-$low LABEL0 - datetime instrument - 2010-01-04 SH600000 81.807068 17145150.0 83.737389 83.016739 2.741058 0.0032 - SH600004 13.313329 11800983.0 13.313329 13.317701 0.183632 0.0042 - SH600005 37.796539 12231662.0 38.258602 37.919757 0.970325 0.0289 + Example of the data (The multi-index of the columns is optional.): + + .. code-block:: + + feature label + $close $volume Ref($close, 1) Mean($close, 3) $high-$low LABEL0 + datetime instrument + 2010-01-04 SH600000 81.807068 17145150.0 83.737389 83.016739 2.741058 0.0032 + SH600004 13.313329 11800983.0 13.313329 13.317701 0.183632 0.0042 + SH600005 37.796539 12231662.0 38.258602 37.919757 0.970325 0.0289 """ pass @@ -55,7 +57,7 @@ class DLWParser(DataLoader): """ (D)ata(L)oader (W)ith (P)arser for features and names - Extracting this class so that QlibDataLoader and other dataloaders(such as QdbDataLoader) can share the fields + Extracting this class so that QlibDataLoader and other dataloaders(such as QdbDataLoader) can share the fields. """ def __init__(self, config: Tuple[list, tuple, dict]): @@ -65,14 +67,16 @@ class DLWParser(DataLoader): config : Tuple[list, tuple, dict] Config will be used to describe the fields and column names - := { - "group_name1": - "group_name2": - } - or - := + .. code-block:: YAML - := ["expr", ...] | (["expr", ...], ["col_name", ...]) + := { + "group_name1": + "group_name2": + } + or + := + + := ["expr", ...] | (["expr", ...], ["col_name", ...]) """ self.is_group = isinstance(config, dict) From 53620d4c085d6e1b675823e2b8c12f668d819bd8 Mon Sep 17 00:00:00 2001 From: lwwang1995 Date: Wed, 25 Nov 2020 18:38:17 +0800 Subject: [PATCH 08/13] Add readme for SFM. --- examples/benchmarks/SFM/README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 examples/benchmarks/SFM/README.md diff --git a/examples/benchmarks/SFM/README.md b/examples/benchmarks/SFM/README.md new file mode 100644 index 000000000..06ca50485 --- /dev/null +++ b/examples/benchmarks/SFM/README.md @@ -0,0 +1,4 @@ +# State-Frequency-Memory +- State Frequency Memory (SFM) is a novel recurrent network that uses Discrete Fourier Transform (DFT) to decompose the hidden states of memory cells and capture the multi-frequency trading patterns from past market data to make stock price predictions. +- The code used in Qlib is a pyTorch implementation of SFM (Zhang, L., Aggarwal, C., & Qi, G. J. (2017,)). +- Paper: Stock Price Prediction via Discovering Multi-Frequency Trading Patterns. https://www.cs.ucf.edu/~gqi/publications/kdd2017_stock.pdf. \ No newline at end of file From 8c4bc5be65796c941336ed902ce6b5198e3d6a43 Mon Sep 17 00:00:00 2001 From: lwwang1995 Date: Wed, 25 Nov 2020 18:44:35 +0800 Subject: [PATCH 09/13] Add copyright. --- qlib/contrib/model/catboost_model.py | 12 ++++++++++++ qlib/contrib/model/xgboost.py | 13 +++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/qlib/contrib/model/catboost_model.py b/qlib/contrib/model/catboost_model.py index e487a6d1e..bba006c35 100644 --- a/qlib/contrib/model/catboost_model.py +++ b/qlib/contrib/model/catboost_model.py @@ -1,3 +1,15 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import numpy as np import pandas as pd from catboost import Pool, CatBoost diff --git a/qlib/contrib/model/xgboost.py b/qlib/contrib/model/xgboost.py index e0691ba16..b45e12e10 100755 --- a/qlib/contrib/model/xgboost.py +++ b/qlib/contrib/model/xgboost.py @@ -1,5 +1,14 @@ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. import numpy as np import pandas as pd From 62ea2f89aef956b5086d55526177a997c127c8c1 Mon Sep 17 00:00:00 2001 From: Hong Zhang Date: Wed, 25 Nov 2020 19:03:16 +0800 Subject: [PATCH 10/13] hats3 --- examples/benchmarks/HATS/requirements.txt | 4 + .../benchmarks/HATS/worflow_config_hats.yaml | 64 +++ examples/workflow_by_code_hats.py | 145 +++++ qlib/contrib/model/pytorch_hats.py | 497 ++++++++++++++++++ 4 files changed, 710 insertions(+) create mode 100644 examples/benchmarks/HATS/requirements.txt create mode 100644 examples/benchmarks/HATS/worflow_config_hats.yaml create mode 100644 examples/workflow_by_code_hats.py create mode 100644 qlib/contrib/model/pytorch_hats.py diff --git a/examples/benchmarks/HATS/requirements.txt b/examples/benchmarks/HATS/requirements.txt new file mode 100644 index 000000000..16de0a438 --- /dev/null +++ b/examples/benchmarks/HATS/requirements.txt @@ -0,0 +1,4 @@ +pandas==1.1.2 +numpy==1.17.4 +scikit_learn==0.23.2 +torch==1.7.0 diff --git a/examples/benchmarks/HATS/worflow_config_hats.yaml b/examples/benchmarks/HATS/worflow_config_hats.yaml new file mode 100644 index 000000000..a7ab0d2d7 --- /dev/null +++ b/examples/benchmarks/HATS/worflow_config_hats.yaml @@ -0,0 +1,64 @@ +provider_uri: "~/.qlib/qlib_data/cn_data" +region: cn +market: &market csi300 +benchmark: &benchmark SH000300 +data_handler_config: &data_handler_config + start_time: 2008-01-01 + end_time: 2020-08-01 + fit_start_time: 2008-01-01 + fit_end_time: 2014-12-31 + instruments: *market +port_analysis_config: &port_analysis_config + strategy: + class: TopkDropoutStrategy + module_path: qlib.contrib.strategy.strategy + kwargs: + topk: 50 + n_drop: 5 + backtest: + verbose: False + limit_threshold: 0.095 + account: 100000000 + benchmark: *benchmark + deal_price: close + open_cost: 0.0005 + close_cost: 0.0015 + min_cost: 5 +task: + model: + class: HATS + module_path: qlib.contrib.model.pytorch_gats + kwargs: + d_feat: 6 + hidden_size: 64 + num_layers: 2 + dropout: 0.6 + n_epochs: 200 + lr: 1e-3 + early_stop: 20 + batch_size: 800 + metric: IC + loss: mse + base_model: GRU + seed: 0 + GPU: 0 + dataset: + class: DatasetH + module_path: qlib.data.dataset + kwargs: + handler: + class: ALPHA360_Denoise + module_path: qlib.contrib.data.handler + kwargs: *data_handler_config + segments: + train: [2008-01-01, 2014-12-31] + valid: [2015-01-01, 2016-12-31] + test: [2017-01-01, 2020-08-01] + record: + - class: SignalRecord + module_path: qlib.workflow.record_temp + kwargs: {} + - class: PortAnaRecord + module_path: qlib.workflow.record_temp + kwargs: + config: *port_analysis_config \ No newline at end of file diff --git a/examples/workflow_by_code_hats.py b/examples/workflow_by_code_hats.py new file mode 100644 index 000000000..0cba29b63 --- /dev/null +++ b/examples/workflow_by_code_hats.py @@ -0,0 +1,145 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +import sys +from pathlib import Path + +import qlib +import pandas as pd +from qlib.config import REG_CN +from qlib.contrib.model.pytorch_hats import HATS +from qlib.contrib.data.handler import ALPHA360_Denoise +from qlib.contrib.strategy.strategy import TopkDropoutStrategy +from qlib.contrib.evaluate import ( + backtest as normal_backtest, + risk_analysis, +) +from qlib.utils import exists_qlib_data + +# from qlib.model.learner import train_model +from qlib.utils import init_instance_by_config + +import pickle + +if __name__ == "__main__": + + # use default data + provider_uri = "~/.qlib/qlib_data/cn_data" # target_dir + if not exists_qlib_data(provider_uri): + print(f"Qlib data is not found in {provider_uri}") + sys.path.append(str(Path(__file__).resolve().parent.parent.joinpath("scripts"))) + from get_data import GetData + + GetData().qlib_data_cn(target_dir=provider_uri) + + qlib.init(provider_uri=provider_uri, region=REG_CN) + + MARKET = "csi300" + BENCHMARK = "SH000300" + + ################################### + # train model + ################################### + DATA_HANDLER_CONFIG = { + "start_time": "2008-01-01", + "end_time": "2020-08-01", + "fit_start_time": "2008-01-01", + "fit_end_time": "2014-12-31", + "instruments": MARKET, + } + + TRAINER_CONFIG = { + "train_start_time": "2008-01-01", + "train_end_time": "2014-12-31", + "validate_start_time": "2015-01-01", + "validate_end_time": "2016-12-31", + "test_start_time": "2017-01-01", + "test_end_time": "2020-08-01", + } + + task = { + "model": { + "class": "HATS", + "module_path": "qlib.contrib.model.pytorch_hats", + "kwargs": { + "d_feat": 6, + "hidden_size": 64, + "num_layers": 2, + "dropout": 0.6, + "n_epochs": 200, + "lr": 1e-3, + "early_stop": 20, + "batch_size": 800, + "metric": "IC", + "loss": "mse", + "base_model": "LSTM", + "seed": 0, + "GPU": 0, + }, + }, + "dataset": { + "class": "DatasetH", + "module_path": "qlib.data.dataset", + "kwargs": { + "handler": { + "class": "ALPHA360_Denoise", + "module_path": "qlib.contrib.data.handler", + "kwargs": DATA_HANDLER_CONFIG, + }, + "segments": { + "train": ("2008-01-01", "2014-12-31"), + "valid": ("2015-01-01", "2016-12-31"), + "test": ("2017-01-01", "2020-08-01"), + }, + }, + } + # You shoud record the data in specific sequence + # "record": ['SignalRecord', 'SigAnaRecord', 'PortAnaRecord'], + } + + # model = train_model(task) + model = init_instance_by_config(task["model"]) + dataset = init_instance_by_config(task["dataset"]) + model.fit(dataset,save_path='benchmarks/HATS/model_hat.pkl') + + pred_score = model.predict(dataset) + + # save pred_score to file + pred_score_path = Path("~/tmp/qlib/pred_score.pkl").expanduser() + pred_score_path.parent.mkdir(exist_ok=True, parents=True) + pred_score.to_pickle(pred_score_path) + + ################################### + # backtest + ################################### + STRATEGY_CONFIG = { + "topk": 50, + "n_drop": 5, + } + BACKTEST_CONFIG = { + "verbose": False, + "limit_threshold": 0.095, + "account": 100000000, + "benchmark": BENCHMARK, + "deal_price": "close", + "open_cost": 0.0005, + "close_cost": 0.0015, + "min_cost": 5, + } + + # use default strategy + # custom Strategy, refer to: TODO: Strategy API url + strategy = TopkDropoutStrategy(**STRATEGY_CONFIG) + report_normal, positions_normal = normal_backtest(pred_score, strategy=strategy, **BACKTEST_CONFIG) + + ################################### + # analyze + # If need a more detailed analysis, refer to: examples/train_and_bakctest.ipynb + ################################### + analysis = dict() + analysis["excess_return_without_cost"] = risk_analysis(report_normal["return"] - report_normal["bench"]) + analysis["excess_return_with_cost"] = risk_analysis( + report_normal["return"] - report_normal["bench"] - report_normal["cost"] + ) + analysis_df = pd.concat(analysis) # type: pd.DataFrame + print(analysis_df) diff --git a/qlib/contrib/model/pytorch_hats.py b/qlib/contrib/model/pytorch_hats.py new file mode 100644 index 000000000..6a09e685b --- /dev/null +++ b/qlib/contrib/model/pytorch_hats.py @@ -0,0 +1,497 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + + +from __future__ import division +from __future__ import print_function + +import os +import numpy as np +import pandas as pd +import copy +from sklearn.metrics import roc_auc_score, mean_squared_error +import logging +from ...utils import unpack_archive_with_buffer, save_multiple_parts_file, create_save_path, drop_nan_by_y_index +from ...log import get_module_logger, TimeInspector + +import torch +import torch.nn as nn +import torch.optim as optim + +from ...model.base import Model +from ...data.dataset import DatasetH +from ...data.dataset.handler import DataHandlerLP + + +class HATS(Model): + """HATS Model + + Parameters + ---------- + input_dim : int + input dimension + output_dim : int + output dimension + layers : tuple + layer sizes + lr : float + learning rate + optimizer : str + optimizer name + GPU : str + the GPU ID(s) used for training + """ + + def __init__( + self, + d_feat=6, + hidden_size=64, + num_layers=2, + dropout=0.5, + n_epochs=200, + lr=0.01, + metric="IC", + batch_size=800, + early_stop=20, + loss="mse", + base_model="GRU", + with_pretrain=True, + optimizer="adam", + GPU="0", + seed=0, + **kwargs + ): + # Set logger. + self.logger = get_module_logger("HATS") + self.logger.info("HATS pytorch version...") + + # set hyper-parameters. + self.d_feat = d_feat + self.hidden_size = hidden_size + self.num_layers = num_layers + self.dropout = dropout + self.n_epochs = n_epochs + self.lr = lr + self.metric = metric + self.batch_size = batch_size + self.early_stop = early_stop + self.optimizer = optimizer.lower() + self.loss = loss + self.base_model = base_model + self.with_pretrain = with_pretrain #### True if train HATS with pretrained base model + self.visible_GPU = GPU + self.use_gpu = torch.cuda.is_available() + self.seed = seed + + self.logger.info( + "HATS parameters setting:" + "\nd_feat : {}" + "\nhidden_size : {}" + "\nnum_layers : {}" + "\ndropout : {}" + "\nn_epochs : {}" + "\nlr : {}" + "\nmetric : {}" + "\nbatch_size : {}" + "\nearly_stop : {}" + "\noptimizer : {}" + "\nloss_type : {}" + "\nbase_model : {}" + "\nwith_pretrain : {}" ##### debug + "\nvisible_GPU : {}" + "\nuse_GPU : {}" + "\nseed : {}".format( + d_feat, + hidden_size, + num_layers, + dropout, + n_epochs, + lr, + metric, + batch_size, + early_stop, + optimizer.lower(), + loss, + base_model, + with_pretrain, ### debug + GPU, + self.use_gpu, + seed, + ) + ) + + if loss not in {"mse", "binary"}: + raise NotImplementedError("loss {} is not supported!".format(loss)) + self._scorer = mean_squared_error if loss == "mse" else roc_auc_score + + self.HATS_model = HATSModel( + d_feat=self.d_feat, + hidden_size=self.hidden_size, + num_layers=self.num_layers, + dropout=self.dropout, + base_model=self.base_model, + ) + if optimizer.lower() == "adam": + self.train_optimizer = optim.Adam(self.HATS_model.parameters(), lr=self.lr) + elif optimizer.lower() == "gd": + self.train_optimizer = optim.SGD(self.HATS_model.parameters(), lr=self.lr) + else: + raise NotImplementedError("optimizer {} is not supported!".format(optimizer)) + + self._fitted = False + if self.use_gpu: + self.HATS_model.cuda() + # set the visible GPU + if self.visible_GPU: + os.environ["CUDA_VISIBLE_DEVICES"] = self.visible_GPU + + def mse(self, pred, label): + loss = (pred - label) ** 2 + return torch.mean(loss) + + def loss_fn(self, pred, label): + mask = ~torch.isnan(label) + + if self.loss == "mse": + return self.mse(pred[mask], label[mask]) + + raise ValueError("unknown loss `%s`" % self.loss) + + def metric_fn(self, pred, label): + + mask = torch.isfinite(label) + if self.metric == "IC": + return self.cal_ic(pred[mask], label[mask]) + + if self.metric == "" or self.metric == "loss": # use loss + return -self.loss_fn(pred[mask], label[mask]) + + raise ValueError("unknown metric `%s`" % self.metric) + + def cal_ic(self, pred, label): + return torch.mean(pred * label) + + def train_epoch(self, x_train, y_train): + + x_train_values = x_train.values + y_train_values = np.squeeze(y_train.values) * 100 + + self.HATS_model.train() + + indices = np.arange(len(x_train_values)) + np.random.shuffle(indices) + + for i in range(len(indices))[:: self.batch_size]: + + if len(indices) - i < self.batch_size: + break + + feature = torch.from_numpy(x_train_values[indices[i : i + self.batch_size]]).float() + label = torch.from_numpy(y_train_values[indices[i : i + self.batch_size]]).float() + + if self.use_gpu: + feature = feature.cuda() + label = label.cuda() + + pred = self.HATS_model(feature) + loss = self.loss_fn(pred, label) + + self.train_optimizer.zero_grad() + loss.backward() + torch.nn.utils.clip_grad_value_(self.HATS_model.parameters(), 3.0) + self.train_optimizer.step() + + def test_epoch(self, data_x, data_y): + + # prepare training data + x_values = data_x.values + y_values = np.squeeze(data_y.values) + + self.HATS_model.eval() + + scores = [] + losses = [] + + indices = np.arange(len(x_values)) + np.random.shuffle(indices) + + for i in range(len(indices))[:: self.batch_size]: + + if len(indices) - i < self.batch_size: + break + + feature = torch.from_numpy(x_values[indices[i : i + self.batch_size]]).float() + label = torch.from_numpy(y_values[indices[i : i + self.batch_size]]).float() + + if self.use_gpu: + feature = feature.cuda() + label = label.cuda() + + pred = self.HATS_model(feature) + loss = self.loss_fn(pred, label) + losses.append(loss.item()) + + score = self.metric_fn(pred, label) + scores.append(score.item()) + + return np.mean(losses), np.mean(scores) + + def fit( + self, + dataset: DatasetH, + evals_result=dict(), + verbose=True, + save_path=None, + ): + + df_train, df_valid, df_test = dataset.prepare( + ["train", "valid", "test"], col_set=["feature", "label"], data_key=DataHandlerLP.DK_L + ) + + x_train, y_train = df_train["feature"], df_train["label"] + x_valid, y_valid = df_valid["feature"], df_valid["label"] + + if save_path == None: + save_path = create_save_path(save_path) + stop_steps = 0 + train_loss = 0 + best_score = -np.inf + best_epoch = 0 + evals_result["train"] = [] + evals_result["valid"] = [] + + # load pretrained base_model + if self.with_pretrain: + self.logger.info("loading pretrained model...") + if self.base_model == "LSTM": + from ...contrib.model.pytorch_lstm import LSTMModel + pretrained_model = LSTMModel() + pretrained_model.load_state_dict(torch.load('benchmarks/LSTM/model_lstm_csi300.pkl')) + elif self.base_model == "GRU": + from ...contrib.model.pytorch_gru import GRUModel + pretrained_model = GRUModel() + pretrained_model.load_state_dict(torch.load('benchmarks/GRU/model_gru_csi300.pkl')) + model_dict = self.HATS_model.state_dict() + + # filter unnecessary parameters + pretrained_dict = {k: v for k, v in pretrained_model.state_dict().items() if k in model_dict} + # overwrite entries in the existing state dict + model_dict.update(pretrained_dict) + # load the new state dict + self.HATS_model.load_state_dict(model_dict) + self.logger.info("loading pretrained model Done...") + + + # train + self.logger.info("training...") + self._fitted = True + # return + + for step in range(self.n_epochs): + self.logger.info("Epoch%d:", step) + self.logger.info("training...") + self.train_epoch(x_train, y_train) + self.logger.info("evaluating...") + train_loss, train_score = self.test_epoch(x_train, y_train) + val_loss, val_score = self.test_epoch(x_valid, y_valid) + self.logger.info("train %.6f, valid %.6f" % (train_score, val_score)) + evals_result["train"].append(train_score) + evals_result["valid"].append(val_score) + + if val_score > best_score: + best_score = val_score + stop_steps = 0 + best_epoch = step + best_param = copy.deepcopy(self.HATS_model.state_dict()) + else: + stop_steps += 1 + if stop_steps >= self.early_stop: + self.logger.info("early stop") + break + + self.logger.info("best score: %.6lf @ %d" % (best_score, best_epoch)) + self.HATS_model.load_state_dict(best_param) + torch.save(best_param, save_path) + + if self.use_gpu: + torch.cuda.empty_cache() + + def predict(self, dataset): + if not self._fitted: + raise ValueError("model is not fitted yet!") + + x_test = dataset.prepare("test", col_set="feature") + index = x_test.index + self.HATS_model.eval() + x_values = x_test.values + sample_num = x_values.shape[0] + preds = [] + + for begin in range(sample_num)[:: self.batch_size]: + + if sample_num - begin < self.batch_size: + end = sample_num + else: + end = begin + self.batch_size + + x_batch = torch.from_numpy(x_values[begin:end]).float() + + if self.use_gpu: + x_batch = x_batch.cuda() + + with torch.no_grad(): + if self.use_gpu: + pred = self.HATS_model(x_batch).detach().cpu().numpy() + else: + pred = self.HATS_model(x_batch).detach().numpy() + + preds.append(pred) + + return pd.Series(np.concatenate(preds), index=index) + + +class HATSModel(nn.Module): + def __init__(self, d_feat=6, hidden_size=64, num_layers=2, dropout=0.0, base_model="GRU"): + super().__init__() + + if base_model == "GRU": + self.model = nn.GRU( + input_size=d_feat, + hidden_size=hidden_size, + num_layers=num_layers, + batch_first=True, + dropout=dropout, + ) + elif base_model == "LSTM": + self.model = nn.LSTM( + input_size=d_feat, + hidden_size=hidden_size, + num_layers=num_layers, + batch_first=True, + dropout=dropout, + ) + else: + raise ValueError("unknown base model name `%s`" % base_model) + + self.hidden_size = hidden_size + self.bn1 = nn.BatchNorm1d(num_features=hidden_size, track_running_stats=False) + self.fc = nn.Linear(hidden_size, hidden_size) + self.bn2 = nn.BatchNorm1d(num_features=hidden_size, track_running_stats=False) + self.fc_out = nn.Linear(hidden_size, 1) + self.leaky_relu = nn.LeakyReLU() + self.softmax = nn.Softmax(dim=1) + self.d_feat = d_feat + + num_head_att = [1]*num_layers + hidden_dim = [hidden_size]*num_layers + dims = [d_feat] + [d*nh for (d, nh) in zip(hidden_dim, num_head_att[:-1])] + [num_head_att[-1]] + in_dims = dims[:-1] + out_dims = [d // nh for (d, nh) in zip(dims[1:], num_head_att)] + self.attn = nn.ModuleList([GraphAttention(i, o, nh, dropout) for (i, o, nh) in zip(in_dims, out_dims,num_head_att)]) + self.bns = nn.ModuleList([nn.BatchNorm1d(dim) for dim in dims[1:-1]]) + self.dropout = nn.Dropout(dropout) + self.elu = nn.ELU() + + def forward(self, x): + x = x.reshape(len(x), self.d_feat, -1) # [N, F, T] + x = x.permute(0, 2, 1) # [N, T, F] + out,_ = self.model(x) + hidden = out[:, -1, :] + hidden = self.bn1(hidden) + attention = GraphAttention.cal_attention(hidden, hidden) + output = attention.mm(hidden) + output = self.fc(output) + output = self.bn2(output) + output = self.leaky_relu(output) + return self.fc_out(output).squeeze() + + + +class GraphAttention(nn.Module): + + def __init__(self, input_dim, output_dim, num_heads, dropout=0.5): + + super().__init__() + + """ + Parameters + ---------- + input_dim : int + Dimension of input node features. + output_dim : int + Dimension of output node features. + num_heads : list of ints + Number of attention heads in each hidden layer and output layer. Must be non empty. Note that len(num_heads) = len(hidden_dims)+1. + dropout : float + Dropout rate. Default: 0.5. + """ + + self.input_dim = input_dim + self.output_dim = output_dim + self.num_heads = num_heads + + self.fcs = nn.ModuleList([nn.Linear(input_dim, output_dim) for _ in range(num_heads)]) + self.a = nn.ModuleList([nn.Linear(2*output_dim, 1) for _ in range(num_heads)]) + + self.dropout = nn.Dropout(dropout) + self.softmax = nn.Softmax(dim=0) + self.leakyrelu = nn.LeakyReLU() + + def forward(self, features, nodes, mapping, rows): + + """ + Parameters + ---------- + features : torch.Tensor + An (n' x input_dim) tensor of input node features. + node_layers : list of numpy array + node_layers[i] is an array of the nodes in the ith layer of the + computation graph. + mappings : list of dictionary + mappings[i] is a dictionary mapping node v (labelled 0 to |V|-1) + in node_layers[i] to its position in node_layers[i]. For example, + if node_layers[i] = [2,5], then mappings[i][2] = 0 and + mappings[i][5] = 1. + rows : numpy array + rows[i] is an array of neighbors of node i. + Returns + ------- + out : torch.Tensor + An (len(node_layers[-1]) x output_dim) tensor of output node features. + """ + + nprime = features.shape[0] + rows = [np.array([mapping[v] for v in row], dtype=np.int64) for row in rows] + sum_degs = np.hstack(([0], np.cumsum([len(row) for row in rows]))) + mapped_nodes = [mapping[v] for v in nodes] + indices = torch.LongTensor([[v, c] for (v, row) in zip(mapped_nodes, rows) for c in row]).t() + + + out = [] + for k in range(self.num_heads): + h = self.fcs[k](features) + + nbr_h = torch.cat(tuple([h[row] for row in rows]), dim=0) + self_h = torch.cat(tuple([h[mapping[nodes[i]]].repeat(len(row), 1) for (i, row) in enumerate(rows)]), dim=0) + cat_h = torch.cat((self_h, nbr_h), dim=1) + + e = self.leakyrelu(self.a[k](cat_h)) + + alpha = [self.softmax(e[lo : hi]) for (lo, hi) in zip(sum_degs, sum_degs[1:])] + alpha = torch.cat(tuple(alpha), dim=0) + alpha = alpha.squeeze(1) + alpha = self.dropout(alpha) + + adj = torch.sparse.FloatTensor(indices, alpha, torch.Size([nprime, nprime])) + out.append(torch.sparse.mm(adj, h)[mapped_nodes]) + + return out + + def cal_attention(x, y): + + att_x = torch.mean(x, dim = 1).reshape(-1, 1) + att_y = torch.mean(y, dim = 1).reshape(-1, 1) + att = att_x.mm(torch.t(att_y)) + x_att = x.reshape(x.shape[0], 1, x.shape[1]).repeat(1, y.shape[0], 1) + y_att = y.reshape(1, y.shape[0], y.shape[1]).repeat(x.shape[0], 1, 1) + return torch.mean(x.reshape(x.shape[0], 1, x.shape[1]).repeat(1, y.shape[0], 1)*y.reshape(1, y.shape[0], y.shape[1]).repeat(x.shape[0], 1, 1), dim = 2)-att \ No newline at end of file From 33a40c290fadbe45ebef647f5eb175117636f876 Mon Sep 17 00:00:00 2001 From: Don-ustc <43958178+Don-ustc@users.noreply.github.com> Date: Wed, 25 Nov 2020 19:12:26 +0800 Subject: [PATCH 11/13] Update about ALSTM --- examples/workflow_by_code_alstm.py | 145 +++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 examples/workflow_by_code_alstm.py diff --git a/examples/workflow_by_code_alstm.py b/examples/workflow_by_code_alstm.py new file mode 100644 index 000000000..3137b6605 --- /dev/null +++ b/examples/workflow_by_code_alstm.py @@ -0,0 +1,145 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +import sys +from pathlib import Path + +import qlib +import pandas as pd +from qlib.config import REG_CN +from qlib.contrib.model.pytorch_alstm import ALSTM +from qlib.contrib.data.handler import ALPHA360_Denoise +from qlib.contrib.strategy.strategy import TopkDropoutStrategy +from qlib.contrib.evaluate import ( + backtest as normal_backtest, + risk_analysis, +) +from qlib.utils import exists_qlib_data + +# from qlib.model.learner import train_model +from qlib.utils import init_instance_by_config + +import pickle + +if __name__ == "__main__": + + # use default data + provider_uri = "~/.qlib/qlib_data/cn_data" # target_dir + if not exists_qlib_data(provider_uri): + print(f"Qlib data is not found in {provider_uri}") + sys.path.append(str(Path(__file__).resolve().parent.parent.joinpath("scripts"))) + from get_data import GetData + + GetData().qlib_data(target_dir=provider_uri, region=REG_CN) + + qlib.init(provider_uri=provider_uri, region=REG_CN) + + MARKET = "csi300" + BENCHMARK = "SH000300" + + ################################### + # train model + ################################### + DATA_HANDLER_CONFIG = { + "start_time": "2008-01-01", + "end_time": "2020-08-01", + "fit_start_time": "2008-01-01", + "fit_end_time": "2014-12-31", + "instruments": MARKET, + } + + TRAINER_CONFIG = { + "train_start_time": "2008-01-01", + "train_end_time": "2014-12-31", + "validate_start_time": "2015-01-01", + "validate_end_time": "2016-12-31", + "test_start_time": "2017-01-01", + "test_end_time": "2020-08-01", + } + + task = { + "model": { + "class": "ALSTM", + "module_path": "qlib.contrib.model.pytorch_alstm", + "kwargs": { + "d_feat": 6, + "hidden_size": 64, + "num_layers": 2, + "dropout": 0.0, + "n_epochs": 200, + "lr": 1e-3, + "early_stop": 20, + "batch_size": 800, + "metric": "IC", + "loss": "mse", + "seed": 0, + "GPU": 0, + "rnn_type": "GRU" + }, + }, + "dataset": { + "class": "DatasetH", + "module_path": "qlib.data.dataset", + "kwargs": { + "handler": { + "class": "ALPHA360_Denoise", + "module_path": "qlib.contrib.data.handler", + "kwargs": DATA_HANDLER_CONFIG, + }, + "segments": { + "train": ("2008-01-01", "2014-12-31"), + "valid": ("2015-01-01", "2016-12-31"), + "test": ("2017-01-01", "2020-08-01"), + }, + }, + } + # You shoud record the data in specific sequence + # "record": ['SignalRecord', 'SigAnaRecord', 'PortAnaRecord'], + } + + # model = train_model(task) + model = init_instance_by_config(task["model"]) + dataset = init_instance_by_config(task["dataset"]) + model.fit(dataset) + + pred_score = model.predict(dataset) + + # save pred_score to file + pred_score_path = Path("~/tmp/qlib/pred_score.pkl").expanduser() + pred_score_path.parent.mkdir(exist_ok=True, parents=True) + pred_score.to_pickle(pred_score_path) + + ################################### + # backtest + ################################### + STRATEGY_CONFIG = { + "topk": 50, + "n_drop": 5, + } + BACKTEST_CONFIG = { + "verbose": False, + "limit_threshold": 0.095, + "account": 100000000, + "benchmark": BENCHMARK, + "deal_price": "close", + "open_cost": 0.0005, + "close_cost": 0.0015, + "min_cost": 5, + } + + # use default strategy + # custom Strategy, refer to: TODO: Strategy API url + strategy = TopkDropoutStrategy(**STRATEGY_CONFIG) + report_normal, positions_normal = normal_backtest(pred_score, strategy=strategy, **BACKTEST_CONFIG) + + ################################### + # analyze + # If need a more detailed analysis, refer to: examples/train_and_bakctest.ipynb + ################################### + analysis = dict() + analysis["excess_return_without_cost"] = risk_analysis(report_normal["return"] - report_normal["bench"]) + analysis["excess_return_with_cost"] = risk_analysis( + report_normal["return"] - report_normal["bench"] - report_normal["cost"] + ) + analysis_df = pd.concat(analysis) # type: pd.DataFrame + print(analysis_df) \ No newline at end of file From 05599d1de8ec7b0e48ba7b71a2905027d40f2666 Mon Sep 17 00:00:00 2001 From: Don-ustc <43958178+Don-ustc@users.noreply.github.com> Date: Wed, 25 Nov 2020 19:13:53 +0800 Subject: [PATCH 12/13] Update about ALSTM --- qlib/contrib/model/pytorch_alstm.py | 392 ++++++++++++++++++++++++++++ 1 file changed, 392 insertions(+) create mode 100644 qlib/contrib/model/pytorch_alstm.py diff --git a/qlib/contrib/model/pytorch_alstm.py b/qlib/contrib/model/pytorch_alstm.py new file mode 100644 index 000000000..b302925ec --- /dev/null +++ b/qlib/contrib/model/pytorch_alstm.py @@ -0,0 +1,392 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + + +from __future__ import division +from __future__ import print_function + +import os +import numpy as np +import pandas as pd +import copy +from sklearn.metrics import roc_auc_score, mean_squared_error +import logging +from ...utils import unpack_archive_with_buffer, save_multiple_parts_file, create_save_path, drop_nan_by_y_index +from ...log import get_module_logger, TimeInspector + +import torch +import torch.nn as nn +import torch.optim as optim + +from ...model.base import Model +from ...data.dataset import DatasetH +from ...data.dataset.handler import DataHandlerLP + + +class ALSTM(Model): + """ALSTM Model + + Parameters + ---------- + input_dim : int + input dimension + output_dim : int + output dimension + layers : tuple + layer sizes + lr : float + learning rate + optimizer : str + optimizer name + GPU : str + the GPU ID(s) used for training + """ + + def __init__( + self, + d_feat=6, + hidden_size=64, + num_layers=2, + dropout=0.0, + n_epochs=200, + lr=0.001, + metric="IC", + batch_size=2000, + early_stop=20, + loss="mse", + optimizer="adam", + GPU="0", + seed=0, + rnn_type="GRU", + **kwargs + ): + # Set logger. + self.logger = get_module_logger("ALSTM") + self.logger.info("ALSTM pytorch version...") + + # set hyper-parameters. + self.d_feat = d_feat + self.hidden_size = hidden_size + self.num_layers = num_layers + self.dropout = dropout + self.n_epochs = n_epochs + self.lr = lr + self.metric = metric + self.batch_size = batch_size + self.early_stop = early_stop + self.optimizer = optimizer.lower() + self.loss = loss + self.visible_GPU = GPU + self.use_gpu = torch.cuda.is_available() + self.seed = seed + self.rnn_type = rnn_type + + self.logger.info( + "ALSTM parameters setting:" + "\nd_feat : {}" + "\nhidden_size : {}" + "\nnum_layers : {}" + "\ndropout : {}" + "\nn_epochs : {}" + "\nlr : {}" + "\nmetric : {}" + "\nbatch_size : {}" + "\nearly_stop : {}" + "\noptimizer : {}" + "\nloss_type : {}" + "\nvisible_GPU : {}" + "\nuse_GPU : {}" + "\nseed : {}" + "\nrnn_type : {}".format( + d_feat, + hidden_size, + num_layers, + dropout, + n_epochs, + lr, + metric, + batch_size, + early_stop, + optimizer.lower(), + loss, + GPU, + self.use_gpu, + seed, + self.rnn_type, + ) + ) + + if loss not in {"mse", "binary"}: + raise NotImplementedError("loss {} is not supported!".format(loss)) + self._scorer = mean_squared_error if loss == "mse" else roc_auc_score + + self.alstm_model = ALSTMModel( + d_feat=self.d_feat, hidden_size=self.hidden_size, num_layers=self.num_layers, dropout=self.dropout + ) + # def __init__(self, d_feat=6, hidden_size=64, num_layers=2, dropout=0.0, input_day=20, rnn_type="GRU"): + + if optimizer.lower() == "adam": + self.train_optimizer = optim.Adam(self.alstm_model.parameters(), lr=self.lr) + elif optimizer.lower() == "gd": + self.train_optimizer = optim.SGD(self.alstm_model.parameters(), lr=self.lr) + else: + raise NotImplementedError("optimizer {} is not supported!".format(optimizer)) + + self._fitted = False + if self.use_gpu: + self.alstm_model.cuda() + # set the visible GPU + if self.visible_GPU: + os.environ["CUDA_VISIBLE_DEVICES"] = self.visible_GPU + + def mse(self, pred, label): + loss = (pred - label) ** 2 + return torch.mean(loss) + + def loss_fn(self, pred, label): + mask = ~torch.isnan(label) + + if self.loss == "mse": + return self.mse(pred[mask], label[mask]) + + raise ValueError("unknown loss `%s`" % self.loss) + + def metric_fn(self, pred, label): + + mask = torch.isfinite(label) + if self.metric == "IC": + return self.cal_ic(pred[mask], label[mask]) + + if self.metric == "" or self.metric == "loss": # use loss + return -self.loss_fn(pred[mask], label[mask]) + + raise ValueError("unknown metric `%s`" % self.metric) + + def cal_ic(self, pred, label): + return torch.mean(pred * label) + + def train_epoch(self, x_train, y_train): + + x_train_values = x_train.values + y_train_values = np.squeeze(y_train.values) * 100 + + self.alstm_model.train() + + indices = np.arange(len(x_train_values)) + np.random.shuffle(indices) + + for i in range(len(indices))[:: self.batch_size]: + + if len(indices) - i < self.batch_size: + break + + feature = torch.from_numpy(x_train_values[indices[i : i + self.batch_size]]).float() + label = torch.from_numpy(y_train_values[indices[i : i + self.batch_size]]).float() + + if self.use_gpu: + feature = feature.cuda() + label = label.cuda() + + pred = self.alstm_model(feature) + loss = self.loss_fn(pred, label) + + self.train_optimizer.zero_grad() + loss.backward() + torch.nn.utils.clip_grad_value_(self.alstm_model.parameters(), 3.0) + self.train_optimizer.step() + + def test_epoch(self, data_x, data_y): + + # prepare training data + x_values = data_x.values + y_values = np.squeeze(data_y.values) + + self.alstm_model.eval() + + scores = [] + losses = [] + + indices = np.arange(len(x_values)) + np.random.shuffle(indices) + + for i in range(len(indices))[:: self.batch_size]: + + if len(indices) - i < self.batch_size: + break + + feature = torch.from_numpy(x_values[indices[i : i + self.batch_size]]).float() + label = torch.from_numpy(y_values[indices[i : i + self.batch_size]]).float() + + if self.use_gpu: + feature = feature.cuda() + label = label.cuda() + + pred = self.alstm_model(feature) + loss = self.loss_fn(pred, label) + losses.append(loss.item()) + + score = self.metric_fn(pred, label) + scores.append(score.item()) + + return np.mean(losses), np.mean(scores) + + def fit( + self, + dataset: DatasetH, + evals_result=dict(), + verbose=True, + save_path=None, + ): + + df_train, df_valid, df_test = dataset.prepare( + ["train", "valid", "test"], col_set=["feature", "label"], data_key=DataHandlerLP.DK_L + ) + + x_train, y_train = df_train["feature"], df_train["label"] + x_valid, y_valid = df_valid["feature"], df_valid["label"] + + if save_path == None: + save_path = create_save_path(save_path) + stop_steps = 0 + train_loss = 0 + best_score = -np.inf + best_epoch = 0 + evals_result["train"] = [] + evals_result["valid"] = [] + + # train + self.logger.info("training...") + self._fitted = True + # return + + for step in range(self.n_epochs): + self.logger.info("Epoch%d:", step) + self.logger.info("training...") + self.train_epoch(x_train, y_train) + self.logger.info("evaluating...") + train_loss, train_score = self.test_epoch(x_train, y_train) + val_loss, val_score = self.test_epoch(x_valid, y_valid) + self.logger.info("train %.6f, valid %.6f" % (train_score, val_score)) + evals_result["train"].append(train_score) + evals_result["valid"].append(val_score) + + if val_score > best_score: + best_score = val_score + stop_steps = 0 + best_epoch = step + best_param = copy.deepcopy(self.alstm_model.state_dict()) + else: + stop_steps += 1 + if stop_steps >= self.early_stop: + self.logger.info("early stop") + break + + self.logger.info("best score: %.6lf @ %d" % (best_score, best_epoch)) + self.alstm_model.load_state_dict(best_param) + torch.save(best_param, save_path) + + if self.use_gpu: + torch.cuda.empty_cache() + + def predict(self, dataset): + if not self._fitted: + raise ValueError("model is not fitted yet!") + + x_test = dataset.prepare("test", col_set="feature") + index = x_test.index + self.alstm_model.eval() + x_values = x_test.values + sample_num = x_values.shape[0] + preds = [] + + for begin in range(sample_num)[:: self.batch_size]: + + if sample_num - begin < self.batch_size: + end = sample_num + else: + end = begin + self.batch_size + + x_batch = torch.from_numpy(x_values[begin:end]).float() + + if self.use_gpu: + x_batch = x_batch.cuda() + + with torch.no_grad(): + if self.use_gpu: + pred = self.alstm_model(x_batch).detach().cpu().numpy() + else: + pred = self.alstm_model(x_batch).detach().numpy() + + preds.append(pred) + + return pd.Series(np.concatenate(preds), index=index) + + +class GRUModel(nn.Module): + def __init__(self, d_feat=6, hidden_size=64, num_layers=2, dropout=0.0): + super().__init__() + + self.rnn = nn.GRU( + input_size=d_feat, + hidden_size=hidden_size, + num_layers=num_layers, + batch_first=True, + dropout=dropout, + ) + self.fc_out = nn.Linear(hidden_size, 1) + + self.d_feat = d_feat + + def forward(self, x): + # x: [N, F*T] + x = x.reshape(len(x), self.d_feat, -1) # [N, F, T] + x = x.permute(0, 2, 1) # [N, T, F] + out, _ = self.rnn(x) + return self.fc_out(out[:, -1, :]).squeeze() + + + +class ALSTMModel(nn.Module): + def __init__(self, d_feat=6, hidden_size=64, num_layers=2, dropout=0.0, rnn_type="GRU"): + super().__init__() + self.hid_size = hidden_size + self.input_size = d_feat + self.dropout = dropout + self.rnn_type = rnn_type + self.rnn_layer = num_layers + self._build_model() + + def _build_model(self): + try: + klass = getattr(nn, self.rnn_type.upper()) + except: + raise ValueError('unknown rnn_type `%s`' % self.rnn_type) + self.net = nn.Sequential() + self.net.add_module('fc_in', nn.Linear(in_features=self.input_size, out_features=self.hid_size)) + self.net.add_module('act', nn.Tanh()) + self.rnn = klass(input_size=self.hid_size, + hidden_size=self.hid_size, + num_layers=self.rnn_layer, + batch_first=True, + dropout=self.dropout) + self.fc_out = nn.Linear(in_features=self.hid_size*2, out_features=1) + # self.fc_out = nn.Linear(in_features=self.hid_size, out_features=1) + self.att_net = nn.Sequential() + self.att_net.add_module('att_fc_in', nn.Linear(in_features=self.hid_size, out_features=int(self.hid_size/2))) + self.att_net.add_module('att_dropout', torch.nn.Dropout(self.dropout)) + self.att_net.add_module('att_act', nn.Tanh()) + self.att_net.add_module('att_fc_out', nn.Linear(in_features=int(self.hid_size/2), out_features=1, bias=False)) + self.att_net.add_module('att_softmax', nn.Softmax(dim=1)) + + def forward(self, inputs): + # inputs: [batch_size, input_size*input_day] + inputs = inputs.view(len(inputs), self.input_size, -1) + inputs = inputs.permute(0, 2, 1) # [batch, input_size, seq_len] -> [batch, seq_len, input_size] + rnn_out, _ = self.rnn(self.net(inputs)) # [batch, seq_len, num_directions * hidden_size] + attention_score = self.att_net(rnn_out) # [batch, seq_len, 1] + out_att = torch.mul(rnn_out, attention_score) + out_att = torch.sum(out_att, dim=1) + out = self.fc_out(torch.cat((rnn_out[:, -1, :], out_att), dim=1)) # [batch, seq_len, num_directions * hidden_size] -> [batch, 1] + # out = self.fc_out(rnn_out[:, -1, :] + out_att) + return out[..., 0] + From a99db6a1dc6afb3df12a7ece52375e535204ae65 Mon Sep 17 00:00:00 2001 From: Jactus Date: Wed, 25 Nov 2020 19:29:30 +0800 Subject: [PATCH 13/13] Add ALSTM config --- README.md | 4 +- examples/benchmarks/ALSTM/requirements.txt | 4 ++ .../ALSTM/workflow_config_alstm.yaml | 69 +++++++++++++++++++ examples/workflow_by_code_alstm.py | 4 +- examples/workflow_by_code_hats.py | 2 +- qlib/contrib/evaluate.py | 2 +- qlib/contrib/model/pytorch_alstm.py | 42 +++++------ qlib/contrib/model/pytorch_gats.py | 6 +- qlib/contrib/model/pytorch_hats.py | 55 ++++++++------- qlib/data/dataset/__init__.py | 4 +- 10 files changed, 139 insertions(+), 53 deletions(-) create mode 100644 examples/benchmarks/ALSTM/requirements.txt create mode 100644 examples/benchmarks/ALSTM/workflow_config_alstm.yaml diff --git a/README.md b/README.md index 4383dea26..cd0c8542f 100644 --- a/README.md +++ b/README.md @@ -196,10 +196,12 @@ Here is a list of models built on `Qlib`. - [MLP based on pytorch](qlib/contrib/model/pytorch_nn.py) - [GRU based on pytorch](qlib/contrib/model/pytorch_gru.py) - [LSTM based on pytorcn](qlib/contrib/model/pytorch_lstm.py) +- [ALSTM based on pytorcn](qlib/contrib/model/pytorch_alstm.py) - [GATs based on pytorch](qlib/contrib/model/pytorch_gats.py) - [TabNet based on pytorch](qlib/contrib/model/tabnet.py) - [SFM based on pytorch](qlib/contrib/model/pytorch_sfm.py) - +- [HATs based on pytorch](qlib/contrib/model/pytorch_hats.py) +- [TFT based on tensorflow](examples/benchmarks/TFT/tft.py) Your PR of new Quant models is highly welcomed. diff --git a/examples/benchmarks/ALSTM/requirements.txt b/examples/benchmarks/ALSTM/requirements.txt new file mode 100644 index 000000000..1fc2779c0 --- /dev/null +++ b/examples/benchmarks/ALSTM/requirements.txt @@ -0,0 +1,4 @@ +numpy==1.17.4 +pandas==1.1.2 +scikit_learn==0.23.2 +torch==1.7.0 diff --git a/examples/benchmarks/ALSTM/workflow_config_alstm.yaml b/examples/benchmarks/ALSTM/workflow_config_alstm.yaml new file mode 100644 index 000000000..bb35b6da5 --- /dev/null +++ b/examples/benchmarks/ALSTM/workflow_config_alstm.yaml @@ -0,0 +1,69 @@ +provider_uri: "~/.qlib/qlib_data/cn_data" +region: cn +market: &market csi300 +benchmark: &benchmark SH000300 +data_handler_config: &data_handler_config + start_time: 2008-01-01 + end_time: 2020-08-01 + fit_start_time: 2008-01-01 + fit_end_time: 2014-12-31 + instruments: *market +port_analysis_config: &port_analysis_config + strategy: + class: TopkDropoutStrategy + module_path: qlib.contrib.strategy.strategy + kwargs: + topk: 50 + n_drop: 5 + backtest: + verbose: False + limit_threshold: 0.095 + account: 100000000 + benchmark: *benchmark + deal_price: close + open_cost: 0.0005 + close_cost: 0.0015 + min_cost: 5 +task: + model: + class: ALSTM + module_path: qlib.contrib.model.pytorch_alstm + kwargs: + d_feat: 6 + hidden_size: 64 + num_layers: 2 + dropout: 0.0 + n_epochs: 200 + lr: 1e-3 + early_stop: 20 + batch_size: 800 + metric: IC + loss: mse + seed: 0 + GPU: 0 + rnn_type: GRU + dataset: + class: DatasetH + module_path: qlib.data.dataset + kwargs: + handler: + class: ALPHA360_Denoise + module_path: qlib.contrib.data.handler + kwargs: *data_handler_config + segments: + train: [2008-01-01, 2014-12-31] + valid: [2015-01-01, 2016-12-31] + test: [2017-01-01, 2020-08-01] + record: + - class: SignalRecord + module_path: qlib.workflow.record_temp + kwargs: {} + - class: SigAnaRecord + module_path: qlib.workflow.record_temp + kwargs: + ana_long_short: False + ann_scaler: 252 + - class: PortAnaRecord + module_path: qlib.workflow.record_temp + kwargs: + config: *port_analysis_config \ No newline at end of file diff --git a/examples/workflow_by_code_alstm.py b/examples/workflow_by_code_alstm.py index 3137b6605..eabce3b07 100644 --- a/examples/workflow_by_code_alstm.py +++ b/examples/workflow_by_code_alstm.py @@ -74,7 +74,7 @@ if __name__ == "__main__": "loss": "mse", "seed": 0, "GPU": 0, - "rnn_type": "GRU" + "rnn_type": "GRU", }, }, "dataset": { @@ -142,4 +142,4 @@ if __name__ == "__main__": report_normal["return"] - report_normal["bench"] - report_normal["cost"] ) analysis_df = pd.concat(analysis) # type: pd.DataFrame - print(analysis_df) \ No newline at end of file + print(analysis_df) diff --git a/examples/workflow_by_code_hats.py b/examples/workflow_by_code_hats.py index 0cba29b63..3ea81ba49 100644 --- a/examples/workflow_by_code_hats.py +++ b/examples/workflow_by_code_hats.py @@ -100,7 +100,7 @@ if __name__ == "__main__": # model = train_model(task) model = init_instance_by_config(task["model"]) dataset = init_instance_by_config(task["dataset"]) - model.fit(dataset,save_path='benchmarks/HATS/model_hat.pkl') + model.fit(dataset, save_path="benchmarks/HATS/model_hat.pkl") pred_score = model.predict(dataset) diff --git a/qlib/contrib/evaluate.py b/qlib/contrib/evaluate.py index cf1793c93..2b85f1a9b 100644 --- a/qlib/contrib/evaluate.py +++ b/qlib/contrib/evaluate.py @@ -228,7 +228,7 @@ def backtest(pred, account=1e9, shift=1, benchmark="SH000905", verbose=True, **k strategy type: TopkAmountStrategy ,TopkWeightStrategy or TopkDropoutStrategy - **exchange related arguments** - + exchange: Exchange() pass the exchange for speeding up. subscribe_fields: list diff --git a/qlib/contrib/model/pytorch_alstm.py b/qlib/contrib/model/pytorch_alstm.py index b302925ec..bdf1e3ea0 100644 --- a/qlib/contrib/model/pytorch_alstm.py +++ b/qlib/contrib/model/pytorch_alstm.py @@ -345,7 +345,6 @@ class GRUModel(nn.Module): return self.fc_out(out[:, -1, :]).squeeze() - class ALSTMModel(nn.Module): def __init__(self, d_feat=6, hidden_size=64, num_layers=2, dropout=0.0, rnn_type="GRU"): super().__init__() @@ -360,33 +359,36 @@ class ALSTMModel(nn.Module): try: klass = getattr(nn, self.rnn_type.upper()) except: - raise ValueError('unknown rnn_type `%s`' % self.rnn_type) + raise ValueError("unknown rnn_type `%s`" % self.rnn_type) self.net = nn.Sequential() - self.net.add_module('fc_in', nn.Linear(in_features=self.input_size, out_features=self.hid_size)) - self.net.add_module('act', nn.Tanh()) - self.rnn = klass(input_size=self.hid_size, - hidden_size=self.hid_size, - num_layers=self.rnn_layer, - batch_first=True, - dropout=self.dropout) - self.fc_out = nn.Linear(in_features=self.hid_size*2, out_features=1) + self.net.add_module("fc_in", nn.Linear(in_features=self.input_size, out_features=self.hid_size)) + self.net.add_module("act", nn.Tanh()) + self.rnn = klass( + input_size=self.hid_size, + hidden_size=self.hid_size, + num_layers=self.rnn_layer, + batch_first=True, + dropout=self.dropout, + ) + self.fc_out = nn.Linear(in_features=self.hid_size * 2, out_features=1) # self.fc_out = nn.Linear(in_features=self.hid_size, out_features=1) self.att_net = nn.Sequential() - self.att_net.add_module('att_fc_in', nn.Linear(in_features=self.hid_size, out_features=int(self.hid_size/2))) - self.att_net.add_module('att_dropout', torch.nn.Dropout(self.dropout)) - self.att_net.add_module('att_act', nn.Tanh()) - self.att_net.add_module('att_fc_out', nn.Linear(in_features=int(self.hid_size/2), out_features=1, bias=False)) - self.att_net.add_module('att_softmax', nn.Softmax(dim=1)) + self.att_net.add_module("att_fc_in", nn.Linear(in_features=self.hid_size, out_features=int(self.hid_size / 2))) + self.att_net.add_module("att_dropout", torch.nn.Dropout(self.dropout)) + self.att_net.add_module("att_act", nn.Tanh()) + self.att_net.add_module("att_fc_out", nn.Linear(in_features=int(self.hid_size / 2), out_features=1, bias=False)) + self.att_net.add_module("att_softmax", nn.Softmax(dim=1)) def forward(self, inputs): # inputs: [batch_size, input_size*input_day] inputs = inputs.view(len(inputs), self.input_size, -1) - inputs = inputs.permute(0, 2, 1) # [batch, input_size, seq_len] -> [batch, seq_len, input_size] - rnn_out, _ = self.rnn(self.net(inputs)) # [batch, seq_len, num_directions * hidden_size] - attention_score = self.att_net(rnn_out) # [batch, seq_len, 1] + inputs = inputs.permute(0, 2, 1) # [batch, input_size, seq_len] -> [batch, seq_len, input_size] + rnn_out, _ = self.rnn(self.net(inputs)) # [batch, seq_len, num_directions * hidden_size] + attention_score = self.att_net(rnn_out) # [batch, seq_len, 1] out_att = torch.mul(rnn_out, attention_score) out_att = torch.sum(out_att, dim=1) - out = self.fc_out(torch.cat((rnn_out[:, -1, :], out_att), dim=1)) # [batch, seq_len, num_directions * hidden_size] -> [batch, 1] + out = self.fc_out( + torch.cat((rnn_out[:, -1, :], out_att), dim=1) + ) # [batch, seq_len, num_directions * hidden_size] -> [batch, 1] # out = self.fc_out(rnn_out[:, -1, :] + out_att) return out[..., 0] - diff --git a/qlib/contrib/model/pytorch_gats.py b/qlib/contrib/model/pytorch_gats.py index 77e3b9de9..07af4eda4 100755 --- a/qlib/contrib/model/pytorch_gats.py +++ b/qlib/contrib/model/pytorch_gats.py @@ -265,12 +265,14 @@ class GAT(Model): self.logger.info("Loading pretrained model...") if self.base_model == "LSTM": from ...contrib.model.pytorch_lstm import LSTMModel + pretrained_model = LSTMModel() - pretrained_model.load_state_dict(torch.load('benchmarks/LSTM/model_lstm_csi300.pkl')) + pretrained_model.load_state_dict(torch.load("benchmarks/LSTM/model_lstm_csi300.pkl")) elif self.base_model == "GRU": from ...contrib.model.pytorch_gru import GRUModel + pretrained_model = GRUModel() - pretrained_model.load_state_dict(torch.load('benchmarks/GRU/model_gru_csi300.pkl')) + pretrained_model.load_state_dict(torch.load("benchmarks/GRU/model_gru_csi300.pkl")) model_dict = self.GAT_model.state_dict() pretrained_dict = {k: v for k, v in pretrained_model.state_dict().items() if k in model_dict} model_dict.update(pretrained_dict) diff --git a/qlib/contrib/model/pytorch_hats.py b/qlib/contrib/model/pytorch_hats.py index 6a09e685b..7b4307e25 100644 --- a/qlib/contrib/model/pytorch_hats.py +++ b/qlib/contrib/model/pytorch_hats.py @@ -78,7 +78,7 @@ class HATS(Model): self.optimizer = optimizer.lower() self.loss = loss self.base_model = base_model - self.with_pretrain = with_pretrain #### True if train HATS with pretrained base model + self.with_pretrain = with_pretrain #### True if train HATS with pretrained base model self.visible_GPU = GPU self.use_gpu = torch.cuda.is_available() self.seed = seed @@ -97,7 +97,7 @@ class HATS(Model): "\noptimizer : {}" "\nloss_type : {}" "\nbase_model : {}" - "\nwith_pretrain : {}" ##### debug + "\nwith_pretrain : {}" ##### debug "\nvisible_GPU : {}" "\nuse_GPU : {}" "\nseed : {}".format( @@ -113,7 +113,7 @@ class HATS(Model): optimizer.lower(), loss, base_model, - with_pretrain, ### debug + with_pretrain, ### debug GPU, self.use_gpu, seed, @@ -265,12 +265,14 @@ class HATS(Model): self.logger.info("loading pretrained model...") if self.base_model == "LSTM": from ...contrib.model.pytorch_lstm import LSTMModel + pretrained_model = LSTMModel() - pretrained_model.load_state_dict(torch.load('benchmarks/LSTM/model_lstm_csi300.pkl')) + pretrained_model.load_state_dict(torch.load("benchmarks/LSTM/model_lstm_csi300.pkl")) elif self.base_model == "GRU": from ...contrib.model.pytorch_gru import GRUModel + pretrained_model = GRUModel() - pretrained_model.load_state_dict(torch.load('benchmarks/GRU/model_gru_csi300.pkl')) + pretrained_model.load_state_dict(torch.load("benchmarks/GRU/model_gru_csi300.pkl")) model_dict = self.HATS_model.state_dict() # filter unnecessary parameters @@ -281,7 +283,6 @@ class HATS(Model): self.HATS_model.load_state_dict(model_dict) self.logger.info("loading pretrained model Done...") - # train self.logger.info("training...") self._fitted = True @@ -382,22 +383,24 @@ class HATSModel(nn.Module): self.softmax = nn.Softmax(dim=1) self.d_feat = d_feat - num_head_att = [1]*num_layers - hidden_dim = [hidden_size]*num_layers - dims = [d_feat] + [d*nh for (d, nh) in zip(hidden_dim, num_head_att[:-1])] + [num_head_att[-1]] + num_head_att = [1] * num_layers + hidden_dim = [hidden_size] * num_layers + dims = [d_feat] + [d * nh for (d, nh) in zip(hidden_dim, num_head_att[:-1])] + [num_head_att[-1]] in_dims = dims[:-1] out_dims = [d // nh for (d, nh) in zip(dims[1:], num_head_att)] - self.attn = nn.ModuleList([GraphAttention(i, o, nh, dropout) for (i, o, nh) in zip(in_dims, out_dims,num_head_att)]) + self.attn = nn.ModuleList( + [GraphAttention(i, o, nh, dropout) for (i, o, nh) in zip(in_dims, out_dims, num_head_att)] + ) self.bns = nn.ModuleList([nn.BatchNorm1d(dim) for dim in dims[1:-1]]) self.dropout = nn.Dropout(dropout) self.elu = nn.ELU() def forward(self, x): - x = x.reshape(len(x), self.d_feat, -1) # [N, F, T] - x = x.permute(0, 2, 1) # [N, T, F] - out,_ = self.model(x) + x = x.reshape(len(x), self.d_feat, -1) # [N, F, T] + x = x.permute(0, 2, 1) # [N, T, F] + out, _ = self.model(x) hidden = out[:, -1, :] - hidden = self.bn1(hidden) + hidden = self.bn1(hidden) attention = GraphAttention.cal_attention(hidden, hidden) output = attention.mm(hidden) output = self.fc(output) @@ -406,9 +409,7 @@ class HATSModel(nn.Module): return self.fc_out(output).squeeze() - class GraphAttention(nn.Module): - def __init__(self, input_dim, output_dim, num_heads, dropout=0.5): super().__init__() @@ -431,7 +432,7 @@ class GraphAttention(nn.Module): self.num_heads = num_heads self.fcs = nn.ModuleList([nn.Linear(input_dim, output_dim) for _ in range(num_heads)]) - self.a = nn.ModuleList([nn.Linear(2*output_dim, 1) for _ in range(num_heads)]) + self.a = nn.ModuleList([nn.Linear(2 * output_dim, 1) for _ in range(num_heads)]) self.dropout = nn.Dropout(dropout) self.softmax = nn.Softmax(dim=0) @@ -465,7 +466,6 @@ class GraphAttention(nn.Module): sum_degs = np.hstack(([0], np.cumsum([len(row) for row in rows]))) mapped_nodes = [mapping[v] for v in nodes] indices = torch.LongTensor([[v, c] for (v, row) in zip(mapped_nodes, rows) for c in row]).t() - out = [] for k in range(self.num_heads): @@ -477,7 +477,7 @@ class GraphAttention(nn.Module): e = self.leakyrelu(self.a[k](cat_h)) - alpha = [self.softmax(e[lo : hi]) for (lo, hi) in zip(sum_degs, sum_degs[1:])] + alpha = [self.softmax(e[lo:hi]) for (lo, hi) in zip(sum_degs, sum_degs[1:])] alpha = torch.cat(tuple(alpha), dim=0) alpha = alpha.squeeze(1) alpha = self.dropout(alpha) @@ -487,11 +487,18 @@ class GraphAttention(nn.Module): return out - def cal_attention(x, y): - - att_x = torch.mean(x, dim = 1).reshape(-1, 1) - att_y = torch.mean(y, dim = 1).reshape(-1, 1) + def cal_attention(x, y): + + att_x = torch.mean(x, dim=1).reshape(-1, 1) + att_y = torch.mean(y, dim=1).reshape(-1, 1) att = att_x.mm(torch.t(att_y)) x_att = x.reshape(x.shape[0], 1, x.shape[1]).repeat(1, y.shape[0], 1) y_att = y.reshape(1, y.shape[0], y.shape[1]).repeat(x.shape[0], 1, 1) - return torch.mean(x.reshape(x.shape[0], 1, x.shape[1]).repeat(1, y.shape[0], 1)*y.reshape(1, y.shape[0], y.shape[1]).repeat(x.shape[0], 1, 1), dim = 2)-att \ No newline at end of file + return ( + torch.mean( + x.reshape(x.shape[0], 1, x.shape[1]).repeat(1, y.shape[0], 1) + * y.reshape(1, y.shape[0], y.shape[1]).repeat(x.shape[0], 1, 1), + dim=2, + ) + - att + ) diff --git a/qlib/data/dataset/__init__.py b/qlib/data/dataset/__init__.py index 3dbc17c23..e972aba3c 100644 --- a/qlib/data/dataset/__init__.py +++ b/qlib/data/dataset/__init__.py @@ -18,7 +18,7 @@ class Dataset(Serializable): - setup data - The data related attributes' names should start with '_' so that it will not be saved on disk when serializing - + - initialize the state of the dataset(info to prepare the data) - The name of essential state for preparing data should not start with '_' so that it could be serialized on disk when serializing. @@ -99,7 +99,7 @@ class DatasetH(Dataset): Here are some examples: .. code-block:: - + 1) 'segments': { 'train': ("2008-01-01", "2014-12-31"), 'valid': ("2017-01-01", "2020-08-01",),