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

restructure

parent e48b30d2
......@@ -5,11 +5,11 @@ Created on 2017-4-25
@author: cheng.li
"""
from alphamind.benchmarks.neutralize import benchmark_neutralize
from alphamind.benchmarks.standardize import benchmark_standardize
from alphamind.benchmarks.standardize import benchmark_standardize_with_group
from alphamind.benchmarks.winsorize import benchmark_winsorize_normal
from alphamind.benchmarks.winsorize import benchmark_winsorize_normal_with_group
from alphamind.benchmarks.data.neutralize import benchmark_neutralize
from alphamind.benchmarks.data.standardize import benchmark_standardize
from alphamind.benchmarks.data.standardize import benchmark_standardize_with_group
from alphamind.benchmarks.data.winsorize import benchmark_winsorize_normal
from alphamind.benchmarks.data.winsorize import benchmark_winsorize_normal_with_group
if __name__ == '__main__':
......
......@@ -8,13 +8,35 @@ Created on 2017-4-26
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:
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:
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__':
import datetime as dt
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
add_parent_path(__file__, 3)
from alphamind.tests.test_neutralize import TestNeutralize
from alphamind.tests.test_standardize import TestStandardize
from alphamind.tests.test_winsorize import TestWinsorize
from alphamind.tests.data.test_neutralize import TestNeutralize
from alphamind.tests.data.test_standardize import TestStandardize
from alphamind.tests.data.test_winsorize import TestWinsorize
from alphamind.utilities import alpha_logger
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