{"id":4,"date":"2013-08-17T01:51:25","date_gmt":"2013-08-16T17:51:25","guid":{"rendered":"http:\/\/blog.stlover.org\/?p=4"},"modified":"2013-08-24T07:09:56","modified_gmt":"2013-08-23T23:09:56","slug":"%e5%86%b3%e7%ad%96%e6%a0%91%e7%ae%97%e6%b3%95%e5%88%9d%e5%b0%9d","status":"publish","type":"post","link":"http:\/\/blog.xuhao1.me\/?p=4","title":{"rendered":"\u51b3\u7b56\u6811\u7b97\u6cd5\u521d\u5c1d\u4e4bID3"},"content":{"rendered":"<p>\u6700\u8fd1\u5b66\u4e60Machine Learning \uff0c\u53d1\u89c9\u9887\u4e3a\u6709\u8da3\u3002\u51c6\u5907\u4f7f\u7528\u76f8\u5173\u7b97\u6cd5\u6765\u8dd1\u4e00\u8dd1\u57fa\u56e0\u7ec4\uff0c\u505a\u505a\u673a\u5668\u4eba\u7684\u63a7\u5236\u3002<\/p>\n<p>\u51b3\u7b56\u6811\u662f\u4e00\u79cd\u9887\u4e3a\u6709\u8da3\u7684\u4e1c\u897f\uff0c\u5176\u57fa\u672c\u539f\u7406\u662f\u6240\u8c13\u7684Occam&#8217;s razor\uff1a\u4f18\u5148\u9009\u62e9\u62df\u5408\u6570\u636e\u6700\u7b80\u5355\u7684\u5047\u8bbe\u3002\u4e8e\u662f\u81ea\u7136\u7684\u5728java\u4e0a\u5199\u4e86\u4e2a\u51b3\u7b56\u6811\u73a9\u73a9\u3002<\/p>\n<p><!--more--><\/p>\n<p>\u5e9f\u8bdd\u5c11\u8bf4\uff0c\u770b\u770b\u6709\u8da3\u7684\u4ee3\u7801<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pln\">ID3<\/span><span class=\"pun\">(<\/span><span class=\"typ\">String<\/span><span class=\"pun\">[][]<\/span><span class=\"pln\">\u00a0data<\/span><span class=\"pun\">,<\/span><span class=\"kwd\">boolean<\/span><span class=\"pun\">[]<\/span><span class=\"pln\">\u00a0value<\/span><span class=\"pun\">)<\/span><span class=\"pln\">\u00a0<\/span><span class=\"kwd\">throws<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">IOException\/\/\u901a\u8fc7\u4e00\u5806String\u548c\u4e00\u4e2abool\u6570\u7ec4\u5efa\u7acb\u8fd9\u4e2a\u51b3\u7b56\u6811\uff0clog\u662f\u4e00\u4e9b\u8c03\u8bd5\u4fe1\u606f<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">int<\/span><span class=\"pln\">\u00a0i<\/span><span class=\"pun\">,<\/span><span class=\"pln\">n<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0log<\/span><span class=\"pun\">=<\/span><span class=\"kwd\">new<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">PrintWriter<\/span><span class=\"pun\">(<\/span><span class=\"kwd\">new<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">FileWriter<\/span><span class=\"pun\">(<\/span><span class=\"kwd\">new<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">File<\/span><span class=\"pun\">(<\/span><span class=\"str\">&#8220;fout.txt&#8221;<\/span><span class=\"pun\">)),<\/span><span class=\"kwd\">true<\/span><span class=\"pun\">);<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"typ\">Set<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\">\u00a0dat<\/span><span class=\"pun\">=<\/span><span class=\"kwd\">new<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;();\/\/Set \u5de8\u597d\u7528\uff01<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">for<\/span><span class=\"pun\">(<\/span><span class=\"pln\">i<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">;<\/span><span class=\"pln\">i<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">data<\/span><span class=\"pun\">.<\/span><span class=\"pln\">length<\/span><span class=\"pun\">;<\/span><span class=\"pln\">i<\/span><span class=\"pun\">++)<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dat<\/span><span class=\"pun\">.<\/span><span class=\"pln\">add<\/span><span class=\"pun\">(<\/span><span class=\"kwd\">new<\/span><span class=\"pln\">\u00a0obje<\/span><span class=\"pun\">(<\/span><span class=\"pln\">data<\/span><span class=\"pun\">[<\/span><span class=\"pln\">i<\/span><span class=\"pun\">],<\/span><span class=\"pln\">value<\/span><span class=\"pun\">[<\/span><span class=\"pln\">i<\/span><span class=\"pun\">]));<\/span><\/li>\n<li class=\"L7\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root<\/span><span class=\"pun\">=<\/span><span class=\"kwd\">new<\/span><span class=\"pln\">\u00a0node<\/span><span class=\"pun\">(<\/span><span class=\"pln\">dat<\/span><span class=\"pun\">);<\/span><\/li>\n<li class=\"L8\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<\/ol>\n<p>ID3\u662f\u4e00\u79cd\u6700\u539f\u59cb\u7684\u51b3\u7b56\u6811\uff0c\u4e5f\u5c31\u662f\u6211\u4eec\u4eca\u5929\u8c08\u8bba\u7684\u5bf9\u8c61\u3002<\/p>\n<p><span style=\"line-height: 1.714285714; font-size: 1rem;\">\u5199\u5728\u51b3\u7b56\u6811\u65f6\u5019\uff0c\u6211\u662f\u8fd9\u4e48\u641e\u9012\u5f52\u5efa\u7acb\u8fc7\u7a0b\u3002<\/span><\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0node<\/span><span class=\"pun\">(<\/span><span class=\"typ\">Set<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\">\u00a0data<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">int<\/span><span class=\"pln\">\u00a0i<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">,<\/span><span class=\"pln\">j<\/span><span class=\"pun\">,<\/span><span class=\"pln\">tem<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">,<\/span><span class=\"pln\">n<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">double<\/span><span class=\"pln\">\u00a0max<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obje\u00a0top<\/span><span class=\"pun\">=<\/span><span class=\"pln\">data<\/span><span class=\"pun\">.<\/span><span class=\"pln\">iterator<\/span><span class=\"pun\">().<\/span><span class=\"pln\">next<\/span><span class=\"pun\">();<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0n<\/span><span class=\"pun\">=<\/span><span class=\"pln\">top<\/span><span class=\"pun\">.<\/span><span class=\"pln\">numv<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0no<\/span><span class=\"pun\">=++<\/span><span class=\"pln\">num;\/\/\u8282\u70b9\u7f16\u53f7\uff0c\u65b9\u4fbfdebug<\/span><span class=\"pun\"><br \/>\n<\/span><\/li>\n<li class=\"L7\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">if<\/span><span class=\"pun\">(<\/span><span class=\"pln\">sam<\/span><span class=\"pun\">(<\/span><span class=\"pln\">data<\/span><span class=\"pun\">))\/\/\u5982\u679c\u7ed3\u8bba\u76f8\u540c\uff0c\u90a3\u4e48\u5c31\u5f00\u5fc3\u7684\u5f97\u51fa\u51b3\u7b56\u6811\u7684\u51b3\u7b56\u5566<\/span><\/li>\n<li class=\"L8\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L9\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0res<\/span><span class=\"pun\">=<\/span><span class=\"pln\">data<\/span><span class=\"pun\">.<\/span><span class=\"pln\">iterator<\/span><span class=\"pun\">().<\/span><span class=\"pln\">next<\/span><span class=\"pun\">().<\/span><span class=\"pln\">res<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L0\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">return<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">double<\/span><span class=\"pln\">\u00a0gas<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">for<\/span><span class=\"pun\">(<\/span><span class=\"pln\">i<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">;<\/span><span class=\"pln\">i<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">n<\/span><span class=\"pun\">;<\/span><span class=\"pln\">i<\/span><span class=\"pun\">++)<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">if<\/span><span class=\"pun\">(!<\/span><span class=\"pln\">top<\/span><span class=\"pun\">.<\/span><span class=\"pln\">seleted<\/span><span class=\"pun\">[<\/span><span class=\"pln\">i<\/span><span class=\"pun\">])\/\uff0f\u8fd9\u4e2a\u9009\u9879\u9009\u8fc7\u4e86\u90a3\u4e48\u5c31\u4e0d\u8981\u5b83\u4e86<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L7\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0gas<\/span><span class=\"pun\">=<\/span><span class=\"typ\">Gain<\/span><span class=\"pun\">(<\/span><span class=\"pln\">data<\/span><span class=\"pun\">,<\/span><span class=\"pln\">i<\/span><span class=\"pun\">);\/\/\u9009\u4e00\u4e2a\u4fe1\u606f\u589e\u76ca\u6700\u597d\u7684\u70b9<\/span><\/li>\n<li class=\"L8\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">if<\/span><span class=\"pun\">(<\/span><span class=\"pln\">max<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">gas<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L9\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L0\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0max<\/span><span class=\"pun\">=<\/span><span class=\"pln\">gas<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0tem<\/span><span class=\"pun\">=<\/span><span class=\"pln\">i<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0item<\/span><span class=\"pun\">=<\/span><span class=\"pln\">tem<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">if<\/span><span class=\"pun\">(<\/span><span class=\"pln\">max<\/span><span class=\"pun\">&lt;<\/span><span class=\"lit\">1e-4<\/span><span class=\"pun\">)\/\/\u5982\u679c\u4fe1\u606f\u589e\u76ca\u90fd\u592a\u5c0f\u5c31\u65e0\u53ef\u53ef\u9009\u4e86\uff0c\u5012\u6709\u53ef\u80fd\u662f\u6570\u636e\u6709\u8bef\u5dee\u6216\u8005\u9519\u8bef\uff0c\u6b64\u5904\u662fID3\u57fa\u672c\u7b97\u6cd5\u7684\u5c40\u9650\u7684\uff0c\u5728\u6539\u8fdb\u4e2d\u6b64\u884c\u5e94\u8be5\u628a\u7ed3\u8bba\u4ee5\u6982\u7387\u5f62\u5f0f\u7ed9\u51fa<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">return<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L7\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"typ\">HashMap<\/span><span class=\"pun\">&lt;<\/span><span class=\"typ\">String<\/span><span class=\"pun\">,<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\">\u00a0lf<\/span><span class=\"pun\">=<\/span><span class=\"kwd\">new<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">HashMap<\/span><span class=\"pun\">&lt;<\/span><span class=\"typ\">String<\/span><span class=\"pun\">,<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;&gt;();\/\/\u4e00\u4e2amap\u62d6\u4e00\u4e2aset\uff0c\u662f\u7528\u6765\u9020\u6811\u7684\uff0c\u51b3\u7b56\u6811\u4ee5\u540e\u96be\u514d\u9047\u5230\u53ef\u6015\u7684\u60c5\u51b5\uff0c\u8fd8\u662f\u63d0\u524dhash\u4e86\u4fdd\u8bc1\u901f\u5ea6\u5b89\u5168<\/span><\/li>\n<li class=\"L8\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">for<\/span><span class=\"pun\">(<\/span><span class=\"pln\">obje\u00a0ij<\/span><span class=\"pun\">:<\/span><span class=\"pln\">data<\/span><span class=\"pun\">)\/\/for_each\u6bcf\u4e2a\u9009\u9879<\/span><\/li>\n<li class=\"L9\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">if<\/span><span class=\"pun\">(<\/span><span class=\"pln\">lf<\/span><span class=\"pun\">.<\/span><span class=\"pln\">get<\/span><span class=\"pun\">(<\/span><span class=\"pln\">ij<\/span><span class=\"pun\">.<\/span><span class=\"pln\">field<\/span><span class=\"pun\">[<\/span><span class=\"pln\">item<\/span><span class=\"pun\">])==<\/span><span class=\"kwd\">null<\/span><span class=\"pun\">)\/\/\u662f\u7a7a\u7684\u5c31\u628a\u5b83\u653e\u5230\u5bf9\u5e94\u9009\u9879\u7684\u96c6\u5408\u4e0b\u3002<\/span><\/li>\n<li class=\"L0\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\">\u00a0bra<\/span><span class=\"pun\">=<\/span><span class=\"kwd\">new<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;();<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ij<\/span><span class=\"pun\">.<\/span><span class=\"pln\">seleted<\/span><span class=\"pun\">[<\/span><span class=\"pln\">item<\/span><span class=\"pun\">]=<\/span><span class=\"kwd\">true<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bra<\/span><span class=\"pun\">.<\/span><span class=\"pln\">add<\/span><span class=\"pun\">(<\/span><span class=\"pln\">ij<\/span><span class=\"pun\">);<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0lf<\/span><span class=\"pun\">.<\/span><span class=\"pln\">put<\/span><span class=\"pun\">(<\/span><span class=\"pln\">ij<\/span><span class=\"pun\">.<\/span><span class=\"pln\">field<\/span><span class=\"pun\">[<\/span><span class=\"pln\">item<\/span><span class=\"pun\">],<\/span><span class=\"pln\">bra<\/span><span class=\"pun\">);<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">else\/\/\u7a7a\u7684\u5c31\u521b\u9020\u4e00\u4e2a\u96c6\u5408<\/span><\/li>\n<li class=\"L7\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L8\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ij<\/span><span class=\"pun\">.<\/span><span class=\"pln\">seleted<\/span><span class=\"pun\">[<\/span><span class=\"pln\">item<\/span><span class=\"pun\">]=<\/span><span class=\"kwd\">true<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L9\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0lf<\/span><span class=\"pun\">.<\/span><span class=\"pln\">get<\/span><span class=\"pun\">(<\/span><span class=\"pln\">ij<\/span><span class=\"pun\">.<\/span><span class=\"pln\">field<\/span><span class=\"pun\">[<\/span><span class=\"pln\">item<\/span><span class=\"pun\">]).<\/span><span class=\"pln\">add<\/span><span class=\"pun\">(<\/span><span class=\"pln\">ij<\/span><span class=\"pun\">);<\/span><\/li>\n<li class=\"L0\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"typ\">Set<\/span><span class=\"pun\">&lt;<\/span><span class=\"typ\">Map<\/span><span class=\"pun\">.<\/span><span class=\"typ\">Entry<\/span><span class=\"pun\">&lt;<\/span><span class=\"typ\">String<\/span><span class=\"pun\">,<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\">\u00a0lfs<\/span><span class=\"pun\">=<\/span><span class=\"pln\">lf<\/span><span class=\"pun\">.<\/span><span class=\"pln\">entrySet<\/span><span class=\"pun\">();\/\/\u54c8\uff5e\u9887\u4e3a\u5947\u8469\u7684\u5efa\u6811\u65b9\u6cd5\uff0c\u7528\u4e00\u4e2amap\u89e3\u51b3\uff0c\u8fd9\u6837\u6811\u6709\u51e0\u4e07\u4e2a\u5206\u5c94\u4e5f\u4e0d\u6015\uff01\u5144\u5f1f\u5b69\u5b50\u8868\u793a\u6548\u7387\u4e0d\u9ad8\u7684<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">for<\/span><span class=\"pun\">(<\/span><span class=\"typ\">Map<\/span><span class=\"pun\">.<\/span><span class=\"typ\">Entry<\/span><span class=\"pun\">&lt;<\/span><span class=\"typ\">String<\/span><span class=\"pun\">,<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;&gt;<\/span><span class=\"pln\">\u00a0entry<\/span><span class=\"pun\">:<\/span><span class=\"pln\">lfs<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0leaf<\/span><span class=\"pun\">.<\/span><span class=\"pln\">put<\/span><span class=\"pun\">(<\/span><span class=\"pln\">\u00a0entry<\/span><span class=\"pun\">.<\/span><span class=\"pln\">getKey<\/span><span class=\"pun\">(),<\/span><span class=\"kwd\">new<\/span><span class=\"pln\">\u00a0node<\/span><span class=\"pun\">(<\/span><span class=\"pln\">entry<\/span><span class=\"pun\">.<\/span><span class=\"pln\">getValue<\/span><span class=\"pun\">())<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">);<\/span><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<li class=\"L7\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<\/ol>\n<p>\u4e8e\u662f\u5462\uff0c\u6211\u7684\u5efa\u7acb\u6811\u7684\u4efb\u52a1\u5c31\u7528new node\u8fd9\u79cd\u6765\u5b9e\u73b0\u4e86\uff0c\u867d\u7136\u8fd9\u662f\u4e00\u4e2a\u6280\u672f\u95ee\u9898\uff0c\u4f46\u662f\u5fcd\u4e0d\u4f4f\u591a\u63d0\u4e00\u53e5\uff0c\u53d1\u73b0\u9762\u5bf9\u5bf9\u8c61\u7f16\u7a0b\u548c\u51fd\u6570\u5f0f\u7f16\u7a0b\u9887\u6709\u5f02\u66f2\u540c\u5de5\u4e4b\u5999\u8bf6<\/p>\n<p>\u6bd4\u5982\uff0c\u5982\u4e0b\u662f\u6211\u7684haskell\u4e8c\u53c9\u6811\u7684\u5efa\u7acb<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pun\">&#8212;<\/span><span class=\"pln\">\u00a0<\/span><span class=\"kwd\">this<\/span><span class=\"pln\">\u00a0is\u00a0haskell\u00a0code<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">insert\u00a0<\/span><span class=\"pun\">::<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"typ\">Ord<\/span><span class=\"pln\">\u00a0a<\/span><span class=\"pun\">)<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">=&gt;<\/span><span class=\"pln\">\u00a0a<\/span><span class=\"pun\">-&gt;<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Tree<\/span><span class=\"pln\">\u00a0a<\/span><span class=\"pun\">-&gt;<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Tree<\/span><span class=\"pln\">\u00a0a<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">insert\u00a0x\u00a0<\/span><span class=\"typ\">Empty<\/span><span class=\"pun\">=<\/span><span class=\"pln\">leaf\u00a0x<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">insert\u00a0x\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"typ\">Node<\/span><span class=\"pln\">\u00a0v\u00a0l\u00a0r<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">|<\/span><span class=\"pln\">x<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\">v\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"typ\">Node<\/span><span class=\"pln\">\u00a0v\u00a0l\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"pln\">insert\u00a0x\u00a0r<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">|<\/span><span class=\"pln\">x<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">v\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"typ\">Node<\/span><span class=\"pln\">\u00a0v\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"pln\">insert\u00a0x\u00a0l<\/span><span class=\"pun\">)<\/span><span class=\"pln\">\u00a0r<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">|<\/span><span class=\"pln\">otherwise<\/span><span class=\"pun\">=<\/span><span class=\"typ\">Node<\/span><span class=\"pln\">\u00a0x\u00a0l\u00a0r<\/span><\/li>\n<\/ol>\n<p>\u662f\u4e0d\u662f\u5f88\u50cf\u5462\u3002\u3002\u3002<\/p>\n<p>\u597d\u4e86\u4e0d\u8dd1\u9898\u4e86\uff0c\u8bf4\u8bf4\u4ee3\u7801\u672c\u8eab\u5427\u3002<\/p>\n<p>\u51b3\u7b56\u6811\u662f\u5728\u4e00\u5806\u5404\u79cd\u547d\u9898\u5f97\u51fa\u7ed3\u8bba\uff0c\u603b\u4f53\u611f\u89c9\u548cK-Dimensions Tree\u90e8\u5206\u7c7b\u4f3c\uff0c\u5c31\u662f\u4e00\u5806\u7279\u5f81\u627e\u554a\u627e\uff0c\u4e0d\u8fc7\u51b3\u7b56\u6811\u7528\u4e86\u4e00\u4e2a\u53eb\u4fe1\u606f\u71b5\u7684\u73a9\u610f\uff08\u4f3c\u4e4e\u662f\u9999\u519c\u8001\u7237\u5b50\u641e\u7684\u4e1c\u897f\uff1f\u4f46\u662f\u4f5c\u4e3a\u7269\u7406\u7cfb\u5b66\u751f\u603b\u662f\u60f3\u8d77\u6765\u53ef\u7231\u7684\u9ea6\u514b\u65af\u97e6\u5c0f\u5996\u7cbe\uff09\uff0c\u4f7f\u5f97\u6bcf\u6b21\u627e\u4e00\u4e2a\u6700\u77ed\u7684\u5c5e\u6027\u9879\u6765\u5c06\u96c6\u5408\u5212\u5206\u3002ID3\u6bcf\u6b21\u8ba1\u7b97\u4e00\u4e2a\u53eb\u505a\u4fe1\u606f\u589e\u76ca\u7684\u4e1c\u897f\uff0c\u4e5f\u5c31\u662f\u4e0a\u6587\u7684Gain\uff0cGain\u8d8a\u5927\u7684\u5219\u8bf4\u660e\u8fd9\u4e2a\u9009\u9879\u7684\u6709\u6548\u5ea6\u8d8a\u9ad8\uff0c\u5219\u53ef\u4ee5\u53d6\u4e4b\u4e3a\u4fe1\u3002\u4e8e\u662f\u6211\u4eec\u4eceMitchell\u540c\u5fd7\u7f51\u7ad9\u4e0a\u627e\u7684\u6570\u636e\u62ff\u6765\u5b9e\u9a8c\u4e0b\uff08\u987a\u4fbf\u63d0\u4e00\u53e5\uff0ccmu\u7684\u8fd9\u4f4d\u5927\u795e\u628a\u81ea\u5df1\u7684\u4e66\u653e\u5230\u7f51\u4e0a\u516c\u5f00\uff0c\u800c\u4e14\u4ed6\u7684\u6837\u4f8b\u7a0b\u5e8f\u90fd\u662f\u770b\u4e0d\u61c2\u7684Lisp\uff09<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"kwd\">protected<\/span><span class=\"pln\">\u00a0<\/span><span class=\"kwd\">double<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Gain<\/span><span class=\"pun\">(<\/span><span class=\"typ\">Set<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\">\u00a0data<\/span><span class=\"pun\">,<\/span><span class=\"kwd\">int<\/span><span class=\"pln\">\u00a0k<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">return<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Entropy0<\/span><span class=\"pun\">(<\/span><span class=\"pln\">data<\/span><span class=\"pun\">,<\/span><span class=\"pln\">k<\/span><span class=\"pun\">)+<\/span><span class=\"typ\">Entropy<\/span><span class=\"pun\">(<\/span><span class=\"pln\">data<\/span><span class=\"pun\">,<\/span><span class=\"pln\">k<\/span><span class=\"pun\">);<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<\/ol>\n<p>Gain\u662f\u8fd9\u4e48\u4e00\u4e2a\u4e1c\u897f\uff0cEntropy0\u662fdata\u5bf9\u4e8e\u67d0\u4e00\u5c5e\u6027\u7684\u71b5\uff0cEntropy\u662f\u8be5\u5c5e\u6027\u5bf9\u4e8e\u6bcf\u4e00\u503c\u71b5\u7684\u548c<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"kwd\" style=\"line-height: 1.714285714; font-size: 1rem;\">protected<\/span><span class=\"pln\" style=\"line-height: 1.714285714; font-size: 1rem;\">\u00a0<\/span><span class=\"kwd\" style=\"line-height: 1.714285714; font-size: 1rem;\">double<\/span><span class=\"pln\" style=\"line-height: 1.714285714; font-size: 1rem;\">\u00a0<\/span><span class=\"typ\" style=\"line-height: 1.714285714; font-size: 1rem;\">Entropy0<\/span><span class=\"pun\" style=\"line-height: 1.714285714; font-size: 1rem;\">(<\/span><span class=\"typ\" style=\"line-height: 1.714285714; font-size: 1rem;\">Set<\/span><span class=\"pun\" style=\"line-height: 1.714285714; font-size: 1rem;\">&lt;<\/span><span class=\"pln\" style=\"line-height: 1.714285714; font-size: 1rem;\">obje<\/span><span class=\"pun\" style=\"line-height: 1.714285714; font-size: 1rem;\">&gt;<\/span><span class=\"pln\" style=\"line-height: 1.714285714; font-size: 1rem;\">\u00a0data<\/span><span class=\"pun\" style=\"line-height: 1.714285714; font-size: 1rem;\">,<\/span><span class=\"kwd\" style=\"line-height: 1.714285714; font-size: 1rem;\">int<\/span><span class=\"pln\" style=\"line-height: 1.714285714; font-size: 1rem;\">\u00a0k<\/span><span class=\"pun\" style=\"line-height: 1.714285714; font-size: 1rem;\">)<\/span><\/li>\n<\/ol>\n<ol class=\"linenums\">\n<li class=\"L1\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"typ\">HashMap<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">&lt;<\/span><span class=\"typ\">String<\/span><span class=\"pun\">,<\/span><span class=\"typ\">Integer<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\">\u00a0hm<\/span><span class=\"pun\">=<\/span><span class=\"kwd\">new<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">HashMap<\/span><span class=\"pun\">&lt;<\/span><span class=\"typ\">String<\/span><span class=\"pun\">,<\/span><span class=\"typ\">Integer<\/span><span class=\"pun\">&gt;();<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">int<\/span><span class=\"pln\">\u00a0len<\/span><span class=\"pun\">=<\/span><span class=\"pln\">data<\/span><span class=\"pun\">.<\/span><span class=\"pln\">size<\/span><span class=\"pun\">();<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">int<\/span><span class=\"pln\">\u00a0i<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">double<\/span><span class=\"pln\">\u00a0res<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">,<\/span><span class=\"pln\">temp<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">double<\/span><span class=\"pln\">\u00a0up<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">,<\/span><span class=\"pln\">down<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L7\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">for<\/span><span class=\"pun\">(<\/span><span class=\"pln\">obje\u00a0obj<\/span><span class=\"pun\">:<\/span><span class=\"pln\">data<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L8\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">if<\/span><span class=\"pun\">(<\/span><span class=\"pln\">obj<\/span><span class=\"pun\">.<\/span><span class=\"pln\">res<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L9\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0up<\/span><span class=\"pun\">++;<\/span><\/li>\n<li class=\"L0\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">else<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0down<\/span><span class=\"pun\">++;<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">return<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-(<\/span><span class=\"pln\">up<\/span><span class=\"pun\">\/(<\/span><span class=\"pln\">up<\/span><span class=\"pun\">+<\/span><span class=\"pln\">down<\/span><span class=\"pun\">)*<\/span><span class=\"pln\">log2<\/span><span class=\"pun\">(<\/span><span class=\"pln\">up<\/span><span class=\"pun\">\/(<\/span><span class=\"pln\">up<\/span><span class=\"pun\">+<\/span><span class=\"pln\">down<\/span><span class=\"pun\">))<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">+<\/span><span class=\"pln\">down<\/span><span class=\"pun\">\/(<\/span><span class=\"pln\">up<\/span><span class=\"pun\">+<\/span><span class=\"pln\">down<\/span><span class=\"pun\">)*<\/span><span class=\"pln\">log2<\/span><span class=\"pun\">(<\/span><span class=\"pln\">down<\/span><span class=\"pun\">\/(<\/span><span class=\"pln\">up<\/span><span class=\"pun\">+<\/span><span class=\"pln\">down<\/span><span class=\"pun\">)));<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">protected<\/span><span class=\"pln\">\u00a0<\/span><span class=\"kwd\">double<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Entropy<\/span><span class=\"pun\">(<\/span><span class=\"typ\">Set<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\">\u00a0data<\/span><span class=\"pun\">,<\/span><span class=\"kwd\">int<\/span><span class=\"pln\">\u00a0k<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L7\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L8\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"typ\">HashMap<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">&lt;<\/span><span class=\"typ\">String<\/span><span class=\"pun\">,<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;&gt;<\/span><span class=\"pln\">\u00a0hm<\/span><span class=\"pun\">=<\/span><span class=\"kwd\">new<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">HashMap<\/span><span class=\"pun\">&lt;<\/span><span class=\"typ\">String<\/span><span class=\"pun\">,<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;&gt;();<\/span><\/li>\n<li class=\"L9\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">double<\/span><span class=\"pln\">\u00a0len<\/span><span class=\"pun\">=<\/span><span class=\"pln\">data<\/span><span class=\"pun\">.<\/span><span class=\"pln\">size<\/span><span class=\"pun\">();<\/span><\/li>\n<li class=\"L0\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">int<\/span><span class=\"pln\">\u00a0i<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">double<\/span><span class=\"pln\">\u00a0res<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">,<\/span><span class=\"pln\">temp<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">for<\/span><span class=\"pun\">(<\/span><span class=\"pln\">obje\u00a0tem<\/span><span class=\"pun\">:<\/span><span class=\"pln\">data<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">if<\/span><span class=\"pun\">(<\/span><span class=\"pln\">hm<\/span><span class=\"pun\">.<\/span><span class=\"pln\">get<\/span><span class=\"pun\">(<\/span><span class=\"pln\">tem<\/span><span class=\"pun\">.<\/span><span class=\"pln\">field<\/span><span class=\"pun\">[<\/span><span class=\"pln\">k<\/span><span class=\"pun\">])==<\/span><span class=\"kwd\">null<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\">\u00a0set<\/span><span class=\"pun\">=<\/span><span class=\"kwd\">new<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;();<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0set<\/span><span class=\"pun\">.<\/span><span class=\"pln\">add<\/span><span class=\"pun\">(<\/span><span class=\"pln\">tem<\/span><span class=\"pun\">);<\/span><\/li>\n<li class=\"L7\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hm<\/span><span class=\"pun\">.<\/span><span class=\"pln\">put<\/span><span class=\"pun\">(<\/span><span class=\"pln\">tem<\/span><span class=\"pun\">.<\/span><span class=\"pln\">field<\/span><span class=\"pun\">[<\/span><span class=\"pln\">k<\/span><span class=\"pun\">],<\/span><span class=\"pln\">set<\/span><span class=\"pun\">);<\/span><\/li>\n<li class=\"L8\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<li class=\"L9\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">else<\/span><\/li>\n<li class=\"L0\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hm<\/span><span class=\"pun\">.<\/span><span class=\"pln\">get<\/span><span class=\"pun\">(<\/span><span class=\"pln\">tem<\/span><span class=\"pun\">.<\/span><span class=\"pln\">field<\/span><span class=\"pun\">[<\/span><span class=\"pln\">k<\/span><span class=\"pun\">]).<\/span><span class=\"pln\">add<\/span><span class=\"pun\">(<\/span><span class=\"pln\">tem<\/span><span class=\"pun\">);<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">\u00a0<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"typ\">Set<\/span><span class=\"pun\">&lt;<\/span><span class=\"typ\">Map<\/span><span class=\"pun\">.<\/span><span class=\"typ\">Entry<\/span><span class=\"pun\">&lt;<\/span><span class=\"typ\">String<\/span><span class=\"pun\">,<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\">\u00a0set\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0hm<\/span><span class=\"pun\">.<\/span><span class=\"pln\">entrySet<\/span><span class=\"pun\">();<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">double<\/span><span class=\"pln\">\u00a0up<\/span><span class=\"pun\">,<\/span><span class=\"pln\">down<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">for<\/span><span class=\"pun\">(<\/span><span class=\"typ\">Map<\/span><span class=\"pun\">.<\/span><span class=\"typ\">Entry<\/span><span class=\"pun\">&lt;<\/span><span class=\"typ\">String<\/span><span class=\"pun\">,<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;&gt;<\/span><span class=\"pln\">\u00a0entry<\/span><span class=\"pun\">:<\/span><span class=\"pln\">\u00a0set<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0up<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">;<\/span><span class=\"pln\">down<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L7\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"typ\">HashSet<\/span><span class=\"pun\">&lt;<\/span><span class=\"pln\">obje<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\">\u00a0set2<\/span><span class=\"pun\">=<\/span><span class=\"pln\">entry<\/span><span class=\"pun\">.<\/span><span class=\"pln\">getValue<\/span><span class=\"pun\">();<\/span><\/li>\n<li class=\"L8\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">for<\/span><span class=\"pun\">(<\/span><span class=\"pln\">obje\u00a0ob1<\/span><span class=\"pun\">:<\/span><span class=\"pln\">set2<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L9\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">{<\/span><\/li>\n<li class=\"L0\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">if<\/span><span class=\"pun\">(<\/span><span class=\"pln\">ob1<\/span><span class=\"pun\">.<\/span><span class=\"pln\">res<\/span><span class=\"pun\">)<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0up<\/span><span class=\"pun\">++;<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">else<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0down<\/span><span class=\"pun\">++;<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">double<\/span><span class=\"pln\">\u00a0t<\/span><span class=\"pun\">=<\/span><span class=\"pln\">up<\/span><span class=\"pun\">\/(<\/span><span class=\"pln\">up<\/span><span class=\"pun\">+<\/span><span class=\"pln\">down<\/span><span class=\"pun\">)*<\/span><span class=\"pln\">log2<\/span><span class=\"pun\">(<\/span><span class=\"pln\">up<\/span><span class=\"pun\">\/(<\/span><span class=\"pln\">up<\/span><span class=\"pun\">+<\/span><span class=\"pln\">down<\/span><span class=\"pun\">))<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">+<\/span><span class=\"pln\">down<\/span><span class=\"pun\">\/(<\/span><span class=\"pln\">up<\/span><span class=\"pun\">+<\/span><span class=\"pln\">down<\/span><span class=\"pun\">)*<\/span><span class=\"pln\">log2<\/span><span class=\"pun\">(<\/span><span class=\"pln\">down<\/span><span class=\"pun\">\/(<\/span><span class=\"pln\">up<\/span><span class=\"pun\">+<\/span><span class=\"pln\">down<\/span><span class=\"pun\">));<\/span><\/li>\n<li class=\"L7\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0res<\/span><span class=\"pun\">+=(<\/span><span class=\"pln\">up<\/span><span class=\"pun\">+<\/span><span class=\"pln\">down<\/span><span class=\"pun\">)\/<\/span><span class=\"pln\">len<\/span><span class=\"pun\">*<\/span><span class=\"pln\">t<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L8\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\">}<\/span><\/li>\n<li class=\"L9\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"kwd\">return<\/span><span class=\"pln\">\u00a0res<\/span><span class=\"pun\">;<\/span><\/li>\n<li class=\"L0\"><span class=\"pln\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"pun\"><br \/>\n<\/span><\/li>\n<\/ol>\n<p>\u5177\u4f53\u71b5\u4ec0\u4e48\u7684\u53bb\u770bMitchell\u5927\u795e\u7684\u4e66\u5566\u3002\u3002\u8981\u6253\u624e\u5b9e\u57fa\u7840\u54e6\uff08\u5176\u5b9e\u662f\u56f0\u4e86\u6539\u5929\u518d\u5199\uff09\u53cd\u6b63\u8fd9\u73a9\u610f\u8d8a\u5927\u5219\u6570\u636e\u5c31\u5206\u5316\u660e\u663e\u3002<\/p>\n<p>\u6bd4\u5982\u8fd9\u4e2a\u6570\u636e<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\">0 \u00a0 \u00a0 1 \u00a0 \u00a02 \u00a0 3 \u00a0 4 \u00a0 5<\/li>\n<li class=\"L0\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;sunny&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;hot&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;high&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;0&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L1\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;sunny&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;hot&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;high&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;strong&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;0&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L2\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;overcast&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;hot&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L3\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;rain&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;mild&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;high&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L4\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;rain&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;cool&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L5\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;rain&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;cool&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;strong&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;0&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L6\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;overcast&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;cool&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;strong&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L7\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;sunny&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;mild&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;high&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;0&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L8\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;sunny&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;cool&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L9\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;rain&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;mild&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L0\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;sunny&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;mild&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;strong&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L1\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;overcast&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;mild&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;high&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;strong&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L2\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;overcast&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;hot&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L3\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;rain&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;mild&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;high&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;strong&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;0&#8221;}<\/span><\/li>\n<\/ol>\n<p>\u65e0\u59a8\u8ba4\u4e3a\uff08\u5e7b\u60f3\u4e3a\uff09\u662fxuhao\u51fa\u53bb\u548c\u59b9\u7eb8\u7ea6\u4f1a\u7684\u6545\u4e8b<\/p>\n<p>0\uff5e4\u5c5e\u6027\u5206\u522b\u4ee3\u8868\u5929\u6c14\u7684\u5404\u79cd\u60c5\u51b5\uff0c\u9633\u5149\uff0c\u6e29\u5ea6\uff0c\u6e7f\u5ea6\uff0c\u98ce\u901f\uff0c0or1\u4ee3\u8868\u662f\u5426\uff08\u5e7b\u60f3\uff09\u53bb\u7ea6\u4f1a\u3002<\/p>\n<p>\u7136\u540eJre\u53bb\u627e\u4e86mathematica\u7b80\u5355\u7684\u5904\u7406\u4e86\u81ea\u5df1\u7684\u6570\u636e\u544a\u8bc9\u6211\u4eec\u8fd9\u6837\u7684\u7ed3\u679c<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/blog.stlover.org\/wp-content\/uploads\/2013\/08\/treedata.jpg\"><img loading=\"lazy\" class=\"alignnone size-medium wp-image-13\" alt=\"treedata\" src=\"http:\/\/blog.stlover.org\/wp-content\/uploads\/2013\/08\/treedata-300x245.jpg\" width=\"300\" height=\"245\" srcset=\"http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2013\/08\/treedata-300x245.jpg 300w, http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2013\/08\/treedata-624x510.jpg 624w, http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2013\/08\/treedata.jpg 647w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\u55ef\uff0c\u4e00\u9897\u6811\uff01\uff0c\u8fd9\u5c31\u662f\u4ea7\u751f\u51b3\u7b56\u7684\u6811\u5566\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u53ea\u8981overcast\u4e86\uff0cxuhao\u5c31\u4f1a\u4e0d\u7531\u81ea\u4e3b\uff0c\u4f46\u8fd8\u6709\u5176\u4ed6\u53ef\u80fd\u3002\u4f46\u662f\u6709\u51e0\u4e2a\u6709\u8da3\u7684\u95ee\u9898\uff0c\u5176\u4e00\u662f\u6211\u4eec\u66f4\u6539\u4e0b\u6570\u636e<\/p>\n<p>\u6bd4\u5982\uff0c\u52a0\u4e00\u4e2a\u9519\u7684\uff01<\/p>\n<p>\u52a0\u4e0a\u8fd9\u4e2a<\/p>\n<p>{&#8220;overcast&#8221;,&#8221;cool&#8221;,&#8221;normal&#8221;,&#8221;weak&#8221;,&#8221;0&#8243;}<\/p>\n<p>\uff08\u6211\u4eec\u8ba4\u4e3a\u8fd9\u4e2a\u662f\u9519\u7684\u54c8\uff0c\u56e0\u4e3a\u6839\u636e\u5e38\u8bc6cool\u7684\u5929\u6c14\u66f4\u4e50\u4e8e\u51fa\u53bb\u73a9\uff0c\u4e0a\u9762\u7684\u5224\u65ad\u8fd9\u4e2a\u65e0\u8bba\u5982\u4f55\u4e5f\u8981\u53bb\u7ea6\u59b9\u7eb8\uff0c\u53ea\u80fd\u662f\u5176\u4ed6\u539f\u56e0\u6bd4\u5982\u5403\u8c46\u89d2\u4f4f\u533b\u9662\u8fd9\u79cd\u4e0d\u53ef\u6297\u62d2\u56e0\u7d20\u5f15\u8d77\u7684\uff0c\u90a3\u4e48\u5c31\u662f\u8bef\u5dee\u4e86\uff01\uff09<\/p>\n<p>\u4f46\u662f\u5462\uff0c\u6811\u5c31\u53d8\u7684\u4e0d\u53ef\u7406\u89e3\u4e86<\/p>\n<p><a href=\"http:\/\/blog.stlover.org\/wp-content\/uploads\/2013\/08\/treedatawrong.jpg\"><img loading=\"lazy\" class=\"alignnone size-medium wp-image-18\" alt=\"treedatawrong\" src=\"http:\/\/blog.stlover.org\/wp-content\/uploads\/2013\/08\/treedatawrong-300x212.jpg\" width=\"300\" height=\"212\" srcset=\"http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2013\/08\/treedatawrong-300x212.jpg 300w, http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2013\/08\/treedatawrong-624x441.jpg 624w, http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2013\/08\/treedatawrong.jpg 647w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\u8fd9\u662f\u4ec0\u4e48\u5bb6\u4f19\uff01\u90fd\u662f\u4e9b\u4ec0\u4e48\u7ed3\u8bba\u561b\uff0c\u672c\u6765\u7ea6\u59b9\u7eb8\u641e\u7684\u83ab\u540d\u5947\u5999\u3002<\/p>\n<p>\u518d\u6bd4\u5982\uff0c\u5077\u5077\u52a0\u4e00\u5217<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;sunny&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;hot&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;high&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;0&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L1\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;2&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;sunny&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;hot&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;high&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;strong&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;0&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L2\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;3&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;overcast&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;hot&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L3\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;4&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;rain&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;mild&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;high&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L4\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;5&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;rain&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;cool&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L5\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;6&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;rain&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;cool&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;strong&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;0&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L6\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;7&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;overcast&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;cool&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;strong&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L7\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;8&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;sunny&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;mild&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;high&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;0&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L8\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;9&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;sunny&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;cool&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L9\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;10&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;rain&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;mild&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L0\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;11&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;sunny&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;mild&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;strong&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L1\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;12&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;overcast&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;mild&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;high&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;strong&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L2\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;13&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;overcast&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;hot&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;normal&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;weak&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;1&#8221;<\/span><span class=\"pun\">},<\/span><\/li>\n<li class=\"L3\"><span class=\"pun\">{<\/span><span class=\"str\">&#8220;14&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;rain&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;mild&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;high&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;strong&#8221;<\/span><span class=\"pun\">,<\/span><span class=\"str\">&#8220;0&#8221;<\/span><span class=\"pun\">}<\/span><\/li>\n<\/ol>\n<p>\u6beb\u65e0\u8fdd\u548c\u611f\uff0c\u4e0d\u8fc7\u662f\u52a0\u4e86\u4e2a\u65e5\u671f\u561b\uff0c\u53ef\u662f\u3002\u3002\u6811\u53d8\u6210\u4e86\u8fd9\u6837\u5b50<\/p>\n<p><a href=\"http:\/\/blog.stlover.org\/wp-content\/uploads\/2013\/08\/treedata2.jpg\"><img loading=\"lazy\" class=\"alignnone size-medium wp-image-14\" alt=\"treedata2\" src=\"http:\/\/blog.stlover.org\/wp-content\/uploads\/2013\/08\/treedata2-300x83.jpg\" width=\"300\" height=\"83\" srcset=\"http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2013\/08\/treedata2-300x83.jpg 300w, http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2013\/08\/treedata2-624x173.jpg 624w, http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2013\/08\/treedata2.jpg 647w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\u54df\uff0c\u679c\u7136\u65e5\u671f\u7684\u4fe1\u606f\u589e\u76ca\u591f\u5927\u4e86\uff0c\u4f46\u662f\u4e00\u70b9\u90fd\u4e0d\u53ef\u7231\u4e86\u561b\uff01\u65e5\u671f\u662f\u5b8c\u5168\u6b63\u786e\u7684\u7b26\u5408\u4e86\u6570\u636e\uff0c\u4f46\u662f\uff01\u8fd9\u4e0d\u662f\u660e\u663e\u6211\u4eec\u60f3\u8981\u7684\u9884\u6d4b\u3002<\/p>\n<p>\u518d\u6709\u3002\u3002\u4e0a\u9762\u6316\u4e86\u4e2a\u5751\u5728\u5efa\u6811\u768427\u884c\u6beb\u4e0d\u8d1f\u8d23\u7684\u6253\u4e86\u4e2areturn\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u53ea\u8981\u6570\u636e\u9519\u8bef\u5c31\u4f1a\u8e66\u51fa\u6765NullPointer\u4e00\u7c7b\u7684\uff0c\u8fd9\u663e\u7136\u4e0d\u662f\u4e00\u4e2a\u7269\u7406\u7cfb\u5b66\u751f\u6240\u80fd\u5bb9\u5fcd\u7684\u4e25\u8c28\uff08\u5927\u96fe\u8bd5\u9a8c\u8bef\u5dee\u4e09\u500d\u4e5f\u5f97\u7ed9\u4ed6\u5206\u6790\u6210\u5929\u65f6\u5730\u5229\u4eba\u548c\u5fc3\u60c5\u4e0d\u597d\u88ab\u59b9\u7eb8\u7529\u4e86\u5929\u4e0a\u6709\u98de\u789f\u4e0b\u6708\u6709\u6d41\u661f\u51fa\u73b0\u7684\u8bef\u5dee\uff0c\u8fd9\u79cd\u8bef\u5dee\u80fd\u4e0d\u5904\u7406\uff1f\uff09<\/p>\n<p>\u4e8e\u662f\u6709\u4e2a\u53ebC4.5\u7684\u4e1c\u897f\u51fa\u73b0\u4e86\u3002<\/p>\n<p>\u56f0\u4e86\u3002\u3002\u6b32\u77e5\u540e\u4e8b\u5982\u4f55\uff0c\u8bf7\u89c1\u4e0b\u56de\u5206\u6653\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6700\u8fd1\u5b66\u4e60Machine Learning \uff0c\u53d1\u89c9\u9887\u4e3a\u6709\u8da3\u3002\u51c6\u5907\u4f7f\u7528\u76f8\u5173\u7b97\u6cd5\u6765\u8dd1\u4e00\u8dd1\u57fa\u56e0\u7ec4\uff0c\u505a\u505a\u673a\u5668\u4eba\u7684\u63a7\u5236\u3002  &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.xuhao1.me\/?p=4\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201c\u51b3\u7b56\u6811\u7b97\u6cd5\u521d\u5c1d\u4e4bID3\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=\/wp\/v2\/posts\/4"}],"collection":[{"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4"}],"version-history":[{"count":7,"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=\/wp\/v2\/posts\/4\/revisions"}],"predecessor-version":[{"id":107,"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=\/wp\/v2\/posts\/4\/revisions\/107"}],"wp:attachment":[{"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}