Commit b971f376 authored by Dr.李's avatar Dr.李

restructure

parent e48b30d2
...@@ -5,11 +5,11 @@ Created on 2017-4-25 ...@@ -5,11 +5,11 @@ Created on 2017-4-25
@author: cheng.li @author: cheng.li
""" """
from alphamind.benchmarks.neutralize import benchmark_neutralize from alphamind.benchmarks.data.neutralize import benchmark_neutralize
from alphamind.benchmarks.standardize import benchmark_standardize from alphamind.benchmarks.data.standardize import benchmark_standardize
from alphamind.benchmarks.standardize import benchmark_standardize_with_group from alphamind.benchmarks.data.standardize import benchmark_standardize_with_group
from alphamind.benchmarks.winsorize import benchmark_winsorize_normal from alphamind.benchmarks.data.winsorize import benchmark_winsorize_normal
from alphamind.benchmarks.winsorize import benchmark_winsorize_normal_with_group from alphamind.benchmarks.data.winsorize import benchmark_winsorize_normal_with_group
if __name__ == '__main__': if __name__ == '__main__':
......
...@@ -8,13 +8,35 @@ Created on 2017-4-26 ...@@ -8,13 +8,35 @@ Created on 2017-4-26
import numpy as np import numpy as np
def rank_build(er: np.ndarray, use_rank: int, groups: np.ndarray=None): def rank_build(er: np.ndarray, use_rank: int, groups: np.ndarray=None) -> np.ndarray:
neg_er = -er
masks = np.zeros(len(er), dtype=bool)
ordering = neg_er.argsort()
if groups is not None: if groups is not None:
pass max_g = np.max(groups)
for i in range(max_g + 1):
current_mask = groups == i
current_ordering = ordering[current_mask]
masks[current_ordering[:use_rank]] = True
else: else:
ordering = np.argsort(er) masks[ordering[:use_rank]] = True
weights = np.zeros(len(er))
weights[masks] = 1. / np.sum(masks)
return weights
if __name__ == '__main__': if __name__ == '__main__':
import datetime as dt
x = np.random.randn(3000) x = np.random.randn(3000)
groups = np.random.randint(20, 50, size=3000)
start = dt.datetime.now()
for i in range(10000):
weights = rank_build(x, 20, groups)
print(dt.datetime.now() - start)
#print(x, '\n', weights)
...@@ -9,9 +9,9 @@ from alphamind.utilities import add_parent_path ...@@ -9,9 +9,9 @@ from alphamind.utilities import add_parent_path
add_parent_path(__file__, 3) add_parent_path(__file__, 3)
from alphamind.tests.test_neutralize import TestNeutralize from alphamind.tests.data.test_neutralize import TestNeutralize
from alphamind.tests.test_standardize import TestStandardize from alphamind.tests.data.test_standardize import TestStandardize
from alphamind.tests.test_winsorize import TestWinsorize from alphamind.tests.data.test_winsorize import TestWinsorize
from alphamind.utilities import alpha_logger from alphamind.utilities import alpha_logger
from alphamind.utilities import TestRunner from alphamind.utilities import TestRunner
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment