# 热门视频数据分析预测可视化系统 **Repository Path**: guangduan/Bilibili-popular-video-data-analysis-and-visualization-system ## Basic Information - **Project Name**: 热门视频数据分析预测可视化系统 - **Description**: 本系统采用Java技术SpringBoot框架和Python技术Django框架(两种框架开发的都有)和Hadoop,hdfs,Scrapy爬虫,MySQL数据库,B/S 结构,Vue.js 技术,算法亮点,采用随机森林回归算法进行预测和协同过滤算法(余弦相似性)推荐。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-19 - **Last Updated**: 2025-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: 热门视频数据分析预测系统, hadoop-hdfs, SpringBoot, 机器学习随机森林回归算法, 协同过滤算法 ## README ## 基于HadoopB站热门视频数据分析可视化系统 ## 基于机器学习B站热门视频数据分析预测可视化 ## 前言介绍 随着大数据时代的到来,数据分析和可视化成为了洞察业务趋势、提升决策质量的关键手段。B站数据分析可视化系统应运而生,旨在通过对海量数据的采集、处理、分析和展示,为业务决策提供强有力的数据支持。该系统采用Python语言Django框架和java语言Springboot框架两种语言框架分别进行开发,利用其强大的数据处理能力和丰富的库支持,实现数据的高效分析。Scrapy技术的应用使得系统能够快速爬取B站的公开数据,为分析提供原始素材。看板可视化技术则将分析结果以直观、易理解的方式呈现给用户,提升信息传递的效率。预测功能通过构建数据模型,对B站的热门视频进行机器学习算法随机森林回归预测和协同过滤算法推荐,为战略规划提供依据。 Hadoop框架的应用解决了大数据环境下的存储和计算问题,保障了系统的可扩展性。Django框架和Springboot框架的使用简化了Web应用的开发,使得系统功能更加丰富、稳定。MySQL数据库作为数据存储的核心,以其可靠性和易用性,为平台提供了强大的数据支持。B站数据分析可视化系统的建设和应用,不仅提高了数据分析的效率和质量,也为业务创新和发展提供了新的动力,推动了数据分析技术在视频平台领域的应用和发展。 ## 01开发环境 1.1Java 技术和Python技术(两种语言开发的都有) 1.2SpringBoot框架和Django框架(两种框架开发) 1.3Hadoop,hdfs 1.4Scrapy爬虫 1.5MySQL数据库 1.6B/S 结构 1.7Vue.js 技术 1.8随机森林回归算法和协同过滤算法(余弦相似性) ## 02系统功能模块 **亮点(爬虫【Bilibili网站】、机器学习(随机森林)、数据预测、Echarts可视化)** 1、视频数据管理:爬虫信息列表展示。 2、数据存储:mysql数据库。 3、可视化分析:各种数据分析统计后图表大屏展示。 4、情感分析预测:根据B站视频的各种属性进行预测。 5、数据分析:根据hadoop大数据技术进行数据分析 ## 03图片展示 ![输入图片说明](09%E5%89%8D%E5%8F%B0%E7%94%A8%E6%88%B7%E6%B3%A8%E5%86%8C%E7%99%BB%E5%BD%95.png) ![输入图片说明](07%E5%89%8D%E5%8F%B0%E7%B3%BB%E7%BB%9F%E9%A6%96%E9%A1%B5.png) ![输入图片说明](08%E7%83%AD%E9%97%A8%E8%A7%86%E9%A2%91%E6%8E%A8%E8%8D%90.png) ![输入图片说明](010%E4%B8%AA%E4%BA%BA%E4%B8%AD%E5%BF%83.png) ![输入图片说明](011.png) ![输入图片说明](01%E5%90%8E%E5%8F%B0%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F.png) ![输入图片说明](03%E5%90%8E%E5%8F%B0%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%E9%A6%96%E9%A1%B5.png) ![输入图片说明](04%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86.png) ![输入图片说明](05%E7%83%AD%E9%97%A8%E8%A7%86%E9%A2%91.png) ![输入图片说明](%E9%A2%84%E6%B5%8B%E5%9B%BE%E8%A1%A8.png) ## 04代码展示 ![输入图片说明](02%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%A4%A7%E5%B1%8F.png) ![输入图片说明](java%E5%9F%BA%E4%BA%8E%E7%94%A8%E6%88%B7%E7%9A%84%E5%8D%8F%E5%90%8C%E8%BF%87%E6%BB%A4%E7%AE%97%E6%B3%95.png) ![输入图片说明](java%E9%9A%8F%E6%9C%BA%E6%A3%AE%E6%9E%97.png) ![输入图片说明](%E9%9A%8F%E6%9C%BA%E6%A3%AE%E6%9E%97vx.png) ```java /**** *交流学习vx18484646674 * 协同算法(基于用户的协同算法) */ @RequestMapping("/autoSort2") public R autoSort2(@RequestParam Map params,CaipinxinxiEntity caipinxinxi, HttpServletRequest request){ String userId = request.getSession().getAttribute("userId").toString(); Integer limit = params.get("limit")==null?10:Integer.parseInt(params.get("limit").toString()); // 查询订单数据 List orders = ordersService.selectList(new EntityWrapper()); Map> ratings = new HashMap<>(); if(orders!=null && orders.size()>0) { for(OrdersEntity o : orders) { Map userRatings = null; if(ratings.containsKey(o.getUserid().toString())) { userRatings = ratings.get(o.getUserid().toString()); } else { userRatings.put(o.getGoodid().toString(), 1.0); } } } // 创建协同过滤对象 UserBasedCollaborativeFiltering filter = new UserBasedCollaborativeFiltering(ratings); // 为指定用户推荐物品 String targetUser = userId; int numRecommendations = limit; List recommendations = filter.recommendItems(targetUser, numRecommendations); // 输出推荐结果 System.out.println("Recommendations for " + targetUser + ":"); for (String item : recommendations) { System.out.println(item); } EntityWrapper ew = new EntityWrapper(); ew.in("id", recommendations); ew.eq("onshelves","1"); if(recommendations!=null && recommendations.size()>0 && recommendations.size()>0) { ew.last("order by FIELD(id, "+String.join(",", recommendations)+")"); } ```