《金融机器学习进展》的Python实现
《金融机器学习进展》的Python实现
Python 机器学习
共236Star
详细介绍
finance_ml
Python implementations of Machine Learning helper functions based on a book, Advances in Financial Machine Learning
[1], written by Marcos Lopez de Prado
.
Installation
Excute the following command
python setup.py install
Implementation
labeling
- Triple Barriers Labeling
- CUSUM sampling
from finance_ml.labeling import get_barrier_labels, cusum_filter
from finance_ml.stats import get_daily_vol
vol = get_daily_vol(close)
trgt = vol
timestamps = cusum_filter(close, vol)
labels = get_barrier_labels(close, timestamps, trgt, sltp=[1, 1],
num_days=1, min_ret=0, num_threads=16)
print(labels.show())
Return the following pandas.Series
2000-01-05 -1.0
2000-01-06 1.0
2000-01-10 -1.0
2000-01-11 1.0
2000-01-12 1.0
- Future Returns for Regression
multiprocessing
Parallel computing using multiprocessing
library. Here is the example of applying function to each element with parallelization.
import pandas as pd
import numpy as np
def apply_func(x):
return x ** 2
def func(df, timestamps, f):
df_ = df.loc[timestamps]
for idx, x in df_.items():
df_.loc[idx] = f(x)
return df_
df = pd.Series(np.random.randn(10000))
from finance_ml.multiprocessing import mp_pandas_obj
results = mp_pandas_obj(func, pd_obj=('timestamps', df.index),
num_threads=24, df=df, f=apply_func)
print(results.head())
Output:
0 0.449278
1 1.411846
2 0.157630
3 4.949410
4 0.601459
dtype: float64