Java实现朴素贝叶斯分类器

实验描述:

对指定数据集进行分类问题的分析,选择适当的分类算法,编写程序实现,提交程序和结果报告

数据集: balance-scale.data(见附件一) ,已有数据集构建贝叶斯分类器。

数据包括四个属性:五个属性值 第一个属性值表示样本的类别号,其他四个属性为四个不同的特征值。


实验环境和编程语言:

本实验使用的编程语言为:Java

编程环境为:Intellij idea

构建分类器的算法为:朴素贝叶斯算法

训练的样本个数为:625个

样本示例:R,1,1,1,2(表示属于R类,四各属性值为1 1 1 2)

训练样本和测试样本见附件一。


工程和测试数据下载地址:

http://download.****.net/detail/qq_24369113/9711643





Java实现朴素贝叶斯分类器






实验结果分析:

根据程序运行的结果如图1-1所示,使用训练的样本对分类器进行检测,分类得到295个R类(实际288个),330个L类(实际288个),0个B类(实际49个),综合分类正确率为92.16%。可以认为分类器有较高的正确率,但是对于类B的分类还是有一定的误差,具体原因会在思考与改进中说明。

Java实现朴素贝叶斯分类器



思考与改进:

[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.             Scanner in = new Scanner(new File(url));//读入文件  
  25.             while (in.hasNextLine()) {  
  26.                 String str = in.nextLine();//将文件的每一行存到str的临时变量中  
  27.                 indata.add(str);//将每一个样本点的数据追加到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.             String[] sourceStrArray = t.split(","5);//使用字符串分割函数提取出各属性值  
  42.             switch (sourceStrArray[0]) {  
  43.                 case "R": {  
  44.                     for (int j = 1; j < 5; j++) {  
  45.                         tem[j - 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.                         tem[j - 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.                         tem[j - 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.             ai_y[i] = (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.         loadData("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.         System.out.println("请输入样本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.                 x[i] = Integer.parseInt(indata.get(r).split(","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.                 System.out.println("输入的第"+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.                 System.out.println("输入的第"+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.                 System.out.println("输入的第"+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.         System.out.println("使用训练样本进行分类器检验得到结果统计如下:");  
  138.         System.out.println("R类有:"+sumR+"    实际有R类样本"+catagory_R.size()+"个");  
  139.         System.out.println("L类有:"+sumL+"    实际有L类样本"+catagory_L.size()+"个");  
  140.         System.out.println("B类有:"+sumB+"      实际有B类样本"+catagory_B.size()+"个");  
  141.   
  142.         System.out.println("分类的正确率为"+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