MCPcopy
hub / github.com/microsoft/qlib / test_ZScoreNorm

Method test_ZScoreNorm

tests/data_mid_layer_tests/test_processor.py:35–54  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

33 assert (df == origin_df).all().all()
34
35 def test_ZScoreNorm(self):
36 def normalize(df):
37 mean_train = np.nanmean(df.values, axis=0)
38 std_train = np.nanstd(df.values, axis=0)
39 ignore = std_train == 0
40 for _i, _con in enumerate(ignore):
41 if _con:
42 std_train[_i] = 1
43 mean_train[_i] = 0
44 df.loc(axis=1)[df.columns] = (df.values - mean_train) / std_train
45 return df
46
47 origin_df = D.features([self.TEST_INST], ["$high", "$open", "$low", "$close"]).tail(10)
48 origin_df["test"] = 0
49 df = origin_df.copy()
50 zsn = ZScoreNorm(fields_group=None, fit_start_time="2021-05-31", fit_end_time="2021-06-11")
51 zsn.fit(df)
52 zsn.__call__(df)
53 origin_df = normalize(origin_df)
54 assert (df == origin_df).all().all()
55
56 def test_CSZFillna(self):
57 origin_df = D.features(D.instruments(market="csi300"), fields=["$high", "$open", "$low", "$close"])

Callers

nothing calls this directly

Calls 6

fitMethod · 0.95
__call__Method · 0.95
ZScoreNormClass · 0.90
featuresMethod · 0.80
copyMethod · 0.80
allMethod · 0.45

Tested by

no test coverage detected