|
1 | | - |
2 | | -import numpy as np |
3 | | -import timesynth as ts # package for generating time series |
4 | | - |
5 | 1 | import matplotlib.pyplot as plt |
| 2 | +import numpy as np |
| 3 | +import timesynth as ts # package for generating time series |
6 | 4 |
|
7 | | -from qolmat.utils import plot |
8 | 5 | from qolmat.imputations.rpca.pcp_rpca import PcpRPCA |
9 | | -from qolmat.imputations.rpca.temporal_rpca import TemporalRPCA, OnlineTemporalRPCA |
| 6 | +from qolmat.imputations.rpca.temporal_rpca import OnlineTemporalRPCA, TemporalRPCA |
| 7 | +from qolmat.utils import plot |
| 8 | + |
10 | 9 | np.random.seed(402) |
11 | 10 |
|
12 | 11 | ################################################################################ |
|
20 | 19 |
|
21 | 20 | n = len(samples) |
22 | 21 | pc = 0.02 |
23 | | -indices_ano1 = np.random.choice(n, int(n*pc)) |
24 | | -samples[indices_ano1] = [np.random.uniform(low=2*np.min(samples), high=2*np.max(samples)) for i in range(int(n*pc))] |
25 | | -indices = np.random.choice(n, int(n*pc)) |
| 22 | +indices_ano1 = np.random.choice(n, int(n * pc)) |
| 23 | +samples[indices_ano1] = [ |
| 24 | + np.random.uniform(low=2 * np.min(samples), high=2 * np.max(samples)) |
| 25 | + for i in range(int(n * pc)) |
| 26 | +] |
| 27 | +indices = np.random.choice(n, int(n * pc)) |
26 | 28 | samples[indices] = np.nan |
27 | 29 |
|
28 | 30 |
|
|
36 | 38 | samples2, signals2, errors2 = timeseries.sample(irregular_time_samples) |
37 | 39 |
|
38 | 40 | n2 = len(samples2) |
39 | | -indices_ano2 = np.random.choice(n2, int(n*pc)) |
40 | | -samples2[indices_ano2] = [np.random.uniform(low=2*np.min(samples2), high=2*np.max(samples2)) for i in range(int(n2*pc))] |
41 | | -indices = np.random.choice(n2, int(n*pc)) |
| 41 | +indices_ano2 = np.random.choice(n2, int(n * pc)) |
| 42 | +samples2[indices_ano2] = [ |
| 43 | + np.random.uniform(low=2 * np.min(samples2), high=2 * np.max(samples2)) |
| 44 | + for i in range(int(n2 * pc)) |
| 45 | +] |
| 46 | +indices = np.random.choice(n2, int(n * pc)) |
42 | 47 | samples2[indices] = np.nan |
43 | 48 |
|
44 | 49 | samples += samples2 |
45 | 50 | signals += signals2 |
46 | 51 | errors += errors2 |
47 | 52 |
|
48 | 53 |
|
49 | | - |
50 | | -online_temp_rpca = OnlineTemporalRPCA(n_rows=25, tau=1, lam=0.3, list_periods=[20], list_etas=[0.01], |
51 | | - burnin=0.2, online_list_etas=[0.3], nwin=20) |
| 54 | +online_temp_rpca = OnlineTemporalRPCA( |
| 55 | + n_rows=25, |
| 56 | + tau=1, |
| 57 | + lam=0.3, |
| 58 | + list_periods=[20], |
| 59 | + list_etas=[0.01], |
| 60 | + burnin=0.2, |
| 61 | + online_list_etas=[0.3], |
| 62 | + nwin=20, |
| 63 | +) |
52 | 64 | X, A = online_temp_rpca.fit_transform(X=samples) |
53 | 65 | plot.plot_sig |
54 | 66 | nal([samples, X, A], style="matplotlib") |
|
0 commit comments