AFML讀書筆記 Meta Labeling

2021-10-01 03:49:33 字數 2102 閱讀 4751

本人失業在家,正在讀剛買的advance finance machine learning(afml),基於此書全是英文,有些知識點需要再次整理與鞏固,所以寫一下這個系列。

之前有搜到大神weixin_38753422的afml系列。寫得很詳細並且有**和解釋,鏈結在此part 1 chapter 3 主要闡述了如何給資料打標籤。大部分內容可以在『為金融資料打標籤』「1. 三隔欄方法」找到。

本文主要就meta-labeling這一技術進行簡單地整理。

什麼是meta-labeling

在本章節之前內容描述了如何給bar資料進行labeling:

首先更新本章節的函式getevents,在函式中加入可選引數side表示現在處於多頭還是空頭(side的輸入由第乙個model得出,也可以不傳)以確定合約方向

注:函式getevent是用於判斷在三隔欄方法bar第一次觸碰了哪個隔欄,並進行記錄。(**部分搬運書上的)

import pandas as pd

def getevent(close, tevents,ptsl, trgt, minret, numthreads, t1=false, side=none):

trgt = trgt.loc[tevents]

trgt = trgt[trgt > minret] #篩選出超出收益率閾值的資料

if t1 is false :

t1 = pd.series(pd.nat, index = tevents)

if side is none:

side_, ptsl = pd.series(1., index = trget.index), [ptsl[0], ptsl[0]]

else :

side_, ptsl = side.loc[trgt.index], pysl[:2]

events = pd.concat(, axis = 1).dropna(subset=['trgt'])

pdobj= ('molecule',events.index),\

numthred = numthreads, close = inst['close'], \

events = events ,ptsl = ptsl_) #這裡的func是本書之前定義用來確定三隔欄的函式,建議帶書看

events['t1'] = df0.dropna(how = 'all').min(axis = 1)

if side is none:

events = events.drop('side' , axis = 1)

return events

def getbins(events, close):

events_ = events.dropna(subset = ['t1'])

px = events_index.union(events_['t1'].values).drop_duplicates()

px = close.reindex(px, method = 'bfill')

out = pd.dataframe(index = events_.index)

out['ret'] = px.loc[events_['t1'].values].values/px.loc[events_index]-1

if 'side' in events_:

out['ret'] *= events_['side'] #meta-l

out['bin'] = np.sign(out['ret'])

if 'side' in events_:

out.loc[out['ret']]<=0 , 'bin'] = 0 #meta-l

retunr out

當side引數傳入時函式getbins的輸出結果就從原來的 變成

而正好可以拿來做分類問題。(0是pass,1是bet)

就此meta-l也就解釋完了

至於每次合約的size 則有第二個model**的probability來決定,probability越大size越大。

mysql運維 讀書筆記 Mysql 讀書筆記

mysql儲存時間有兩種型別 datetime和timestamp。分別說一下兩者的區別。datetime,以8位元組儲存時間,理論上可以從0000年儲存到9999年。並且沒有時區的概念,它儲存的就是乙個時間點的概念。timestamp和datetime最主要的不同就是,它是以4個位元組儲存,由19...

struts in action讀書筆記

struts in action 學習筆記 一 struts的控制流 因為web 應用是動態的,所以很難表現 乙個真正固定的控制流 取決於環境,不同的方式下有很多不同的事情發生 特別是在web 應用中。但是事情仍然有乙個通用的秩序。如果你是個struts,應用框架,甚至web 應用的新手,這些流程剛...

中 斷(讀書筆記)

裝置的中斷會打斷核心中程序的正常排程和執行,系統對更高吞吐率的追求勢必要求中斷服務程式盡可能地短小精悍。但是這個良好的願望往往與現實並不吻合。在大多數的系統中,當中斷到來時,要完成的工作往往並不是短小的,它可能要求進行較大量的耗時處理。為了在中斷執行時間盡可能短和中斷處理需要完成大量工作之前找乙個平...