实验描述:
对指定数据集进行分类问题的分析,选择适当的分类算法,编写程序实现,提交程序和结果报告
数据集: balance-scale.data(见附件一) ,已有数据集构建贝叶斯分类器。
数据包括四个属性:五个属性值 第一个属性值表示样本的类别号,其他四个属性为四个不同的特征值。
实验环境和编程语言:
本实验使用的编程语言为:Java
编程环境为:Intellij idea
构建分类器的算法为:朴素贝叶斯算法
训练的样本个数为:625个
样本示例:R,1,1,1,2(表示属于R类,四各属性值为1 1 1 2)
训练样本和测试样本见附件一。
实验结果分析:
根据程序运行的结果如图1-1所示,使用训练的样本对分类器进行检测,分类得到295个R类(实际288个),330个L类(实际288个),0个B类(实际49个),综合分类正确率为92.16%。可以认为分类器有较高的正确率,但是对于类B的分类还是有一定的误差,具体原因会在思考与改进中说明。
思考与改进:
[java] view plain copy
1. <strong>思考点:</strong>
本次实验编程利用朴素贝叶斯算法构建的分类器,虽然整体情况是拥有较高的分类正确率(92.16%),但是对训练样本再检测时没有发现一个B类样本,出现的较大的偏差,分析原因如下:
1. B类样本点总数很少,以至于P(yB)就远远小于P(yR)和P(yL),所以对于后验概率公式,P(yB|x)必然比P(yL|x)和P(yR|x)要小,因此导致最后样本难以分到B类。
2. 观察训练样本集可以发现,B类的样本点和L类以及R类并没有很大区别,其不具备很强的统计可分性,所以对于依赖于统计概率的贝叶斯方法无法体现出其优势,所以导致了最终没有样本被分到B类中。
改进点:
本算法在实现贝叶斯分类的时候,每一次都进行了遍历样本集来求出
P(a1|y1)、P(a2|y1)……P(an|yn),所以导致算法的整体时间复杂度较高,在面临较大的数据集时可能就会出现问题,因此可以考虑实现将已经计算过的
P(ax|yx)存储到变量或者数组中,在下一次计算的时候可以直接调用,从而可以避免再一次的遍历训练集来计算概率,实现时间复杂度的降低。
编程实现:
[java] view plain copy
1. package com.company;
2. /********************************************************************************
3. *
4. *
5. * 数据挖掘实验,分类实验
6. * 朴素贝叶斯分类
7. *
8. *训练样本示例格式:(R,1,5,5,4)
9. */
10.
11. import java.io.File;
12. import java.util.Scanner;
13. import java.util.Vector;
14.
15. public class Bayes {
16. static Vector<String> indata = new Vector<>();//读入数据
17. static Vector<int[]> catagory_R = new Vector<>();//存储类别R的所有数据
18. static Vector<int[]> catagory_L = new Vector<>();//存储类别L的所有数据
19. static Vector<int[]> catagory_B = new Vector<>();//存储类别B的所有数据
20.
21.
22. public static boolean loadData(String url) {//加载测试的数据文件
23. try {
24. new Scanner(new File(url));//读入文件
25. while (in.hasNextLine()) {
26. //将文件的每一行存到str的临时变量中
27. //将每一个样本点的数据追加到Vector 中
28. }
29. return true;
30. catch (Exception e) { //如果出错返回false
31. return false;
32. }
33. }
34.
35. public static void pretreatment(Vector<String> indata) { //数据预处理,将原始数据中的每一个属性值提取出来存放到Vector<double[]> data中
36. int i = 0;
37. String t;
38. while (i < indata.size()) {//取出indata中的每一行值
39. int[] tem = new int[4];
40. t = indata.get(i);
41. ",", 5);//使用字符串分割函数提取出各属性值
42. switch (sourceStrArray[0]) {
43. case "R": {
44. for (int j = 1; j < 5; j++) {
45. 1] = Integer.parseInt(sourceStrArray[j]);
46. }
47. catagory_R.add(tem);
48. break;
49. }
50. case "L": {
51. for (int j = 1; j < 5; j++) {
52. 1] = Integer.parseInt(sourceStrArray[j]);
53. }
54. catagory_L.add(tem);
55. break;
56. }
57. case "B": {
58. for (int j = 1; j < 5; j++) {
59. 1] = Integer.parseInt(sourceStrArray[j]);
60. }
61. catagory_B.add(tem);
62. break;
63. }
64. }
65. i++;
66. }
67.
68. }
69.
70. public static double bayes(int[] x, Vector<int[]> catagory) {
71. double[] ai_y = new double[4];
72. int[] sum_ai = new int[4];
73. for (int i = 0; i < 4; i++) {
74.
75. for (int j = 0; j < catagory.size(); j++) {
76. if (x[i] == catagory.get(j)[i])
77. sum_ai[i]++;
78. }
79. }
80. for (int i = 0; i < 4; i++) {
81. double) sum_ai[i] / (double) catagory.size();
82. }
83. return ai_y[0] * ai_y[1] * ai_y[2] * ai_y[3];
84. }
85.
86. public static void main(String[] args) {
87.
88.
89. "balance-scale.data");
90. pretreatment(indata);
91. double p_yR = (double) catagory_R.size() / (double) (indata.size());//表示概率p(R)
92. double p_yB = (double) catagory_B.size() / (double) (indata.size());//表示概率p(B)
93. double p_yL = (double) catagory_L.size() / (double) (indata.size());//表示概率p(L)
94.
95. int[] x = new int[4];
96. double x_in_R, x_in_L, x_in_B;
97.
98. int sumR=0, sumL=0, sumB=0;
99. double correct=0;
100.
101.
102. "请输入样本x格式如下:\n 1 1 1 1\n");
103. int r = 0;
104. while (r < indata.size()) {
105.
106. for (int i = 0; i < 4; i++)
107. //读取数字放入数组的第i个元素
108. ",", 5)[i + 1]);
109.
110. x_in_B = bayes(x, catagory_B) * p_yB;
111. x_in_L = bayes(x, catagory_L) * p_yL;
112. x_in_R = bayes(x, catagory_R) * p_yR;
113.
114.
115. if (x_in_B == Math.max(Math.max(x_in_B, x_in_L), x_in_R)) {
116. "输入的第"+r+"样本属于类别:B");
117. sumB++;
118. if(indata.get(r).split(",",5)[0].equals("B"))
119. correct++;
120. else if (x_in_L == Math.max(Math.max(x_in_B, x_in_L), x_in_R)) {
121. "输入的第"+r+"样本属于类别:L");
122. sumL++;
123. if(indata.get(r).split(",",5)[0].equals("L"))
124. correct++;
125. else if (x_in_R == Math.max(Math.max(x_in_B, x_in_L), x_in_R)) {
126. "输入的第"+r+"样本属于类别:R");
127. sumR++;
128. if(indata.get(r).split(",",5)[0].equals("R"))
129. correct++;
130. }
131.
132. r++;
133.
134.
135. }
136.
137. "使用训练样本进行分类器检验得到结果统计如下:");
138. "R类有:"+sumR+" 实际有R类样本"+catagory_R.size()+"个");
139. "L类有:"+sumL+" 实际有L类样本"+catagory_L.size()+"个");
140. "B类有:"+sumB+" 实际有B类样本"+catagory_B.size()+"个");
141.
142. "分类的正确率为"+correct*1.0/indata.size()*100+"%");
143.
144. }
145. }
(附件一)训练样本和测试样本集:
[plain] view plain copy
1. B,1,1,1,1
2. R,1,1,1,2
3. R,1,1,1,3
4. R,1,1,1,4
5. R,1,1,1,5
6. R,1,1,2,1
7. R,1,1,2,2
8. R,1,1,2,3
9. R,1,1,2,4
10. R,1,1,2,5
11. R,1,1,3,1
12. R,1,1,3,2
13. R,1,1,3,3
14. R,1,1,3,4
15. R,1,1,3,5
16. R,1,1,4,1
17. R,1,1,4,2
18. R,1,1,4,3
19. R,1,1,4,4
20. R,1,1,4,5
21. R,1,1,5,1
22. R,1,1,5,2
23. R,1,1,5,3
24. R,1,1,5,4
25. R,1,1,5,5
26. L,1,2,1,1
27. B,1,2,1,2
28. R,1,2,1,3
29. R,1,2,1,4
30. R,1,2,1,5
31. B,1,2,2,1
32. R,1,2,2,2
33. R,1,2,2,3
34. R,1,2,2,4
35. R,1,2,2,5
36. R,1,2,3,1
37. R,1,2,3,2
38. R,1,2,3,3
39. R,1,2,3,4
40. R,1,2,3,5
41. R,1,2,4,1
42. R,1,2,4,2
43. R,1,2,4,3
44. R,1,2,4,4
45. R,1,2,4,5
46. R,1,2,5,1
47. R,1,2,5,2
48. R,1,2,5,3
49. R,1,2,5,4
50. R,1,2,5,5
51. L,1,3,1,1
52. L,1,3,1,2
53. B,1,3,1,3
54. R,1,3,1,4
55. R,1,3,1,5
56. L,1,3,2,1
57. R,1,3,2,2
58. R,1,3,2,3
59. R,1,3,2,4
60. R,1,3,2,5
61. B,1,3,3,1
62. R,1,3,3,2
63. R,1,3,3,3
64. R,1,3,3,4
65. R,1,3,3,5
66. R,1,3,4,1
67. R,1,3,4,2
68. R,1,3,4,3
69. R,1,3,4,4
70. R,1,3,4,5
71. R,1,3,5,1
72. R,1,3,5,2
73. R,1,3,5,3
74. R,1,3,5,4
75. R,1,3,5,5
76. L,1,4,1,1
77. L,1,4,1,2
78. L,1,4,1,3
79. B,1,4,1,4
80. R,1,4,1,5
81. L,1,4,2,1
82. B,1,4,2,2
83. R,1,4,2,3
84. R,1,4,2,4
85. R,1,4,2,5
86. L,1,4,3,1
87. R,1,4,3,2
88. R,1,4,3,3
89. R,1,4,3,4
90. R,1,4,3,5
91. B,1,4,4,1
92. R,1,4,4,2
93. R,1,4,4,3
94. R,1,4,4,4
95. R,1,4,4,5
96. R,1,4,5,1
97. R,1,4,5,2
98. R,1,4,5,3
99. R,1,4,5,4
100. R,1,4,5,5
101. L,1,5,1,1
102. L,1,5,1,2
103. L,1,5,1,3
104. L,1,5,1,4
105. B,1,5,1,5
106. L,1,5,2,1
107. L,1,5,2,2
108. R,1,5,2,3
109. R,1,5,2,4
110. R,1,5,2,5
111. L,1,5,3,1
112. R,1,5,3,2
113. R,1,5,3,3
114. R,1,5,3,4
115. R,1,5,3,5
116. L,1,5,4,1
117. R,1,5,4,2
118. R,1,5,4,3
119. R,1,5,4,4
120. R,1,5,4,5
121. B,1,5,5,1
122. R,1,5,5,2
123. R,1,5,5,3
124. R,1,5,5,4
125. R,1,5,5,5
126. L,2,1,1,1
127. B,2,1,1,2
128. R,2,1,1,3
129. R,2,1,1,4
130. R,2,1,1,5
131. B,2,1,2,1
132. R,2,1,2,2
133. R,2,1,2,3
134. R,2,1,2,4
135. R,2,1,2,5
136. R,2,1,3,1
137. R,2,1,3,2
138. R,2,1,3,3
139. R,2,1,3,4
140. R,2,1,3,5
141. R,2,1,4,1
142. R,2,1,4,2
143. R,2,1,4,3
144. R,2,1,4,4
145. R,2,1,4,5
146. R,2,1,5,1
147. R,2,1,5,2
148. R,2,1,5,3
149. R,2,1,5,4
150. R,2,1,5,5
151. L,2,2,1,1
152. L,2,2,1,2
153. L,2,2,1,3
154. B,2,2,1,4
155. R,2,2,1,5
156. L,2,2,2,1
157. B,2,2,2,2
158. R,2,2,2,3
159. R,2,2,2,4
160. R,2,2,2,5
161. L,2,2,3,1
162. R,2,2,3,2
163. R,2,2,3,3
164. R,2,2,3,4
165. R,2,2,3,5
166. B,2,2,4,1
167. R,2,2,4,2
168. R,2,2,4,3
169. R,2,2,4,4
170. R,2,2,4,5
171. R,2,2,5,1
172. R,2,2,5,2
173. R,2,2,5,3
174. R,2,2,5,4
175. R,2,2,5,5
176. L,2,3,1,1
177. L,2,3,1,2
178. L,2,3,1,3
179. L,2,3,1,4
180. L,2,3,1,5
181. L,2,3,2,1
182. L,2,3,2,2
183. B,2,3,2,3
184. R,2,3,2,4
185. R,2,3,2,5
186. L,2,3,3,1
187. B,2,3,3,2
188. R,2,3,3,3
189. R,2,3,3,4
190. R,2,3,3,5
191. L,2,3,4,1
192. R,2,3,4,2
193. R,2,3,4,3
194. R,2,3,4,4
195. R,2,3,4,5
196. L,2,3,5,1
197. R,2,3,5,2
198. R,2,3,5,3
199. R,2,3,5,4
200. R,2,3,5,5
201. L,2,4,1,1
202. L,2,4,1,2
203. L,2,4,1,3
204. L,2,4,1,4
205. L,2,4,1,5
206. L,2,4,2,1
207. L,2,4,2,2
208. L,2,4,2,3
209. B,2,4,2,4
210. R,2,4,2,5
211. L,2,4,3,1
212. L,2,4,3,2
213. R,2,4,3,3
214. R,2,4,3,4
215. R,2,4,3,5
216. L,2,4,4,1
217. B,2,4,4,2
218. R,2,4,4,3
219. R,2,4,4,4
220. R,2,4,4,5
221. L,2,4,5,1
222. R,2,4,5,2
223. R,2,4,5,3
224. R,2,4,5,4
225. R,2,4,5,5
226. L,2,5,1,1
227. L,2,5,1,2
228. L,2,5,1,3
229. L,2,5,1,4
230. L,2,5,1,5
231. L,2,5,2,1
232. L,2,5,2,2
233. L,2,5,2,3
234. L,2,5,2,4
235. B,2,5,2,5
236. L,2,5,3,1
237. L,2,5,3,2
238. L,2,5,3,3
239. R,2,5,3,4
240. R,2,5,3,5
241. L,2,5,4,1
242. L,2,5,4,2
243. R,2,5,4,3
244. R,2,5,4,4
245. R,2,5,4,5
246. L,2,5,5,1
247. B,2,5,5,2
248. R,2,5,5,3
249. R,2,5,5,4
250. R,2,5,5,5
251. L,3,1,1,1
252. L,3,1,1,2
253. B,3,1,1,3
254. R,3,1,1,4
255. R,3,1,1,5
256. L,3,1,2,1
257. R,3,1,2,2
258. R,3,1,2,3
259. R,3,1,2,4
260. R,3,1,2,5
261. B,3,1,3,1
262. R,3,1,3,2
263. R,3,1,3,3
264. R,3,1,3,4
265. R,3,1,3,5
266. R,3,1,4,1
267. R,3,1,4,2
268. R,3,1,4,3
269. R,3,1,4,4
270. R,3,1,4,5
271. R,3,1,5,1
272. R,3,1,5,2
273. R,3,1,5,3
274. R,3,1,5,4
275. R,3,1,5,5
276. L,3,2,1,1
277. L,3,2,1,2
278. L,3,2,1,3
279. L,3,2,1,4
280. L,3,2,1,5
281. L,3,2,2,1
282. L,3,2,2,2
283. B,3,2,2,3
284. R,3,2,2,4
285. R,3,2,2,5
286. L,3,2,3,1
287. B,3,2,3,2
288. R,3,2,3,3
289. R,3,2,3,4
290. R,3,2,3,5
291. L,3,2,4,1
292. R,3,2,4,2
293. R,3,2,4,3
294. R,3,2,4,4
295. R,3,2,4,5
296. L,3,2,5,1
297. R,3,2,5,2
298. R,3,2,5,3
299. R,3,2,5,4
300. R,3,2,5,5
301. L,3,3,1,1
302. L,3,3,1,2
303. L,3,3,1,3
304. L,3,3,1,4
305. L,3,3,1,5
306. L,3,3,2,1
307. L,3,3,2,2
308. L,3,3,2,3
309. L,3,3,2,4
310. R,3,3,2,5
311. L,3,3,3,1
312. L,3,3,3,2
313. B,3,3,3,3
314. R,3,3,3,4
315. R,3,3,3,5
316. L,3,3,4,1
317. L,3,3,4,2
318. R,3,3,4,3
319. R,3,3,4,4
320. R,3,3,4,5
321. L,3,3,5,1
322. R,3,3,5,2
323. R,3,3,5,3
324. R,3,3,5,4
325. R,3,3,5,5
326. L,3,4,1,1
327. L,3,4,1,2
328. L,3,4,1,3
329. L,3,4,1,4
330. L,3,4,1,5
331. L,3,4,2,1
332. L,3,4,2,2
333. L,3,4,2,3
334. L,3,4,2,4
335. L,3,4,2,5
336. L,3,4,3,1
337. L,3,4,3,2
338. L,3,4,3,3
339. B,3,4,3,4
340. R,3,4,3,5
341. L,3,4,4,1
342. L,3,4,4,2
343. B,3,4,4,3
344. R,3,4,4,4
345. R,3,4,4,5
346. L,3,4,5,1
347. L,3,4,5,2
348. R,3,4,5,3
349. R,3,4,5,4
350. R,3,4,5,5
351. L,3,5,1,1
352. L,3,5,1,2
353. L,3,5,1,3
354. L,3,5,1,4
355. L,3,5,1,5
356. L,3,5,2,1
357. L,3,5,2,2
358. L,3,5,2,3
359. L,3,5,2,4
360. L,3,5,2,5
361. L,3,5,3,1
362. L,3,5,3,2
363. L,3,5,3,3
364. L,3,5,3,4
365. B,3,5,3,5
366. L,3,5,4,1
367. L,3,5,4,2
368. L,3,5,4,3
369. R,3,5,4,4
370. R,3,5,4,5
371. L,3,5,5,1
372. L,3,5,5,2
373. B,3,5,5,3
374. R,3,5,5,4
375. R,3,5,5,5
376. L,4,1,1,1
377. L,4,1,1,2
378. L,4,1,1,3
379. B,4,1,1,4
380. R,4,1,1,5
381. L,4,1,2,1
382. B,4,1,2,2
383. R,4,1,2,3
384. R,4,1,2,4
385. R,4,1,2,5
386. L,4,1,3,1
387. R,4,1,3,2
388. R,4,1,3,3
389. R,4,1,3,4
390. R,4,1,3,5
391. B,4,1,4,1
392. R,4,1,4,2
393. R,4,1,4,3
394. R,4,1,4,4
395. R,4,1,4,5
396. R,4,1,5,1
397. R,4,1,5,2
398. R,4,1,5,3
399. R,4,1,5,4
400. R,4,1,5,5
401. L,4,2,1,1
402. L,4,2,1,2
403. L,4,2,1,3
404. L,4,2,1,4
405. L,4,2,1,5
406. L,4,2,2,1
407. L,4,2,2,2
408. L,4,2,2,3
409. B,4,2,2,4
410. R,4,2,2,5
411. L,4,2,3,1
412. L,4,2,3,2
413. R,4,2,3,3
414. R,4,2,3,4
415. R,4,2,3,5
416. L,4,2,4,1
417. B,4,2,4,2
418. R,4,2,4,3
419. R,4,2,4,4
420. R,4,2,4,5
421. L,4,2,5,1
422. R,4,2,5,2
423. R,4,2,5,3
424. R,4,2,5,4
425. R,4,2,5,5
426. L,4,3,1,1
427. L,4,3,1,2
428. L,4,3,1,3
429. L,4,3,1,4
430. L,4,3,1,5
431. L,4,3,2,1
432. L,4,3,2,2
433. L,4,3,2,3
434. L,4,3,2,4
435. L,4,3,2,5
436. L,4,3,3,1
437. L,4,3,3,2
438. L,4,3,3,3
439. B,4,3,3,4
440. R,4,3,3,5
441. L,4,3,4,1
442. L,4,3,4,2
443. B,4,3,4,3
444. R,4,3,4,4
445. R,4,3,4,5
446. L,4,3,5,1
447. L,4,3,5,2
448. R,4,3,5,3
449. R,4,3,5,4
450. R,4,3,5,5
451. L,4,4,1,1
452. L,4,4,1,2
453. L,4,4,1,3
454. L,4,4,1,4
455. L,4,4,1,5
456. L,4,4,2,1
457. L,4,4,2,2
458. L,4,4,2,3
459. L,4,4,2,4
460. L,4,4,2,5
461. L,4,4,3,1
462. L,4,4,3,2
463. L,4,4,3,3
464. L,4,4,3,4
465. L,4,4,3,5
466. L,4,4,4,1
467. L,4,4,4,2
468. L,4,4,4,3
469. B,4,4,4,4
470. R,4,4,4,5
471. L,4,4,5,1
472. L,4,4,5,2
473. L,4,4,5,3
474. R,4,4,5,4
475. R,4,4,5,5
476. L,4,5,1,1
477. L,4,5,1,2
478. L,4,5,1,3
479. L,4,5,1,4
480. L,4,5,1,5
481. L,4,5,2,1
482. L,4,5,2,2
483. L,4,5,2,3
484. L,4,5,2,4
485. L,4,5,2,5
486. L,4,5,3,1
487. L,4,5,3,2
488. L,4,5,3,3
489. L,4,5,3,4
490. L,4,5,3,5
491. L,4,5,4,1
492. L,4,5,4,2
493. L,4,5,4,3
494. L,4,5,4,4
495. B,4,5,4,5
496. L,4,5,5,1
497. L,4,5,5,2
498. L,4,5,5,3
499. B,4,5,5,4
500. R,4,5,5,5
501. L,5,1,1,1
502. L,5,1,1,2
503. L,5,1,1,3
504. L,5,1,1,4
505. B,5,1,1,5
506. L,5,1,2,1
507. L,5,1,2,2
508. R,5,1,2,3
509. R,5,1,2,4
510. R,5,1,2,5
511. L,5,1,3,1
512. R,5,1,3,2
513. R,5,1,3,3
514. R,5,1,3,4
515. R,5,1,3,5
516. L,5,1,4,1
517. R,5,1,4,2
518. R,5,1,4,3
519. R,5,1,4,4
520. R,5,1,4,5
521. B,5,1,5,1
522. R,5,1,5,2
523. R,5,1,5,3
524. R,5,1,5,4
525. R,5,1,5,5
526. L,5,2,1,1
527. L,5,2,1,2
528. L,5,2,1,3
529. L,5,2,1,4
530. L,5,2,1,5
531. L,5,2,2,1
532. L,5,2,2,2
533. L,5,2,2,3
534. L,5,2,2,4
535. B,5,2,2,5
536. L,5,2,3,1
537. L,5,2,3,2
538. L,5,2,3,3
539. R,5,2,3,4
540. R,5,2,3,5
541. L,5,2,4,1
542. L,5,2,4,2
543. R,5,2,4,3
544. R,5,2,4,4
545. R,5,2,4,5
546. L,5,2,5,1
547. B,5,2,5,2
548. R,5,2,5,3
549. R,5,2,5,4
550. R,5,2,5,5
551. L,5,3,1,1
552. L,5,3,1,2
553. L,5,3,1,3
554. L,5,3,1,4
555. L,5,3,1,5
556. L,5,3,2,1
557. L,5,3,2,2
558. L,5,3,2,3
559. L,5,3,2,4
560. L,5,3,2,5
561. L,5,3,3,1
562. L,5,3,3,2
563. L,5,3,3,3
564. L,5,3,3,4
565. B,5,3,3,5
566. L,5,3,4,1
567. L,5,3,4,2
568. L,5,3,4,3
569. R,5,3,4,4
570. R,5,3,4,5
571. L,5,3,5,1
572. L,5,3,5,2
573. B,5,3,5,3
574. R,5,3,5,4
575. R,5,3,5,5
576. L,5,4,1,1
577. L,5,4,1,2
578. L,5,4,1,3
579. L,5,4,1,4
580. L,5,4,1,5
581. L,5,4,2,1
582. L,5,4,2,2
583. L,5,4,2,3
584. L,5,4,2,4
585. L,5,4,2,5
586. L,5,4,3,1
587. L,5,4,3,2
588. L,5,4,3,3
589. L,5,4,3,4
590. L,5,4,3,5
591. L,5,4,4,1
592. L,5,4,4,2
593. L,5,4,4,3
594. L,5,4,4,4
595. B,5,4,4,5
596. L,5,4,5,1
597. L,5,4,5,2
598. L,5,4,5,3
599. B,5,4,5,4
600. R,5,4,5,5
601. L,5,5,1,1
602. L,5,5,1,2
603. L,5,5,1,3
604. L,5,5,1,4
605. L,5,5,1,5
606. L,5,5,2,1
607. L,5,5,2,2
608. L,5,5,2,3
609. L,5,5,2,4
610. L,5,5,2,5
611. L,5,5,3,1
612. L,5,5,3,2
613. L,5,5,3,3
614. L,5,5,3,4
615. L,5,5,3,5
616. L,5,5,4,1
617. L,5,5,4,2
618. L,5,5,4,3
619. L,5,5,4,4
620. L,5,5,4,5
621. L,5,5,5,1
622. L,5,5,5,2
623. L,5,5,5,3
624. L,5,5,5,4
625. B,5,5,5,5