最近已经学习的差不多了那个推荐算法,开启我的实践部分,本次实践采取了一个kaggle数据集的动漫电影数据集,写一个推荐系统的算法,数据集如下所示:
数据集介绍,单独版本
1、anime_with_synopsis.csv
1 |
|
对这个关键的数据集进行最基本的观察和分析:
1 |
|
synopsis: 动漫的简要描述或剧情简介。
Genres: 动漫的类型(例如:动作、冒险、喜剧等)。
Score: 动漫的评分(通常是从 1 到 10)。
Name: 动漫的名称。
MAL_ID: 动漫的唯一标识符。
2、anime.csv
1 |
|
MAL_ID: 动漫的唯一标识符(与 anime_with_synopsis.csv 中的 MAL_ID 对应)。
Name: 动漫的名称。
Score: 动漫的评分。
Genres: 动漫的类型。
English name: 动漫的英文名称(如果有)。
Japanese name: 动漫的日文名称。
Type: 动漫的类型(例如:TV、电影、OVA)。
Episodes: 动漫的集数。
Aired: 播出时间段。
Premiered: 首播季节。
其他字段:有关评分的详细数据(例如,评分的分布)。
3、 animelist.csv
1 |
|
1 |
|
user_id: 用户的唯一标识符。
anime_id: 动漫的唯一标识符(与 anime.csv 中的 MAL_ID 对应)。
rating: 用户对动漫的评分。
watching_status: 用户对动漫的观看状态。
watched_episodes: 用户观看的集数。
4、rating_complete.csv
字段:
user_id: 用户的唯一标识符。
anime_id: 动漫的唯一标识符。
rating: 用户对动漫的评分。
5、watching_status.csv
字段:
status: 状态的唯一标识符(与 animelist.csv 中的 watching_status 对应)。
description: 状态的描述(例如:正在观看、已完成、计划观看等)。
数据集之间的关系
anime_with_synopsis.csv 和 anime.csv
关系: 这两个数据集都包含动漫的基本信息,例如 MAL_ID、Name、Score 和 Genres。
区别:
anime_with_synopsis.csv 还包括每部动漫的简要描述(synopsis)。
anime.csv 包含更详细的播出信息和评分分布数据。
animelist.csv 和 rating_complete.csv
关系: 这两个数据集都包含用户对动漫的评分信息。
区别:
animelist.csv 包含了用户的观看状态和观看的集数。
rating_complete.csv 只包含用户对动漫的评分,没有观看状态和观看集数信息。
watching_status.csv 和 status_description.csv
关系: 这两个数据集都涉及用户的观看状态。
区别:
watching_status.csv 包含了用户对动漫的观看状态和状态的标识符。
status_description.csv 提供了这些状态标识符的描述。
animelist.csv 和 watching_status.csv
关系: animelist.csv 中的 watching_status 列与 watching_status.csv 中的 status 列相对应,表示用户的观看状态。
---------------------------------------------------------------------------------------------------
官网的网址:
https://www.kaggle.com/datasets/hernan4444/anime-recommendation-database-2020/data
kaggle官网介绍:
MyAnimeList 数据库 2020
推荐数据来自 MyAnimeList 网站的 320,000 用户和 16,000 动漫。
这个数据集包含关于 17,562 部动漫和 325,772 不同用户的偏好信息。具体来说,这个数据集包含:
- 每个用户的动漫列表,包括已弃置、已完成、计划观看、正在观看和搁置的动漫。
- 用户对其完全观看过的动漫所给出的评分。
- 动漫的相关信息,如类型、统计数据、制作公司等。
- 包含动漫信息的 HTML 文件进行数据抓取。这些文件包含诸如评论、剧情简介、工作人员信息、动漫统计、类型等信息。
内容
数据抓取时间为 2 月 26 日至 3 月 20 日。
“html” 文件夹包含每个动漫的 1 个 zip 文件(共 17,562 个动漫)。每个 zip 文件包含从 MyAnimeList 抓取的不同 HTML 页面,包括:
- 主页
- 评论
- 推荐
- 统计数据
- 角色和工作人员
animelist.csv
包含用户登记的所有动漫列表及其相应评分、观看状态和观看的集数。这个数据集包含 1.09 亿行、17,562 部不同的动漫和 325,772 名不同的用户。文件包含以下列:- user_id: 不可识别的随机生成用户 ID。
- anime_id: MyAnimeList 动漫 ID。(例如:1)
- score: 用户给出的 1 到 10 分的评分。如果用户未评分,则为 0。(例如:10)
- watching_status: 用户动漫列表中的该动漫的状态 ID。(例如:2)
- watched_episodes: 用户观看的集数。(例如:24)
watching_status.csv
描述
animelist.csv
中 “watching_status” 列的所有可能状态。rating_complete.csv
是
animelist.csv
的子集。这个数据集只考虑用户完全观看(watching_status==2)并评分(score!=0)的动漫。这个数据集包含 5,700 万个评分,涉及 16,872 部动漫和 310,059 名用户。文件包含以下列:- user_id: 不可识别的随机生成用户 ID。
- anime_id: 用户评分的 MyAnimeList 动漫 ID。
- rating: 用户给出的评分。
anime.csv
包含每部动漫(共 17,562 部)的常规信息,如类型、统计数据、制作公司等。文件包含以下列:- MAL_ID: MyAnimeList 动漫 ID。(例如:1)
- Name: 动漫全名。(例如:Cowboy Bebop)
- Score: MyAnimeList 数据库中所有用户给出的平均评分。(例如:8.78)
- Genres: 动漫类型的逗号分隔列表。(例如:Action, Adventure, Comedy, Drama, Sci-Fi, Space)
- English name: 动漫的英文全名。(例如:Cowboy Bebop)
- Japanese name: 动漫的日文全名。(例如:カウボーイビバップ)
- Type: 动漫类型,如 TV、电影、OVA 等。(例如:TV)
- Episodes: 动漫的集数。(例如:26)
- Aired: 播出日期。(例如:Apr 3, 1998 to Apr 24, 1999)
- Premiered: 首播季节。(例如:Spring 1998)
- Producers: 制作公司的逗号分隔列表。(例如:Bandai Visual)
- Licensors: 发行商的逗号分隔列表。(例如:Funimation, Bandai Entertainment)
- Studios: 制作公司的逗号分隔列表。(例如:Sunrise)
- Source: 动漫的来源,如漫画、轻小说、书籍等。(例如:Original)
- Duration: 每集的时长。(例如:24 min. per ep.)
- Rating: 年龄分级。(例如:R - 17+ (violence & profanity))
- Ranked: 根据评分的排名。(例如:28)
- Popularity: 根据添加到用户列表的用户数量的排名。(例如:39)
- Members: 动漫的社区成员数量。(例如:1251960)
- Favorites: 将该动漫标为最爱的用户数量。(例如:61,971)
- Watching: 正在观看该动漫的用户数量。(例如:105808)
- Completed: 已完成观看该动漫的用户数量。(例如:718161)
- On-Hold: 将该动漫搁置的用户数量。(例如:71513)
- Dropped: 弃置该动漫的用户数量。(例如:26678)
- Plan to Watch: 计划观看该动漫的用户数量。(例如:329800)
- Score-10: 评分为 10 的用户数量。(例如:229170)
- Score-9: 评分为 9 的用户数量。(例如:182126)
- Score-8: 评分为 8 的用户数量。(例如:131625)
- Score-7: 评分为 7 的用户数量。(例如:62330)
- Score-6: 评分为 6 的用户数量。(例如:20688)
- Score-5: 评分为 5 的用户数量。(例如:8904)
- Score-4: 评分为 4 的用户数量。(例如:3184)
- Score-3: 评分为 3 的用户数量。(例如:1357)
- Score-2: 评分为 2 的用户数量。(例如:741)
- Score-1: 评分为 1 的用户数量。(例如:1580)