# BilibiliAnimeData_Analysis **Repository Path**: braveching/BilibiliAnimeData_Analysis ## Basic Information - **Project Name**: BilibiliAnimeData_Analysis - **Description**: 对B站番剧播放数据和tags进行APriori频繁项集挖掘 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-06-09 - **Last Updated**: 2021-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # B站番剧数据分析 对B站番剧播放数据和tags进行APriori频繁项集挖掘 相关文章: [https://www.kezhi.tech/爬取B站所有番剧数据并进行数据分析/](https://www.kezhi.tech/%E7%88%AC%E5%8F%96B%E7%AB%99%E6%89%80%E6%9C%89%E7%95%AA%E5%89%A7%E6%95%B0%E6%8D%AE%E5%B9%B6%E8%BF%9B%E8%A1%8C%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/) ## 1. 数据收集 使用python中的scrapy包构建爬虫 ,爬取了目前B站上所有番剧的: - 番剧名 - 标签 - 播放量 - 追番数量 - 弹幕数量 收集的数据放在`/数据爬取/anime_data/data.csv`中 > 爬虫使用说明: > > 1. scrapy 安装 `pip install scrapy`(linux:`pip3 install scrapy`) > 2. 命令行`cd`到`/数据挖掘/anime_data`目录下 > 3. 执行命令:`scrapy crawl anime_data -o data.csv` ## 2. 关联规则 每个番剧都有一定数量的`tag`来大致描述其内容,用来描述同一部番剧的`tag`通常是处于不同维度的描述,以《小林家的龙女仆》为例,其`tag`为`[萌系 搞笑 日常 漫画改]`,四个`tag`分别描述了该动画的四个不同的特征。通过对B站上所有的番剧`tag`数据进行分析,找出其中相关度最高的`tag`组合。 ### 算法流程 数据集:所有番剧的`tag`数据集,每一条数据为一部番剧的`tag` Aprior算法的流程如下: 1. 构造1项集->统计1项集出现频数->计算支持度和置信度->剪枝->频繁1项集 2. 通过k-1项集构造k项集->统计k项集出现频数->计算支持度和置信度->剪枝->频繁k项集 3. 重复第2步直到没有项集符合强规则 ## 3. k-means聚类 使用K-means对于番剧进行据类分析,采用的数据为`[播放量,追番量,弹幕量]`这三种数据形成的三维坐标 ### 算法介绍 K-means是一种无监督聚类算法,算法简单,容易实现,但是可能会产生空簇或收敛到局部最优。 算法流程如下: 1. 从样本中随机选取k个点作为初始质心 2. 计算每个样本到这k个中心的距离,将样本划分到距离它最近的质心所在的簇中 3. 重新计算每个簇的质心 4. 重复2和3直到质心不改变