✍✍计算机毕设指导师**
⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。
⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!
⚡⚡有什么问题可以在主页上或文末下联系咨询博客~~
⚡⚡Java、Python、小程序、大数据实战项目集](https://blog.csdn.net/2301_80395604/category_12487856.html)
⚡⚡文末获取源码
温馨提示:文末有CSDN平台官方提供的博客联系方式!
温馨提示:文末有CSDN平台官方提供的博客联系方式!
温馨提示:文末有CSDN平台官方提供的博客联系方式!
内向外向型性格行为数据分析与可视化系统-简介
本系统采用Python语言进行开发,技术架构上融合了Hadoop与Spark大数据生态体系,后端逻辑处理依托Django框架,前端界面则运用Vue.js结合Echarts实现动态交互。系统底层利用HDFS分布式文件系统存储海量性格行为数据,核心计算层通过Spark SQL与Pandas库进行高效的数据清洗与特征工程处理。功能实现上,系统聚焦于内向外向性格的行为差异量化,具体涵盖了性格类型基础行为特征的均值与分布统计、社交恐惧与疲惫感的关联规则分析、独处时间与朋友圈规模的多维层级划分。系统还集成了基于K-means算法的人群聚类模块,能够自动识别具有相似行为模式的潜在群体,并构建综合社交指数模型来评估用户的社交活跃度。最终,系统将分析结果通过MySQL数据库进行持久化存储,并利用Echarts图表库实现从数据采集、清洗、分析到可视化展示的全流程闭环,为用户提供直观的性格行为画像支持。
内向外向型性格行为数据分析与可视化系统-技术
大数据框架:Hadoop+Spark(本次没用Hive,支持定制)
开发语言:Python+Java(两个版本都支持)
后端框架:Django+Spring Boot(Spring+SpringMVC+Mybatis)(两个版本都支持)
前端:Vue+ElementUI+Echarts+HTML+CSS+JavaScript+jQuery
数据库:MySQL
内向外向型性格行为数据分析与可视化系统-背景
选题背景:
在当下的互联网社交环境中,每个人的行为习惯都会在网络上留下痕迹,而这些痕迹往往与其性格特征紧密相关。我们在生活中常能感觉到,外向者似乎更热衷于社交活动,而内向者则倾向于独处,但以往对于这种差异的研究多依赖小范围的问卷调查,数据量有限且分析维度单一。随着大数据技术的成熟,我们有机会从海量数据中客观地审视这些行为规律。然而,面对庞大的行为数据,传统的处理方式显得力不从心,难以快速挖掘出数据背后的价值。正是基于这样的现实痛点,本课题尝试引入Spark大数据处理框架,结合Python数据分析生态,构建一套能够高效处理并可视化展示性格行为差异的系统,希望能通过技术手段让数据说话。
选题意义:
开发这套基于Spark的性格行为数据分析系统,其实际意义主要体现在对数据价值的探索与应用上。一方面,通过对独处时间、社交频率等多维度数据的量化分析,我们能更清晰地描绘出不同性格人群的行为画像,这对于心理学研究或社交产品的用户分群策略制定都有一定的参考价值。另一方面,就毕业设计本身而言,这个项目完整地跑通了从数据存储、Spark计算分析到Web端可视化展示的流程。这不仅能检验我们对大数据技术的掌握程度,也能锻炼解决实际问题的能力。虽然作为一个学生项目,它可能还达不到商业级应用的高度,但通过这个系统的搭建,至少能证明大数据技术在性格分析领域是切实可行的,也算是对大学所学专业知识的一次综合实践。
内向外向型性格行为数据分析与可视化系统-视频展示
基于Spark的内向外向型性格行为数据分析与可视化系统
内向外向型性格行为数据分析与可视化系统-图片展示










内向外向型性格行为数据分析与可视化系统-代码展示
python
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, avg, count, when, desc
from pyspark.ml.feature import VectorAssembler
from pyspark.ml.clustering import KMeans
spark = SparkSession.builder.appName("PersonalityBehaviorAnalysis").master("local[*]").getOrCreate()
sc = spark.sparkContext
# 核心功能一:内向外向人群基础行为统计对比分析
def analyze_basic_behavior_statistics(df):
# 按性格类型分组,计算独处时间、社交活动参与度的平均值
stats_df = df.groupBy("Personality").agg(
avg("Time_spent_Alone").alias("avg_alone_time"),
avg("Social_event_attendance").alias("avg_social_attendance"),
avg("Friends_circle_size").alias("avg_friends_size"),
avg("Post_frequency").alias("avg_post_frequency")
)
# 将结果转换为Pandas DataFrame以便后续Django接口调用
pandas_result = stats_df.toPandas()
# 遍历结果进行简单的打印验证与逻辑处理
for index, row in pandas_result.iterrows():
personality_type = row['Personality']
alone_time = round(row['avg_alone_time'], 2)
social_rate = round(row['avg_social_attendance'], 2)
friends_count = round(row['avg_friends_size'], 1)
# 根据计算结果生成简单的分析报告文本
if personality_type == "Introvert":
analysis_text = f"内向人群平均独处时间{alone_time}小时,社交参与度较低,仅为{social_rate}"
else:
analysis_text = f"外向人群平均独处时间{alone_time}小时,社交参与度较高,达到{social_rate}"
print(f"性格类型: {personality_type}, 数据分析: {analysis_text}")
return pandas_result
# 核心功能二:社交恐惧与性格类型关联分析
def analyze_stage_fear_correlation(df):
# 筛选出具有社交恐惧的数据记录
fear_df = df.filter(col("Stage_fear") == "Yes")
# 按性格类型分组统计人数
correlation_df = fear_df.groupBy("Personality").agg(count("*").alias("fear_count"))
# 计算总人数用于比例核算
total_count = df.count()
# 关联原始数据进行比例计算
result_df = correlation_df.withColumn("fear_ratio", (col("fear_count") / total_count) * 100)
# 按恐惧人数降序排列,找出主要关联群体
sorted_result = result_df.orderBy(desc("fear_count"))
# 收集结果到Driver端供前端展示
correlation_data = sorted_result.collect()
for row in correlation_data:
p_type = row["Personality"]
f_count = row["fear_count"]
print(f"在'{p_type}'人群中,存在社交恐惧的人数为{f_count}人,占比相对较高")
return correlation_data
# 核心功能三:基于行为特征的人群聚类分析
def perform_behavior_clustering(df):
# 选取用于聚类的特征列:独处时间、社交活动、外出频率、朋友圈大小
feature_cols = ["Time_spent_Alone", "Social_event_attendance", "Going_outside", "Friends_circle_size"]
# 过滤掉包含空值的数据行,确保聚类算法稳定运行
clean_df = df.na.drop(subset=feature_cols)
# 使用VectorAssembler将多列特征合并为特征向量
assembler = VectorAssembler(inputCols=feature_cols, outputCol="features")
vector_df = assembler.transform(clean_df)
# 初始化K-Means算法,设定聚类中心数为3
kmeans = KMeans(k=3, seed=42, featuresCol="features", predictionCol="cluster_label")
# 训练模型
model = kmeans.fit(vector_df)
# 对数据进行预测,打上聚类标签
predictions = model.transform(vector_df)
# 统计各个聚类簇的人数分布情况
cluster_stats = predictions.groupBy("cluster_label").count()
# 输出聚类中心坐标,分析各簇特征
centers = model.clusterCenters()
print("聚类分析完成,各簇中心坐标如下:")
for idx, center in enumerate(centers):
print(f"簇 {idx}: 独处时间={center[0]:.1f}, 社交频率={center[1]:.1f}")
return predictions.select("Personality", "cluster_label").limit(10)
内向外向型性格行为数据分析与可视化系统-结语
毕业设计是大学四年的收官之作,也是我们从理论走向实践的关键一步。本系统虽然在性能与功能上还有很大的提升空间,但希望能为大家在Spark大数据方向选题上提供一个可参考的案例。如果这套系统能给你的毕设思路带来一点点启发,那这篇分享的意义就达到了。
觉得内容有帮助的小伙伴,别忘了去主页联系UP主获取更多资料哦!顺手点个一键三连支持一下,你们的支持是我持续更新的动力。有任何疑问欢迎在评论区留言交流,看到都会回复的,让我们一起攻克毕设难关!
⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!
⚡⚡如果遇到具体的技术问题或其他需求,你也可以问我,我会尽力帮你分析和解决问题所在,支持我记得一键三连,再点个关注,学习不迷路!~~