计算机毕业设计选题推荐 K-Means分群+孤立森林挖爆款!《基于大数据的豆瓣图书数据分析与可视化》
精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻
💖🔥作者主页:计算机毕设木哥🔥 💖
一、项目介绍
网络文学与图书阅读数据越来越多,读者口味、作品类型和热度结构又常混在一起,运营和研究者光靠表格很难快速摸清规律。行业里缺一套能把多维指标摊开、又能让不同角色各看所需的可视化分析入口。本文通过开发一个基于大数据的豆瓣图书数据分析与可视化系统,用以帮助优化图书小说数据的洞察与展示方式。
系统采用 Hadoop 与 Spark 做数据处理和分析,后端用 Django 提供接口,前端用 Vue 与 ECharts 做图表展示,算法侧用到 K-Means 聚类、FP-Growth 关联挖掘和 Isolation Forest 异常检测。功能上覆盖类型分布、风格偏好、创作状态、作品热度、作者产出、时间趋势和群体画像七个分析模块,图表含漏斗、热力、雷达、词云等多种形态,另有可视化大屏及动态轮播,并按管理员与用户区分权限,管理员可维护用户与小说信息,用户侧重查阅分析与作品明细。
经系统测试,本系统能满足数据分析学习者、图书内容运营人员和课题演示场景下“看清结构、对比热度、区分角色权限”的需求,也为同类阅读数据的可视化实践提供了一条可直接上手的参考路径。
二、开发环境
大数据与算法
Python 3.9
Hadoop 3.2.2
Spark / PySpark 3.3.x
Pandas、scikit-learn(Isolation Forest 等)
后端与数据存储
Django 2.0
MySQL(utf8mb4)
PyMySQL
前端
Vue 2.6
Element UI 2.13
ECharts 5.5(含词云插件)
Vue Router / Vuex / Axios
Node 14.15.0、npm 6.14.8
三、视频展示
基于大数据的豆瓣图书数据分析与可视化
四、项目展示
登录模块:









五、代码展示
def kmeans_cluster_analysis(input_df):
feature_cols = ["novelZishu", "novelShoucang",
"novelShuping", "novelYingyangye"]
assembler = VectorAssembler(inputCols=feature_cols, outputCol="featuresRaw")
vec_df = assembler.transform(input_df.select("id", *feature_cols))
# 标准化后再聚类,避免量纲差太大
scaler = StandardScaler(
inputCol="featuresRaw", outputCol="features",
withMean=True, withStd=True
)
scaled_df = scaler.fit(vec_df).transform(vec_df)
model = KMeans(k=4, seed=42, featuresCol="features",
predictionCol="cluster").fit(scaled_df)
predictions = model.transform(scaled_df)
# 按簇心综合热度排序,贴「长尾 / 冷门 / 中腰 / 头部」标签
cluster_stats = predictions.groupBy("cluster").agg(
spark_count("id").alias("count"),
spark_round(spark_avg("novelZishu"), 2).alias("avgZishu"),
spark_round(spark_avg("novelShoucang"), 2).alias("avgShoucang"),
spark_round(spark_avg("novelShuping"), 2).alias("avgShuping"),
spark_round(spark_avg("novelYingyangye"), 2).alias("avgYingyangye")
)
cluster_stats = cluster_stats.withColumn(
"heatScore",
col("avgZishu") + col("avgShoucang") +
col("avgShuping") + col("avgYingyangye")
)
# ……按 heatScore 升序映射 clusterLabel 后写出 csv
save_result(result, "kmeans_cluster_analysis.csv")
return result
// 类型页:组合热度 → 漏斗图
renderTypeComboHeat(data) {
const chart = this.charts.typeComboHeat
const topData = (data || []).slice(0, 10)
let opt = buildFunnel(topData, {
nameField: 'novelType',
valueField: 'avgShoucang',
name: '平均收藏'
})
chart.setOption(opt)
},
// 画像页:K-Means 结果 → 雷达图
renderKmeansCluster(data) {
const clusters = data || []
const indicators = [
{ name: '平均字数', max: Math.max(...clusters.map(c => Number(c.avgZishu || 0)), 1) },
{ name: '平均收藏', max: Math.max(...clusters.map(c => Number(c.avgShoucang || 0)), 1) },
{ name: '平均书评', max: Math.max(...clusters.map(c => Number(c.avgShuping || 0)), 1) },
{ name: '平均营养液', max: Math.max(...clusters.map(c => Number(c.avgYingyangye || 0)), 1) }
]
const series = clusters.map(c => ({
name: c.clusterLabel || c.cluster,
values: [
Number(c.avgZishu || 0), Number(c.avgShoucang || 0),
Number(c.avgShuping || 0), Number(c.avgYingyangye || 0)
]
}))
this.charts.kmeansCluster.setOption(buildRadar(indicators, series))
}
def preprocess(df):
# novelType 按 "-" 拆成 4 级:原创/衍生、言情/纯爱、时代、题材
df = df.dropna(subset=['novelType']).reset_index(drop=True)
type_split = df['novelType'].str.split('-', expand=True)
df['origin'] = type_split[0].fillna('未分类')
df['prodOrientation'] = type_split[1].fillna('未分类')
df['era'] = type_split[2].fillna('未分类')
df['genre'] = type_split[3].fillna('未分类')
# 发表时间转标准时间,再拆年/月/小时
df['novelTime'] = pd.to_datetime(
df['novelTime'], format='%Y/%m/%d %H:%M:%S', errors='coerce'
)
df = df.dropna(subset=['novelTime']).reset_index(drop=True)
df['year'] = df['novelTime'].dt.year.astype(int)
df['month'] = df['novelTime'].dt.month.astype(int)
df['hour'] = df['novelTime'].dt.hour.astype(int)
# 热度相关数值字段转整型
for col in ['novelZishu', 'novelJifen', 'novelShuping',
'novelShoucang', 'novelYingyangye']:
df[col] = pd.to_numeric(df[col], errors='coerce').astype(int)
return df
六、项目文档展示

七、总结
本系统围绕「基于大数据的豆瓣图书数据分析与可视化」展开,用 Hadoop、Spark 完成数据处理与多维分析,再经 Django 接口与 Vue、ECharts 前端,把结果做成图表和大屏。系统覆盖类型分布、风格偏好、创作状态、作品热度、作者产出、时间趋势和群体画像七个模块,其中群体画像引入 K-Means 聚类、FP-Growth 关联挖掘和 Isolation Forest 异常检测,用于分群、找类型配方、识别异常爆款。另配可视化大屏,并按管理员与用户区分权限:管理员可维护用户与小说信息,用户侧重查阅分析。整体把统计分析、算法洞察和可视化展示串成一条可演示、可使用的完整链路,便于了解图书小说数据的结构、热度与群体特征。
大家可以帮忙点赞、收藏、关注、评论啦👇🏻👇🏻👇🏻
💖🔥作者主页:计算机毕设木哥🔥 💖
更多推荐

所有评论(0)