質問編集履歴
2
出力された図を加えました
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,13 +10,17 @@
|
|
10
10
|
|
11
11
|
自分で考えた中では入力データの負担率だと思うのですがあってますか?
|
12
12
|
|
13
|
+
このプログラムにおけるy_trueとy_estimatedは何を表していますか?
|
14
|
+
|
15
|
+
|
16
|
+
|
13
17
|
負担率とは、あるデータxにおいて、k番目のクラスの正規分布からの観測される確率のことです。別の言い方をすると、あるデータxにおける混合正規分布の割合とも考えられそうです。
|
14
18
|
|
15
19
|
|
16
20
|
|
17
21
|
3つのクラスA,B,Cに分かれると想定した場合1つのデータを入力すると
|
18
22
|
|
19
|
-
[クラスAに属する確率,クラスBに属する確率,クラスCに属する確率] = [0.5, 0.3, 0.2]
|
23
|
+
[クラスAに属する確率,クラスBに属する確率,クラスCに属する確率] = [0.5, 0.3, 0.2]と出るはずです.
|
20
24
|
|
21
25
|
|
22
26
|
|
@@ -24,23 +28,55 @@
|
|
24
28
|
|
25
29
|
|
26
30
|
|
27
|
-
このプログラムでは入力データが100個なのですがいずれは30個で行いたいと思ってます。
|
28
|
-
|
29
|
-
ちなみに
|
31
|
+
ちなみに25個のデータを入力したら重ね合わせる最適なガウス分布の個数は1で出力データは入力データの個数と同じ個数出てきました。
|
30
32
|
|
31
33
|
|
32
34
|
|
33
35
|
入力データ:
|
34
36
|
|
35
|
-
[1
|
37
|
+
[1. 1. 1. 2. 1. 1. 1. 2. 1. 2. 3. 1. 3. 1. 2. 4. 1. 2. 4. 1. 1. 2. 5. 1. 1. ]
|
36
38
|
|
37
39
|
|
38
40
|
|
39
41
|
出力データ:
|
40
42
|
|
43
|
+
<y_true>
|
44
|
+
|
41
|
-
[0.
|
45
|
+
[0.41558912 0.57036429 0.52914185 0.48112792 0.60293698 0.46554157
|
46
|
+
|
42
|
-
|
47
|
+
0.52676959 0.54020389 0.37723733 0.44722378 0.56863281 0.58951637
|
48
|
+
|
43
|
-
|
49
|
+
0.51391066 0.51027414 0.58159079 0.45768141 0.45611032 0.43729612
|
50
|
+
|
51
|
+
0.55446468 0.48241021 0.45572774 0.55418018 0.51759982 0.44739818
|
52
|
+
|
53
|
+
0.45398047]
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
<y_estimated>
|
58
|
+
|
59
|
+
[0.49164472 0.49164472 0.49164472 0.50693811 0.49164472 0.49164472
|
60
|
+
|
61
|
+
0.49164472 0.50693811 0.49164472 0.50693811 0.52245777 0.49164472
|
62
|
+
|
63
|
+
0.52245777 0.49164472 0.50693811 0.5224578 0.49164472 0.50693811
|
64
|
+
|
65
|
+
0.5224578 0.49164472 0.49164472 0.50693811 0.5224578 0.49164472
|
66
|
+
|
67
|
+
0.49164472]
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
<図1>
|
72
|
+
|
73
|
+

|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
<図2>
|
78
|
+
|
79
|
+

|
44
80
|
|
45
81
|
|
46
82
|
|
@@ -90,7 +126,7 @@
|
|
90
126
|
|
91
127
|
|
92
128
|
|
93
|
-
|
129
|
+
|
94
130
|
|
95
131
|
list = []
|
96
132
|
|
@@ -100,11 +136,11 @@
|
|
100
136
|
|
101
137
|
for row in reader:
|
102
138
|
|
103
|
-
list.append(row[
|
139
|
+
list.append(row[3])#sample.csvの4列目の値を取得
|
104
|
-
|
140
|
+
|
105
|
-
float = float(list
|
141
|
+
float = [float(s) for s in list]#文字列をfloat型に変換
|
106
|
-
|
142
|
+
|
107
|
-
x = np.array(l
|
143
|
+
x = np.array(float)#numpy型に変換 xは入力したデータ
|
108
144
|
|
109
145
|
|
110
146
|
|
@@ -200,7 +236,9 @@
|
|
200
236
|
|
201
237
|
print(y_true)
|
202
238
|
|
203
|
-
|
239
|
+
print(y_estimated)
|
240
|
+
|
241
|
+
|
204
242
|
|
205
243
|
# gaussian fit
|
206
244
|
|
@@ -222,7 +260,7 @@
|
|
222
260
|
|
223
261
|
plt.savefig("mix_gauss_fit.png")
|
224
262
|
|
225
|
-
plt.show()
|
263
|
+
plt.show()#図1
|
226
264
|
|
227
265
|
plt.close()
|
228
266
|
|
@@ -246,7 +284,7 @@
|
|
246
284
|
|
247
285
|
plt.savefig("bic.png")
|
248
286
|
|
249
|
-
plt.show()
|
287
|
+
plt.show()#図2
|
250
288
|
|
251
289
|
plt.close()
|
252
290
|
|
1
入力データと出力データをコードに反映させました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -66,6 +66,8 @@
|
|
66
66
|
|
67
67
|
import math
|
68
68
|
|
69
|
+
import csv
|
70
|
+
|
69
71
|
|
70
72
|
|
71
73
|
"""Setting up test data"""
|
@@ -86,9 +88,23 @@
|
|
86
88
|
|
87
89
|
|
88
90
|
|
91
|
+
|
92
|
+
|
89
|
-
|
93
|
+
#sample.csvの3列目の値を取得
|
94
|
+
|
90
|
-
|
95
|
+
list = []
|
96
|
+
|
97
|
+
with open('data/src/sample.csv') as f:#ファイル名は架空のものを記載
|
98
|
+
|
99
|
+
reader = csv.reader(f)
|
100
|
+
|
101
|
+
for row in reader:
|
102
|
+
|
103
|
+
list.append(row[2])
|
104
|
+
|
105
|
+
float = float(list)#文字列をfloat型に変換
|
106
|
+
|
91
|
-
x = np.li
|
107
|
+
x = np.array(list)#numpy型に変換 xは入力したデータ
|
92
108
|
|
93
109
|
|
94
110
|
|
@@ -176,9 +192,13 @@
|
|
176
192
|
|
177
193
|
for i in range(num_peak_estimated):
|
178
194
|
|
179
|
-
y_estimated += gaussian_func(x, plsq_global_opt[3*i+1], plsq_global_opt[3*i+2],
|
195
|
+
y_estimated += gaussian_func(x, plsq_global_opt[3*i+1], plsq_global_opt[3*i+2],plsq_global_opt[3*(i+1)])
|
196
|
+
|
197
|
+
|
198
|
+
|
180
|
-
|
199
|
+
#出力データ
|
200
|
+
|
181
|
-
|
201
|
+
print(y_true)
|
182
202
|
|
183
203
|
|
184
204
|
|