💖💖作者:计算机毕业设计小途
💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学习实战项目
目录
- 社交媒体用户行为数据分析与可视化系统介绍
- 社交媒体用户行为数据分析与可视化系统演示视频
- 社交媒体用户行为数据分析与可视化系统演示图片
- 社交媒体用户行为数据分析与可视化系统代码展示
- 社交媒体用户行为数据分析与可视化系统文档展示
社交媒体用户行为数据分析与可视化系统介绍
本系统《基于大数据的社交媒体用户行为数据分析与可视化》主要面向大四计算机专业毕业设计场景,围绕社交媒体里产生的用户行为数据来做分析和展示。系统用Hadoop与HDFS做数据存储基础,用Spark、Spark SQL完成数据清洗、统计和聚合,再结合Pandas、NumPy做一些指标计算和结果整理;开发语言支持Python和Java两个版本,Python版后端用Django,Java版后端用Spring Boot,前端用Vue、ElementUI、Echarts、HTML、CSS、JavaScript和jQuery,数据库用MySQL来存业务数据和基础信息。功能上包括系统首页、数据大屏、用户管理、社交媒体用户行为信息管理、用户画像分析、内容偏好分析、平台对比分析、互动热度分析、时段分布分析、广告效果分析、群体洞察分析、个人信息和修改密码。整个系统想做的事情不复杂,就是把点赞、评论、转发、浏览、广告点击这些行为数据,按用户、内容、平台、时间和群体几个角度整理出来,再用图表和页面呈现,让使用者能比较直观地看到社交媒体用户行为的一些规律。它更偏向毕业设计里的完整实践,把大数据处理、后端接口、数据库和可视化页面串起来,方便后续继续修改和扩展。
社交媒体用户行为数据分析与可视化系统演示视频
点击观看项目演示视频
社交媒体用户行为数据分析与可视化系统演示图片
社交媒体用户行为数据分析与可视化系统代码展示
spark=SparkSession.builder.appName("SocialMediaBehaviorAnalysis").master("local[*]").config("spark.sql.shuffle.partitions","4").getOrCreate()defuser_profile_analysis():jdbc_url="jdbc:mysql://localhost:3306/social_behavior"table_name="user_behavior"df=spark.read.format("jdbc").option("url",jdbc_url).option("dbtable",table_name).option("user","root").option("password","123456").option("driver","com.mysql.cj.jdbc.Driver").load()df.createOrReplaceTempView("user_behavior")profile_df=spark.sql("SELECT user_id, COUNT(*) AS total_behavior, SUM(CASE WHEN behavior_type='点赞' THEN 1 ELSE 0 END) AS like_count, SUM(CASE WHEN behavior_type='评论' THEN 1 ELSE 0 END) AS comment_count, SUM(CASE WHEN behavior_type='转发' THEN 1 ELSE 0 END) AS share_count, SUM(CASE WHEN behavior_type='浏览' THEN 1 ELSE 0 END) AS view_count, COUNT(DISTINCT DATE(behavior_time)) AS active_days, COUNT(DISTINCT platform) AS platform_count, MAX(platform) AS main_platform, MAX(HOUR(behavior_time)) AS active_hour FROM user_behavior GROUP BY user_id")pdf=profile_df.toPandas()pdf["interaction_score"]=pdf["like_count"]*1+pdf["comment_count"]*3+pdf["share_count"]*5+pdf["view_count"]*0.2pdf["activity_score"]=np.log1p(pdf["total_behavior"])*10+pdf["active_days"]*2pdf["user_group"]=np.where(pdf["activity_score"]>=pdf["activity_score"].quantile(0.7),"高活跃",np.where(pdf["activity_score"]>=pdf["activity_score"].quantile(0.3),"中活跃","低活跃"))high_count=int((pdf["user_group"]=="高活跃").sum())mid_count=int((pdf["user_group"]=="中活跃").sum())low_count=int((pdf["user_group"]=="低活跃").sum())avg_score=round(float(pdf["activity_score"].mean()),2)result={"summary":{"total_users":int(pdf.shape[0]),"high_count":high_count,"mid_count":mid_count,"low_count":low_count,"avg_score":avg_score},"records":pdf[["user_id","total_behavior","like_count","comment_count","share_count","view_count","active_days","main_platform","active_hour","interaction_score","activity_score","user_group"]].to_dict("records")}returnresultdefcontent_preference_analysis():jdbc_url="jdbc:mysql://localhost:3306/social_behavior"table_name="user_behavior"df=spark.read.format("jdbc").option("url",jdbc_url).option("dbtable",table_name).option("user","root").option("password","123456").option("driver","com.mysql.cj.jdbc.Driver").load()df.createOrReplaceTempView("user_behavior")content_df=spark.sql("SELECT content_id, content_type, topic, COUNT(*) AS view_count, SUM(CASE WHEN behavior_type='点赞' THEN 1 ELSE 0 END) AS like_count, SUM(CASE WHEN behavior_type='评论' THEN 1 ELSE 0 END) AS comment_count, SUM(CASE WHEN behavior_type='转发' THEN 1 ELSE 0 END) AS share_count, AVG(duration) AS avg_duration FROM user_behavior GROUP BY content_id, content_type, topic")pdf=content_df.toPandas()pdf["preference_score"]=pdf["like_count"]*2+pdf["comment_count"]*3+pdf["share_count"]*4+pdf["avg_duration"]*0.1pdf["content_rank"]=pdf["preference_score"].rank(ascending=False,method="dense")topic_pdf=pdf.groupby("topic",as_index=False).agg({"view_count":"sum","like_count":"sum","comment_count":"sum","share_count":"sum","preference_score":"sum"})topic_pdf["topic_rank"]=topic_pdf["preference_score"].rank(ascending=False,method="dense")topic_pdf["preference_level"]=np.where(topic_pdf["preference_score"]>=topic_pdf["preference_score"].quantile(0.7),"高偏好",np.where(topic_pdf["preference_score"]>=topic_pdf["preference_score"].quantile(0.3),"中偏好","低偏好"))top_topic=topic_pdf.sort_values("topic_rank").head(1)["topic"].iloc[0]avg_preference=round(float(topic_pdf["preference_score"].mean()),2)result={"summary":{"top_topic":top_topic,"topic_count":int(topic_pdf.shape[0]),"avg_preference":avg_preference},"topics":topic_pdf.sort_values("topic_rank").to_dict("records"),"contents":pdf.sort_values("content_rank").to_dict("records")}returnresultdefinteraction_heat_analysis():jdbc_url="jdbc:mysql://localhost:3306/social_behavior"table_name="user_behavior"df=spark.read.format("jdbc").option("url",jdbc_url).option("dbtable",table_name).option("user","root").option("password","123456").option("driver","com.mysql.cj.jdbc.Driver").load()df.createOrReplaceTempView("user_behavior")heat_df=spark.sql("SELECT platform, DATE_FORMAT(behavior_time,'%Y-%m-%d') AS stat_date, HOUR(behavior_time) AS stat_hour, COUNT(*) AS total_count, SUM(CASE WHEN behavior_type='点赞' THEN 1 ELSE 0 END) AS like_count, SUM(CASE WHEN behavior_type='评论' THEN 1 ELSE 0 END) AS comment_count, SUM(CASE WHEN behavior_type='转发' THEN 1 ELSE 0 END) AS share_count FROM user_behavior GROUP BY platform, DATE_FORMAT(behavior_time,'%Y-%m-%d'), HOUR(behavior_time)")pdf=heat_df.toPandas()pdf["heat_score"]=pdf["like_count"]*1+pdf["comment_count"]*3+pdf["share_count"]*5+pdf["total_count"]*0.1pdf["heat_level"]=np.where(pdf["heat_score"]>=pdf["heat_score"].quantile(0.8),"爆点",np.where(pdf["heat_score"]>=pdf["heat_score"].quantile(0.5),"较热","一般"))hour_pdf=pdf.groupby("stat_hour",as_index=False).agg({"total_count":"sum","heat_score":"sum"})hour_pdf["hour_rank"]=hour_pdf["heat_score"].rank(ascending=False,method="dense")platform_pdf=pdf.groupby("platform",as_index=False).agg({"total_count":"sum","heat_score":"sum"})platform_pdf["platform_rank"]=platform_pdf["heat_score"].rank(ascending=False,method="dense")top_hour=int(hour_pdf.sort_values("hour_rank").head(1)["stat_hour"].iloc[0])top_platform=platform_pdf.sort_values("platform_rank").head(1)["platform"].iloc[0]max_heat=round(float(pdf["heat_score"].max()),2)avg_heat=round(float(pdf["heat_score"].mean()),2)result={"summary":{"top_hour":top_hour,"top_platform":top_platform,"max_heat":max_heat,"avg_heat":avg_heat},"hour":hour_pdf.sort_values("hour_rank").to_dict("records"),"platform":platform_pdf.sort_values("platform_rank").to_dict("records"),"detail":pdf.sort_values("heat_score",ascending=False).to_dict("records")}returnresult社交媒体用户行为数据分析与可视化系统文档展示
💖💖作者:计算机毕业设计小途
💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学习实战项目