質問編集履歴

1

修正依頼をいただいた

2018/11/06 02:32

投稿

hamar1
hamar1

スコア26

test CHANGED
File without changes
test CHANGED
@@ -15,6 +15,44 @@
15
15
  c = np.argsort(a, axis=1)
16
16
 
17
17
  b_new = cut20percentile(b) #累積が0.2までの項目を0に落とす
18
+
19
+ """
20
+
21
+ 追記:現状は下記のような処理を考えています。
22
+
23
+ 確率に占める重要な要素をピックアップする(微小要素を除去する)ため、
24
+
25
+ index方向に昇順に逐次累積を行い、閾値以下をカットします。
26
+
27
+ 目的はsklearnのPCAのweight_で要素数をカットする処理のようなイメージです。
28
+
29
+
30
+
31
+ def cut20percentile_each(x):
32
+
33
+ percentile = 0
34
+
35
+ for i in range(x.shape[0]):
36
+
37
+ percentile+=x[i]
38
+
39
+ if percentile < 0.2:
40
+
41
+ x[i] = 0
42
+
43
+ return x
44
+
45
+ def cut20percentile(x):
46
+
47
+ return [cut20percentile_each(x[i]) for i in range(x.shape[0])]
48
+
49
+ cut20percentile(b)
50
+
51
+ >>[array([0. , 0.2, 0.3, 0.4]), array([0. , 0. , 0.39, 0.5 ])]
52
+
53
+
54
+
55
+ """
18
56
 
19
57
  ```
20
58