![圖神經(jīng)網(wǎng)絡(luò)與新聞共現(xiàn)矩陣的A股實(shí)踐_第1頁](http://file4.renrendoc.com/view/7b0fddc378b8d9a16a73847a77ab2ebb/7b0fddc378b8d9a16a73847a77ab2ebb1.gif)
![圖神經(jīng)網(wǎng)絡(luò)與新聞共現(xiàn)矩陣的A股實(shí)踐_第2頁](http://file4.renrendoc.com/view/7b0fddc378b8d9a16a73847a77ab2ebb/7b0fddc378b8d9a16a73847a77ab2ebb2.gif)
![圖神經(jīng)網(wǎng)絡(luò)與新聞共現(xiàn)矩陣的A股實(shí)踐_第3頁](http://file4.renrendoc.com/view/7b0fddc378b8d9a16a73847a77ab2ebb/7b0fddc378b8d9a16a73847a77ab2ebb3.gif)
![圖神經(jīng)網(wǎng)絡(luò)與新聞共現(xiàn)矩陣的A股實(shí)踐_第4頁](http://file4.renrendoc.com/view/7b0fddc378b8d9a16a73847a77ab2ebb/7b0fddc378b8d9a16a73847a77ab2ebb4.gif)
![圖神經(jīng)網(wǎng)絡(luò)與新聞共現(xiàn)矩陣的A股實(shí)踐_第5頁](http://file4.renrendoc.com/view/7b0fddc378b8d9a16a73847a77ab2ebb/7b0fddc378b8d9a16a73847a77ab2ebb5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
11圖神經(jīng)網(wǎng)絡(luò)與新聞共現(xiàn)矩陣的A股實(shí)踐新聞共現(xiàn)指的是兩個(gè)或多個(gè)股票出現(xiàn)在同一篇新聞中的情況。如果多個(gè)股票出現(xiàn)在同一篇新聞中,說明這22深度學(xué)習(xí)已經(jīng)廣泛的應(yīng)用于量化投資研究,特別是序列神經(jīng)網(wǎng)絡(luò)模型最大的優(yōu)勢是能夠?qū)螛颖径嗵卣髦g的非線性關(guān)系進(jìn)行建模,但問題是無法股票之間的關(guān)聯(lián)性如果度量?如何在預(yù)測時(shí),考慮股新聞共現(xiàn),指的是兩個(gè)或多個(gè)股票出現(xiàn)在同一篇新聞中的情況。如果多個(gè)股票出現(xiàn)在同一篇新聞中,說明這些股票一定程度上有內(nèi)在的關(guān)聯(lián)性。它們可能來自同一個(gè)行業(yè),或者都與近期的市場熱點(diǎn)的頻率與股票市值、股票波動(dòng)及分析師覆蓋度之間存在明顯的關(guān)聯(lián)性。個(gè)股之間的相關(guān)性隨著在新聞關(guān)系用一個(gè)向量表征表示。這個(gè)過程中即考慮了股票間的長期關(guān)系,也考慮了股票間的短期動(dòng)態(tài)關(guān)系?;谶@種共現(xiàn)關(guān)系使用機(jī)器學(xué)習(xí)模型提取出的表征信息與常用的股票因子,包括量價(jià)因子,一起輸入以新聞共現(xiàn)刻畫股票的關(guān)聯(lián)性,相對(duì)傳統(tǒng)的如收益率協(xié)方差矩陣、行業(yè)上下游等關(guān)聯(lián)性的特點(diǎn)是相比傳統(tǒng)的深度學(xué)習(xí),圖神經(jīng)網(wǎng)絡(luò)最大的特點(diǎn)是能夠?qū)⒉煌?jié)點(diǎn)的關(guān)聯(lián)性帶入模型中進(jìn)行學(xué)習(xí)。不同的圖神經(jīng)網(wǎng)絡(luò)模型的主要差別在于鄰節(jié)點(diǎn)向中心節(jié)點(diǎn)進(jìn)行消息傳遞與聚合的機(jī)制,圖注意力神經(jīng)33網(wǎng)絡(luò)相對(duì)于GCN等模型最大的特點(diǎn)是通過注意力機(jī)制,隱式地訓(xùn)練學(xué)習(xí)鄰居節(jié)點(diǎn)對(duì)中心注意力機(jī)制,這種方式不需要構(gòu)建顯示的股票關(guān)系圖,而是對(duì)每個(gè)節(jié)點(diǎn)計(jì)算其與其他所有節(jié)點(diǎn)的44defget_coc_dt(newstemp=news_data.query("trade_date==@dcoc_df=temp.pivot_table(index='news_id',columns='sec_code',values=coc_mat,coc_codes=coc_df.vaadj_mat=coc_mat.T.adj_df=pd.DataFrame(data=adj_mat,index=coc_codes,columns=coc_codes).replace(0,np.nanreturn(dt,adj_df)defget_coc_all(news_dataall_dts_str=[str(dt)fordtinnews_data['trade_date'].dt.date.unique()]coc_all_lst=Parallel(n_jobs=5)(delayed(get_coc_dt)(com_senti_fil,dt)fordtintqdm(all_dts_str))由于共現(xiàn)矩陣非常稀疏,如果直接保存矩陣將浪費(fèi)大量空間與效率,所以我們使用多重索引的55fromcollectionsimportcoc_all_lst=get_coc_allfordt,coc_matincoc_all_lst:temp=coc_mat.unstack().reindex(csi300_sec_code).T.#計(jì)算共現(xiàn)矩陣滾動(dòng)均值(指數(shù)加權(quán),半衰期為10以{dt:Series}的格df_csi300=pd.concat(csi300_coc_dct.values(),keys=csi300_coc_dctcoc_ewa_csi300=df_csi300.ewm(halflife=10,mincoc_ewa_csi300=coc_ewa_csi300.where(cococ_ewa_csi300_dct=Orforcolincoc_ewa_csi300:coc_ewa_csi300_dct[col]=coc_),66def__init__(self,d_feat=6,hidden_size=64,num_layers=2,lstm_dropout=0.0,gat_dropout=0.0,base_model="GRU"):raiseValueError("unknownbasself.transformation=nn.Linear(self.hself.a=nn.Parameteself.fc=nn.Linear(self.hself.dropout=nn.Dropdefcal_attention(self77attention_in=torch.cat((attention_out=self.a_t.mm(torch.t(attention_in)).view(sample_nattention_out=self.leaky_reluzero_vec=-9e15*torch.attention_out=torch.where(adj>att_weight=self.softmax(aatt_weight=self.dropoatt_weight=self.cal_attention(hiddenreturnself.fc_out(hidde2.get_adj_matrix根據(jù)參數(shù)dt和3.如何在train的過程中知道當(dāng)前訓(xùn)練數(shù)據(jù)的日期和股票代碼?我們可以看到在train_epoch和88def__init__(self,99**kwargs):("GATspyself.adj=self.load_adj_data(self.lstm_dropout=self.gat_dropout=self.device=torch.device("cu))hidden_size=self.hiddenum_layers=self.numlstm_dropout=self.lstm_)("model:\n{:}".format(("modelsize:{:.4f}Mself.train_optimizer=optim.Adam(self.GAT_moself.train_optimizer=optim.SGD(self.GATraiseNotImplementedError("optimizer{}defload_adj_data(self,adj_path,adj_hf,adj_th):withopen('./csi_coc_mat.pkl','rb')asf:df_csi300=pd.concat(csi300_coc_dct.values(),keys=csi300_coc_dctcoc_ewa_csi300=df_csi300.ewm(halflife=adj_hcoc_ewa_csi300=coc_ewa_csi300.where(coc_ewa_csi300_dct=forcolincoc_ewa_csi300:coc_ewa_csi300_dct[col]=defuse_gpu(self):returnself.device!=todefmse(self,pred,label):defloss_fn(self,pred,label):returnself.mse(pred[mask],labdefmetric_fn(self,pred,label):return-self.loss_fn(pred[mask],lraiseValueError("unknowdefget_daily_inter(self,df,sdaily_count=df.groupby(level=0).daily_shuffle=list(zinp.random.shuffle(daily_daily_index,daily_count=zip(*dreturndaily_index,dailydefget_adj_matrix(selfifnotisinstance(dt,str):fill_df=pd.DataFrame(np.diag(np.ones(len(res))[np.newaxis:]),index=res.index,columres=bine_first(deftrain_epoch(self,data_loaderdts=idx.get_level_codes=codes_idx[idxpred=self.GAT_model(torch.nn.utils.clip_grad_value_(self.GAT_model.paramdeftest_epoch(self,data_loader):dts=idx.get_level_codes=codes_idx[idpred=self.GAT_model(losses.append(loss.ireturnnp.mean(losses),np.mdeffit(self,):dl_train=dataset.prepare("train",col_set=["featuredl_valid=dataset.prepare("valid",col_set=["feature","label"],ifdl_train.emptyordl_valid.empty:raiseValueError("Emptydatafromdataset,pleasecheckyourdatadl_train.config(fillna_type="ffill+bfill")#processnanbroughdl_valid.config(fillna_type="ffill+bfill")#processnanbroughttrain_loader=DataLoader(dl_train,sampler=sampler_train,num_workers=valid_loader=DataLoader(dl_valid,sampler=sampler_valid,num_worpretrained_model=LSTMModel(d_feat=self.d_feat,hidden_size=self.hidden_size,nupretrained_model=GRUModel(d_feat=self.d_feat,hidden_size=self.hidden_size,nraiseValueError("unknownbasemodifself.model_pathisnotNone:("Loadingprpretrained_model.load_state_dict(torch.load(self.model_path,map_location=model_dict=self.GAT_model.k:vfork,vinpretrained_model.state_dict().items()ifkinmodel_dict#pylint:disable=E1135}model_dict.update(pretrself.GAT_model.load_("Loadingpretraintrain_loss,train_score=sval_loss,val_score=("train%.6f,valid%evals_result["train"].appendevals_result["valid"].apifval_score>best_scobest_param=copy.deepcopy(self.("bestscore:%.6lfself.GAT_model.load_statorch.save(best_param,defpredict(self,dataset):ifnotself.fitted:raiseValueError("modelisnotfdl_test=dataset.prepare("test",col_set=["feature","label"],data_key=Dadl_test.config(fillna_type="ffsampler_test=DailyBatctest_loader=DataLoader(dl_test,sampler=sampler_tdts=idx.get_level_codes=codes_idx[idpred=self.GAT_model(feature.float(),adj).returnpd.Series(np.concatenate(preds),index=dl_test.g),fromqlib.constantifromqlib.utilsimportexists_qlib_data,init_instance_by_conffromqlib.workflow.record_tempimportSignalRecord,fromqlib.utilsimportflaprovider_uri="~/qlibqlib.init(provider_uri=provider_uri,reg"kwargs":data_handler_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 冶煉設(shè)備金屬成型設(shè)備投資建設(shè)項(xiàng)目立項(xiàng)報(bào)告
- 2025年度家用凈水器節(jié)能技術(shù)改造升級(jí)合同
- 2025年度婚前財(cái)產(chǎn)保全及離婚補(bǔ)償協(xié)議書
- 中國樹脂車房片項(xiàng)目投資可行性研究報(bào)告
- 二次報(bào)銷申請書
- 2025年度建筑安裝工程監(jiān)理服務(wù)承包合同示范
- 2024-2030年輔助生殖市場前景展望與投資策略研究報(bào)告
- 2025年度高端婚禮慶典全程策劃委托服務(wù)合同
- 2025年度數(shù)據(jù)中心合同外施工維護(hù)合同
- 2025年度智慧家居產(chǎn)品銷售合同更改擔(dān)保協(xié)議書
- 光伏施工安全培訓(xùn)課件
- 參觀河南省博物院
- 醫(yī)療健康-泌尿生殖系統(tǒng)外科疾病主要癥狀醫(yī)學(xué)課件
- 中國節(jié)能協(xié)會(huì)團(tuán)體標(biāo)準(zhǔn)草案模板
- 招投標(biāo)現(xiàn)場項(xiàng)目經(jīng)理答辯(完整版)資料
- 大學(xué)開學(xué)第一課班會(huì)PPT
- 企業(yè)新春茶話會(huì)PPT模板
- 重大事故隱患整改臺(tái)賬
- DB15T 2058-2021 分梳綿羊毛標(biāo)準(zhǔn)
- (高職)銀行基本技能ppt課件(完整版)
- 山東省萊陽市望嵐口礦區(qū)頁巖礦
評(píng)論
0/150
提交評(píng)論