質問編集履歴

6

参考サイト

2016/11/16 14:05

投稿

tonarino_sazana
tonarino_sazana

スコア13

test CHANGED
File without changes
test CHANGED
@@ -64,7 +64,7 @@
64
64
 
65
65
  ```
66
66
 
67
- 参考にしているのは以下のサイトのことをしたいと考えていまして
67
+ 参考にしているのは以下のサイト
68
68
 
69
69
  http://qiita.com/kenmatsu4/items/0a7a3ef71d4e8bb53da0
70
70
 

5

参考サイト

2016/11/16 14:05

投稿

tonarino_sazana
tonarino_sazana

スコア13

test CHANGED
File without changes
test CHANGED
@@ -63,3 +63,11 @@
63
63
  return np.exp(-0.5*x_c/(sigma*sigma))
64
64
 
65
65
  ```
66
+
67
+ 参考にしているのは以下のサイトのことをしたいと考えていまして、
68
+
69
+ http://qiita.com/kenmatsu4/items/0a7a3ef71d4e8bb53da0
70
+
71
+ 以下のサイトのソースコードをpythonに変えて実行したいと思っています。
72
+
73
+ https://github.com/hoxo-m/densratio/blob/master/R/uLSIF_search_sigma_and_lambda.R

4

ソースコードの追加

2016/11/16 14:05

投稿

tonarino_sazana
tonarino_sazana

スコア13

test CHANGED
File without changes
test CHANGED
@@ -11,3 +11,55 @@
11
11
  nが100000、aが100で
12
12
 
13
13
  xが2次元で100000列、cが2次元で100列のデータです。
14
+
15
+ ```python
16
+
17
+ sigma=10**np.linspace(-3.0,1.0,9)
18
+
19
+ lam=10**np.linspace(-3.0,1.0,9)
20
+
21
+ kernel_num = 100
22
+
23
+ def search_sigma_and_lambda(x, y, c, sigma, lam):
24
+
25
+ nx = len(x);ny = len(y);n_min = min(nx,ny);kernel_num = len(c)
26
+
27
+
28
+
29
+
30
+
31
+ score_new = np.inf;sigma_new = 0;lam_new = 0;
32
+
33
+ for s in sigma:
34
+
35
+ phi_x = np.array([compute_kernel_Gaussian(x,i,s) for i in c])
36
+
37
+ phi_y = np.array([compute_kernel_Gaussian(y,i,s) for i in c])
38
+
39
+ h = phi_x.sum(1) / nx
40
+
41
+ H = np.multiply.outer(phi_y,phi_y.T) / ny←「ここの部分でメモリエラーになります。」
42
+
43
+ phi_x = phi_x[np.arange(n_min)]
44
+
45
+ phi_y = phi_y[np.arange(n_min)]
46
+
47
+ for la in lam:
48
+
49
+ B = H + lam * np.identity(kernel_num)
50
+
51
+ B_inv = np.inv(B)
52
+
53
+ B_inv_X = B_inv.dot(phi_y)
54
+
55
+ print B_inv_X;sys.exit()
56
+
57
+
58
+
59
+ def compute_kernel_Gaussian(x,centers,sigma):
60
+
61
+ x_c = np.square(x-centers).sum(1)
62
+
63
+ return np.exp(-0.5*x_c/(sigma*sigma))
64
+
65
+ ```

3

情報の更新

2016/11/16 07:47

投稿

tonarino_sazana
tonarino_sazana

スコア13

test CHANGED
File without changes
test CHANGED
@@ -7,3 +7,7 @@
7
7
  以下の行列の形にしたいと思っています。
8
8
 
9
9
  ![イメージ説明](ec1e3a8732c10640d31dc2005bd93869.png)
10
+
11
+ nが100000、aが100で
12
+
13
+ xが2次元で100000列、cが2次元で100列のデータです。

2

式の追加

2016/11/16 06:42

投稿

tonarino_sazana
tonarino_sazana

スコア13

test CHANGED
File without changes
test CHANGED
@@ -6,4 +6,4 @@
6
6
 
7
7
  以下の行列の形にしたいと思っています。
8
8
 
9
- ![イメージ説明](8cb3350bc0512a49d56258a088b7054f.png)
9
+ ![イメージ説明](ec1e3a8732c10640d31dc2005bd93869.png)

1

式の追加

2016/11/16 06:23

投稿

tonarino_sazana
tonarino_sazana

スコア13

test CHANGED
File without changes
test CHANGED
@@ -1 +1,9 @@
1
1
  pythonで100×100000の行列自身の外積を求めて100×100の行列にしたいのですが、メモリエラーとなり実行出来ません。データが大きくても実行出来る方法があれば、どなたか教えていただけないでしょうか?
2
+
3
+
4
+
5
+ 追記
6
+
7
+ 以下の行列の形にしたいと思っています。
8
+
9
+ ![イメージ説明](8cb3350bc0512a49d56258a088b7054f.png)