一、个人简介
- 💖💖作者:计算机编程果茶熊
- 💙💙个人简介:曾长期从事计算机专业培训教学,担任过编程老师,同时本人也热爱上课教学,擅长Java、微信小程序、Python、Golang、安卓Android等多个IT方向。会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
- 💛💛想说的话:感谢大家的关注与支持!
- 💜💜
- 网站实战项目
- 安卓/小程序实战项目
- 大数据实战项目
- 计算机毕业设计选题
- 💕💕文末获取源码联系计算机编程果茶熊
二、系统介绍
- 大数据框架:Hadoop+Spark(本次没用Hive,支持定制)
- 开发语言:Python+Java(两个版本都支持)
- 后端框架:Django+Spring Boot(Spring+SpringMVC+Mybatis)(两个版本都支持)
- 前端:Vue+ElementUI+Echarts+HTML+CSS+JavaScript+jQuery
- 详细技术点:Hadoop、HDFS、Spark、Spark SQL、Pandas、NumPy
- 数据库:MySQL
基于大数据的心理健康综合数据分析系统是一个集数据采集、存储、分析和可视化于一体的智能化平台。该系统采用Hadoop分布式文件系统进行海量心理健康数据的存储管理,通过Spark大数据计算引擎实现对用户心理状态、生活方式、工作环境等多维度数据的深度挖掘和实时分析。系统后端基于Python语言和Django框架构建,前端采用Vue+ElementUI+Echarts技术栈打造直观的用户交互界面和数据可视化大屏。核心功能包括用户信息管理、心理健康信息采集与管理、基于机器学习的聚类分析、核心指标统计分析、生活方式关联性分析以及工作环境影响因素分析等模块。系统运用Pandas和NumPy进行数据预处理,通过Spark SQL实现复杂查询操作,能够对大规模心理健康数据进行高效处理和智能分析,为心理健康评估和干预提供科学的数据支撑和决策参考。
三、基于大数据的心理健康综合数据分析系统-视频解说
Python大数据项目实战:心理健康数据分析系统完整开发教程|计算机毕业设计|毕业设计选题推荐
四、基于大数据的心理健康综合数据分析系统-功能展示
五、基于大数据的心理健康综合数据分析系统-代码展示
from pyspark.sql import SparkSession
from pyspark.ml.clustering import KMeans
from pyspark.ml.feature import VectorAssembler, StandardScaler
from pyspark.sql.functions import col, when, count, avg, sum, max, min
from pyspark.sql.types import StructType, StructField, StringType, IntegerType, DoubleType
import pandas as pd
import numpy as np
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json
spark = SparkSession.builder.appName("PsychologicalHealthAnalysis").config("spark.some.config.option", "some-value").getOrCreate()
@csrf_exempt
def psychological_clustering_analysis(request):
if request.method == 'POST':
data = json.loads(request.body)
user_data = data.get('user_psychological_data', [])
df_pandas = pd.DataFrame(user_data)
df_spark = spark.createDataFrame(df_pandas)
feature_cols = ['anxiety_score', 'depression_score', 'stress_level', 'sleep_quality', 'social_activity']
assembler = VectorAssembler(inputCols=feature_cols, outputCol='features')
df_features = assembler.transform(df_spark)
scaler = StandardScaler(inputCol='features', outputCol='scaled_features')
scaler_model = scaler.fit(df_features)
df_scaled = scaler_model.transform(df_features)
kmeans = KMeans(k=4, seed=42, featuresCol='scaled_features', predictionCol='cluster')
kmeans_model = kmeans.fit(df_scaled)
df_clustered = kmeans_model.transform(df_scaled)
cluster_summary = df_clustered.groupBy('cluster').agg(
count('*').alias('count'),
avg('anxiety_score').alias('avg_anxiety'),
avg('depression_score').alias('avg_depression'),
avg('stress_level').alias('avg_stress'),
avg('sleep_quality').alias('avg_sleep'),
avg('social_activity').alias('avg_social')
).collect()
cluster_centers = kmeans_model.clusterCenters()
result_data = []
for i, row in enumerate(cluster_summary):
cluster_info = {
'cluster_id': row['cluster'],
'member_count': row['count'],
'avg_anxiety_score': round(row['avg_anxiety'], 2),
'avg_depression_score': round(row['avg_depression'], 2),
'avg_stress_level': round(row['avg_stress'], 2),
'avg_sleep_quality': round(row['avg_sleep'], 2),
'avg_social_activity': round(row['avg_social'], 2),
'cluster_center': [round(float(x), 3) for x in cluster_centers[i]]
}
result_data.append(cluster_info)
return JsonResponse({'status': 'success', 'clustering_results': result_data})
return JsonResponse({'status': 'error', 'message': 'Invalid request method'})
@csrf_exempt
def core_indicators_analysis(request):
if request.method == 'POST':
data = json.loads(request.body)
health_records = data.get('health_records', [])
df_pandas = pd.DataFrame(health_records)
df_spark = spark.createDataFrame(df_pandas)
df_spark = df_spark.withColumn('risk_level',
when((col('anxiety_score') > 7) | (col('depression_score') > 6), 'high')
.when((col('anxiety_score') > 4) | (col('depression_score') > 3), 'medium')
.otherwise('low'))
df_spark = df_spark.withColumn('mental_health_index',
(10 - col('anxiety_score') + 10 - col('depression_score') + col('sleep_quality') + col('social_activity')) / 4)
overall_stats = df_spark.agg(
count('*').alias('total_records'),
avg('anxiety_score').alias('avg_anxiety'),
avg('depression_score').alias('avg_depression'),
avg('stress_level').alias('avg_stress'),
avg('sleep_quality').alias('avg_sleep'),
avg('social_activity').alias('avg_social'),
avg('mental_health_index').alias('avg_mental_index')
).collect()[0]
risk_distribution = df_spark.groupBy('risk_level').agg(
count('*').alias('count')
).collect()
age_group_analysis = df_spark.withColumn('age_group',
when(col('age') < 25, '18-24')
.when(col('age') < 35, '25-34')
.when(col('age') < 45, '35-44')
.otherwise('45+')
).groupBy('age_group').agg(
count('*').alias('count'),
avg('mental_health_index').alias('avg_index'),
avg('anxiety_score').alias('avg_anxiety'),
avg('depression_score').alias('avg_depression')
).collect()
risk_data = [{'risk_level': row['risk_level'], 'count': row['count']} for row in risk_distribution]
age_data = []
for row in age_group_analysis:
age_info = {
'age_group': row['age_group'],
'count': row['count'],
'avg_mental_index': round(row['avg_index'], 2),
'avg_anxiety': round(row['avg_anxiety'], 2),
'avg_depression': round(row['avg_depression'], 2)
}
age_data.append(age_info)
indicators_result = {
'total_records': overall_stats['total_records'],
'overall_avg_anxiety': round(overall_stats['avg_anxiety'], 2),
'overall_avg_depression': round(overall_stats['avg_depression'], 2),
'overall_avg_stress': round(overall_stats['avg_stress'], 2),
'overall_avg_sleep': round(overall_stats['avg_sleep'], 2),
'overall_avg_social': round(overall_stats['avg_social'], 2),
'overall_mental_index': round(overall_stats['avg_mental_index'], 2),
'risk_distribution': risk_data,
'age_group_analysis': age_data
}
return JsonResponse({'status': 'success', 'indicators_analysis': indicators_result})
return JsonResponse({'status': 'error', 'message': 'Invalid request method'})
@csrf_exempt
def lifestyle_correlation_analysis(request):
if request.method == 'POST':
data = json.loads(request.body)
lifestyle_data = data.get('lifestyle_records', [])
df_pandas = pd.DataFrame(lifestyle_data)
df_spark = spark.createDataFrame(df_pandas)
df_spark = df_spark.withColumn('exercise_category',
when(col('exercise_frequency') >= 5, 'high')
.when(col('exercise_frequency') >= 3, 'medium')
.otherwise('low'))
df_spark = df_spark.withColumn('sleep_category',
when(col('sleep_hours') >= 8, 'sufficient')
.when(col('sleep_hours') >= 6, 'moderate')
.otherwise('insufficient'))
df_spark = df_spark.withColumn('diet_category',
when(col('healthy_diet_score') >= 8, 'excellent')
.when(col('healthy_diet_score') >= 6, 'good')
.otherwise('poor'))
exercise_impact = df_spark.groupBy('exercise_category').agg(
count('*').alias('count'),
avg('anxiety_score').alias('avg_anxiety'),
avg('depression_score').alias('avg_depression'),
avg('stress_level').alias('avg_stress'),
avg('life_satisfaction').alias('avg_satisfaction')
).collect()
sleep_impact = df_spark.groupBy('sleep_category').agg(
count('*').alias('count'),
avg('anxiety_score').alias('avg_anxiety'),
avg('depression_score').alias('avg_depression'),
avg('energy_level').alias('avg_energy'),
avg('mood_score').alias('avg_mood')
).collect()
diet_impact = df_spark.groupBy('diet_category').agg(
count('*').alias('count'),
avg('anxiety_score').alias('avg_anxiety'),
avg('depression_score').alias('avg_depression'),
avg('physical_health_score').alias('avg_physical'),
avg('mental_clarity').alias('avg_clarity')
).collect()
correlation_matrix = df_spark.select(
'exercise_frequency', 'sleep_hours', 'healthy_diet_score',
'anxiety_score', 'depression_score', 'stress_level'
).toPandas().corr()
exercise_results = []
for row in exercise_impact:
exercise_info = {
'category': row['exercise_category'],
'count': row['count'],
'avg_anxiety': round(row['avg_anxiety'], 2),
'avg_depression': round(row['avg_depression'], 2),
'avg_stress': round(row['avg_stress'], 2),
'avg_satisfaction': round(row['avg_satisfaction'], 2)
}
exercise_results.append(exercise_info)
sleep_results = []
for row in sleep_impact:
sleep_info = {
'category': row['sleep_category'],
'count': row['count'],
'avg_anxiety': round(row['avg_anxiety'], 2),
'avg_depression': round(row['avg_depression'], 2),
'avg_energy': round(row['avg_energy'], 2),
'avg_mood': round(row['avg_mood'], 2)
}
sleep_results.append(sleep_info)
diet_results = []
for row in diet_impact:
diet_info = {
'category': row['diet_category'],
'count': row['count'],
'avg_anxiety': round(row['avg_anxiety'], 2),
'avg_depression': round(row['avg_depression'], 2),
'avg_physical': round(row['avg_physical'], 2),
'avg_clarity': round(row['avg_clarity'], 2)
}
diet_results.append(diet_info)
correlation_data = correlation_matrix.round(3).to_dict()
lifestyle_analysis_result = {
'exercise_impact': exercise_results,
'sleep_impact': sleep_results,
'diet_impact': diet_results,
'correlation_matrix': correlation_data
}
return JsonResponse({'status': 'success', 'lifestyle_analysis': lifestyle_analysis_result})
return JsonResponse({'status': 'error', 'message': 'Invalid request method'})
六、基于大数据的心理健康综合数据分析系统-文档展示
七、END
- 💛💛想说的话:感谢大家的关注与支持!
- 💜💜
- 网站实战项目
- 安卓/小程序实战项目
- 大数据实战项目
- 计算机毕业设计选题
- 💕💕文末获取源码联系计算机编程果茶熊