Hadoop好友推荐系统-聚类中心及占比查看
来源:互联网 发布:java程序下载 编辑:程序博客网 时间:2024/06/06 08:41
项目总目录:基于Hadoop的好友推荐系统项目综述
一、前端展示
1、jsp页面
<input class="easyui-validatebox" type="text" id="group_input_id" data-options="required:true" style="width:300px" value="WEB-INF/classes/centervector.dat" /> <a id="group_check_id" href="" class="easyui-linkbutton" data-options="iconCls:'icon-note'">查看</a> <br><hr><br> </div> <div style="padding-left: 30px;font-size: 15px;padding-top:10px;"><br> 这里的数据不包括过滤的数据以及未分类的数据,即只包含已分类的数据<br> </div> <div id="group_return_id" style="padding-left: 30px;font-size: 20px;padding-top:10px;"></div>
jsp页面指定了数据的输入文件:WEB-INF/classes/centervector.dat
2、js逻辑
// group //查看聚类中心及占比 $('#group_check_id').bind('click', function(){ var input_i=$('#group2db_input_id').val(); // 弹出进度框 popupProgressbar('聚类中心','聚类中心解析中...',1000); // ajax 异步提交任务 getCenterAndDisplay("cloud/cloud_groupcheck.action"); });
这里使用getCenterAndDisplay实现任务提交。
/** * 获取中心点并展示 * * @param url_ */function getCenterAndDisplay(url_){ $.ajax({ url : url_, data: {}, async:true, dataType:"json", context : document.body, success : function(data) { closeProgressbar(); var retMsg; if("true"==data.flag){ retMsg='操作成功!'; // 展示返回数据 $('#group_return_id').html(data.html); }else{ retMsg='操作失败!失败原因:'+data.msg; } $.messager.show({ title : '提示', msg : retMsg }); } });}
二、后台实现
1、action层
对应的action从这里获取:getCenterAndDisplay(“cloud/cloud_groupcheck.action”);
/** * 解析本地聚类中心数据,并获得数据库中分类数据占比情况 * 返回前台显示 */ public void groupcheck(){ Map<String,Object> map = new HashMap<String,Object>(); List<String> centerVec=null; List<String> percentVec=null; try{ input = input==null ? HUtils.LOCALCENTERFILE:input; centerVec= Utils.getLines(input);//获取聚类中心 percentVec= dBService.getPercent(centerVec.size());//计算各个聚类簇占总数的百分比 // 整合数据 StringBuffer buff = new StringBuffer(); buff.append("<br>"); for(int i=0;i<centerVec.size();i++){ buff.append("聚类中心:"+centerVec.get(i)+"\t,占比:"+percentVec.get(i)+"<br>"); } map.put("html", buff.toString()); map.put("flag","true"); }catch(Exception e){ map.put("flag", "false"); map.put("msg", "解析聚类中心出错!"); e.printStackTrace(); } Utils.write2PrintWriter(JSON.toJSONString(map)); return ; }
2、获取聚类中心
Utils.getLines的定义如下:
/** * 获得input的数据,每行作为一个字符串,全部数据放入list中 * @param input * @return * @throws IOException */ public static List<String> getLines(String input) throws IOException { List<String> list = new ArrayList<String>(); input = Utils.getRootPathBasedPath(input); FileReader reader = new FileReader(input); BufferedReader br = new BufferedReader(reader); String line = null; while((line = br.readLine()) != null) { list.add(line); } br.close(); reader.close(); return list; }
3、计算百分比
/** * 获取分类数据占比 * * @param i * @return */ public List<String> getPercent(int k) { double[] percents = new double[k]; double sum = 0; String hql = "select count(1) from UserGroup ug where ug.groupType=?"; for (int i = 0; i < k; i++) { percents[i] = baseDao.count(hql, new Object[] { i + 1 });//查找属于聚类中心i的数据个数 sum += percents[i];//统计数据总数 } List<String> list = new ArrayList<String>(); for (int i = 0; i < k; i++) { list.add(Utils.obejct2Percent(percents[i] / sum, 2));// 计算每个聚类簇中数目的百分比,保留两位小数 } return list; }
三、程序运行截图
阅读全文
0 0
- Hadoop好友推荐系统-聚类中心及占比查看
- Hadoop好友推荐系统-寻找聚类中心
- Hadoop好友推荐系统-执行聚类算法
- Hadoop好友推荐系统-推荐结果查询
- 推荐系统- 亚马逊收入占比35%
- Hadoop好友推荐系统-数据表的初始化
- Hadoop好友推荐系统-用户距离计算
- Hadoop好友推荐系统-寻找最佳DC
- Hadoop好友推荐系统-画出决策图
- Hadoop好友推荐系统-执行分类算法
- Hadoop好友推荐系统-组别数据入库
- 基于Hadoop的好友推荐系统项目综述
- Hadoop好友推荐系统-HDFS的文件上传和下载
- Hadoop好友推荐系统-去重后的数据存入数据库
- Hadoop好友推荐系统-数据库过滤数据到HDFS
- Hadoop/Spark推荐系统(一)——共同好友
- Hadoop/MapReduce 好友推荐解决方案
- Hadoop好友推荐系统-项目架构搭建和用户登陆的实现
- zzuli1098
- Elasticsearch JavaAPI 创建索引
- 静态方法与非静态方法的区别
- TCP连接与断开
- linux用户管理详解
- Hadoop好友推荐系统-聚类中心及占比查看
- 近期的忧愁
- 网络演进中的LTE短信解决方案研究
- Unity 3D: Scroll View 刷新
- 关于反射的一些理解
- Python中内置数据类型list,tuple,dict,set的区别和用法
- 《第一行代码》自学笔记-活动的基本用法
- java file文件类操作使用方法大全
- 警惕数组的浅拷贝