{ "cells": [ { "cell_type": "markdown", "id": "a7664899", "metadata": {}, "source": [ "# Bộ dữ liệu MovieLens-1M\n", "\n", "## Giới thiệu\n", "\n", "[Movielens](https://grouplens.org/datasets/movielens/) là một nhóm nghiên cứu cung cấp các bộ dữ liệu cho các bài toán xây dựng hệ thống gợi ý. Các bộ dữ liệu trong tập này bao gồm thông tin đánh giá xếp hạng của người dùng tới các bộ phim. Những thông tin về người dùng hay các bộ phim cũng được cung cấp.\n", "\n", "Trong phần này này, chúng ta sẽ sử dụng bộ dữ liệu [MovieLens-1M](https://grouplens.org/datasets/movielens/1m/) trong các ví dụ. Bộ dữ liệu này bao gồm xấp xỉ 1 triệu bộ `(user, movie, rating)` từ khoảng 3900 bộ phim và 6040 người dùng.\n", "\n", "Trong các phần tiếp theo, khoảng 90% của số đánh giá sẽ được tách ra làm dữ liệu huấn luyện, 10% còn lại được dùng làm dữ liệu đánh giá.\n", "\n", "## Download bộ dữ liệu\n", "Bộ dữ liệu này có thể được download trực tiếp từ trang chủ [Movielens 1M](https://grouplens.org/datasets/movielens/1m/) hoặc sử dụng `tabml.datasets`:" ] }, { "cell_type": "code", "execution_count": 1, "id": "780083e8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['users', 'movies', 'ratings'])" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import tabml.datasets\n", "df_dict = tabml.datasets.download_movielen_1m()\n", "df_dict.keys()" ] }, { "cell_type": "markdown", "id": "89b0fbef", "metadata": {}, "source": [ "Có ba dataframe trong bộ dữ liệu này là `users, movies` và `ratings` lần lượt chứa thông tin của người dùng, bộ phim và các đánh giá.\n", "\n", "\n", "## Khám phá dữ liệu\n", "\n", "### Rating\n", "\n", "Dưới đây là 10 dòng đầu tiên của dataframe rating. Dữ liệu rating bao gồm thông tin về mã người dùng `UserID`, mã phim `MovieID`, đánh giá trong thang điểm 5 và thời điểm đánh giá `Timestamp`." ] }, { "cell_type": "code", "execution_count": 2, "id": "415ffbe3", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
UserIDMovieIDRatingTimestamp
0111935978300760
116613978302109
219143978301968
3134084978300275
4123555978824291
5111973978302268
6112875978302039
7128045978300719
815944978302268
919194978301368
\n", "
" ], "text/plain": [ " UserID MovieID Rating Timestamp\n", "0 1 1193 5 978300760\n", "1 1 661 3 978302109\n", "2 1 914 3 978301968\n", "3 1 3408 4 978300275\n", "4 1 2355 5 978824291\n", "5 1 1197 3 978302268\n", "6 1 1287 5 978302039\n", "7 1 2804 5 978300719\n", "8 1 594 4 978302268\n", "9 1 919 4 978301368" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings = df_dict[\"ratings\"]\n", "ratings.head(10)" ] }, { "cell_type": "markdown", "id": "2be6cdf1", "metadata": {}, "source": [ "Phân phối của các điểm đánh giá cho trong biểu đồ dưới đây cho chúng ta thấy rằng điểm 4 được đánh giá nhiều nhất trong khi các điểm 1 và 2 có ít lượng đánh giá nhất. Điều này có thể được giải thích bằng sự thật là người dùng thường đánh giá khi họ rất thích một bộ phim; khi họ không thực sự thích, họ sẽ ít ra đánh giá hơn." ] }, { "cell_type": "code", "execution_count": 3, "id": "e3541fd0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "filenames": { "image/png": "/home/tiepvu/w/tabml_book/book/_build/jupyter_execute/ch_recommendation_system/ml_1m_5_1.png" }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ratings[\"Rating\"].plot.hist()" ] }, { "cell_type": "markdown", "id": "6ffd2d68", "metadata": {}, "source": [ "Tiếp theo, chúng ta sẽ xem số lượng bộ phim mà mỗi người dùng đánh giá cũng như số lượng đánh giá mà mỗi bộ phim nhận được:" ] }, { "cell_type": "code", "execution_count": 4, "id": "83c3b016", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4169 2314\n", "1680 1850\n", "4277 1743\n", "1941 1595\n", "1181 1521\n", " ... \n", "5725 20\n", "3407 20\n", "1664 20\n", "4419 20\n", "3021 20\n", "Name: UserID, Length: 6040, dtype: int64" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings[\"UserID\"].value_counts()" ] }, { "cell_type": "markdown", "id": "e7de4156", "metadata": {}, "source": [ "Ta thấy rằng người dùng có mã số 4169 đánh giá tới 2314 bộ phim và 20 là số lượng đánh giá ít nhất mà mỗi người dùng đưa ra. Có thể thấy rằng nhóm tác giả của bộ dữ liệu này đã lọc đi các người dùng có ít đánh giá. Sự lý tưởng này khó đạt được trong thực tế vì phần lớn người dùng không đưa ra đánh giá nào. Việc mỗi người dùng đánh giá nhiều bộ phim khiến cho độ chính xác khi gợi ý được cao hơn." ] }, { "cell_type": "code", "execution_count": 5, "id": "283802f1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2858 3428\n", "260 2991\n", "1196 2990\n", "1210 2883\n", "480 2672\n", " ... \n", "3458 1\n", "2226 1\n", "1815 1\n", "398 1\n", "2909 1\n", "Name: MovieID, Length: 3706, dtype: int64" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings[\"MovieID\"].value_counts()" ] }, { "cell_type": "markdown", "id": "1756537e", "metadata": {}, "source": [ "Ở khía cạnh bộ phim, bộ phim có mã số 2858 được đánh giá nhiều nhất với 3428 lần trong khi rất nhiều bộ phim chỉ nhận được một đánh giá." ] }, { "cell_type": "markdown", "id": "e36ba55b", "metadata": {}, "source": [ "### Dữ liệu người dùng\n", "\n", "Đi sâu một chút vào dữ liệu người dùng:" ] }, { "cell_type": "code", "execution_count": 6, "id": "f5636b25", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 6040 entries, 0 to 6039\n", "Data columns (total 5 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 UserID 6040 non-null int64 \n", " 1 Gender 6040 non-null object\n", " 2 Age 6040 non-null int64 \n", " 3 Occupation 6040 non-null int64 \n", " 4 Zip-code 6040 non-null object\n", "dtypes: int64(3), object(2)\n", "memory usage: 236.1+ KB\n" ] } ], "source": [ "users = df_dict[\"users\"]\n", "users.info()" ] }, { "cell_type": "markdown", "id": "48e68e61", "metadata": {}, "source": [ "Như vậy có 6040 người dùng cùng với đầy đủ các thông tin về giới tính, tuổi, nghề nghiệp và Zip-code. Chúng ta sẽ không sử dụng thông tin về Zip-code vì số lượng các giá trị phân biệt là quá lớn. Chúng ta cùng xem nhanh phân bố của các thông tin về giới tính, tuổi và nghề nghiệp." ] }, { "cell_type": "code", "execution_count": 7, "id": "722ce49d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "M 4331\n", "F 1709\n", "Name: Gender, dtype: int64" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "users[\"Gender\"].value_counts()" ] }, { "cell_type": "markdown", "id": "5e764522", "metadata": {}, "source": [ "Có 4331 người dùng là nam và 1709 người dùng là nữ." ] }, { "cell_type": "code", "execution_count": 8, "id": "5825235f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "filenames": { "image/png": "/home/tiepvu/w/tabml_book/book/_build/jupyter_execute/ch_recommendation_system/ml_1m_16_1.png" }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "users[\"Age\"].hist()" ] }, { "cell_type": "markdown", "id": "dd88e13d", "metadata": {}, "source": [ "Phần lớn người dùng có độ tuổi từ 18 đến 34, nhóm dưới 18 tuổi có số người dùng nhỏ nhất.\n", "\n", "Dữ liệu về nghề nghiệp đã được mã hóa thành các số từ 0 đến 20:" ] }, { "cell_type": "code", "execution_count": 9, "id": "67f12503", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "filenames": { "image/png": "/home/tiepvu/w/tabml_book/book/_build/jupyter_execute/ch_recommendation_system/ml_1m_18_0.png" }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib\n", "from matplotlib import pyplot as plt\n", "\n", "\n", "occupation_mapping = {\n", " 0: \"other or not specified\",\n", " 1: \"academic/educator\",\n", " 2: \"artist\",\n", " 3: \"clerical/admin\",\n", " 4: \"college/grad student\",\n", " 5: \"customer service\",\n", " 6: \"doctor/health care\",\n", " 7: \"executive/managerial\",\n", " 8: \"farmer\",\n", " 9: \"homemaker\",\n", " 10: \"K-12 student\",\n", " 11: \"lawyer\",\n", " 12: \"programmer\",\n", " 13: \"retired\",\n", " 14: \"sales/marketing\",\n", " 15: \"scientist\",\n", " 16: \"self-employed\",\n", " 17: \"technician/engineer\",\n", " 18: \"tradesman/craftsman\",\n", " 19: \"unemployed\",\n", " 20: \"writer\",\n", "}\n", "\n", "occupation_id_count = users[\"Occupation\"].value_counts().to_dict()\n", "occupation_count = {\n", " occupation_mapping[id]: count for id, count in occupation_id_count.items()\n", "}\n", "\n", "\n", "matplotlib.rcParams.update({\"font.size\": 14})\n", "plt.figure(figsize=(20, 10))\n", "plt.bar(x=occupation_count.keys(), height=occupation_count.values())\n", "plt.xticks(rotation=90)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "658ed2ae", "metadata": {}, "source": [ "Không có gì bất ngờ, các bạn sinh viên xuất hiện nhiều trong bộ dữ liệu nhất còn các bác nông dân xuất hiện ít nhất." ] }, { "cell_type": "markdown", "id": "d76f0145", "metadata": {}, "source": [ "### Dữ liệu bộ phim" ] }, { "cell_type": "code", "execution_count": 10, "id": "6afc8ef6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 3883 entries, 0 to 3882\n", "Data columns (total 3 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 MovieID 3883 non-null int64 \n", " 1 Title 3883 non-null object\n", " 2 Genres 3883 non-null object\n", "dtypes: int64(1), object(2)\n", "memory usage: 91.1+ KB\n" ] } ], "source": [ "movies = df_dict[\"movies\"]\n", "movies.info()" ] }, { "cell_type": "markdown", "id": "22d184c4", "metadata": {}, "source": [ "Có 3883 bộ phim với đầy đủ thông tin về tiêu đề (`Title`) và các thể loại (`Genres`). Cùng xem một vài dòng đầu của dataframe này:" ] }, { "cell_type": "code", "execution_count": 11, "id": "9e77ffec", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
MovieIDTitleGenres
01Toy Story (1995)Animation|Children's|Comedy
12Jumanji (1995)Adventure|Children's|Fantasy
23Grumpier Old Men (1995)Comedy|Romance
34Waiting to Exhale (1995)Comedy|Drama
45Father of the Bride Part II (1995)Comedy
56Heat (1995)Action|Crime|Thriller
67Sabrina (1995)Comedy|Romance
78Tom and Huck (1995)Adventure|Children's
89Sudden Death (1995)Action
910GoldenEye (1995)Action|Adventure|Thriller
\n", "
" ], "text/plain": [ " MovieID Title Genres\n", "0 1 Toy Story (1995) Animation|Children's|Comedy\n", "1 2 Jumanji (1995) Adventure|Children's|Fantasy\n", "2 3 Grumpier Old Men (1995) Comedy|Romance\n", "3 4 Waiting to Exhale (1995) Comedy|Drama\n", "4 5 Father of the Bride Part II (1995) Comedy\n", "5 6 Heat (1995) Action|Crime|Thriller\n", "6 7 Sabrina (1995) Comedy|Romance\n", "7 8 Tom and Huck (1995) Adventure|Children's\n", "8 9 Sudden Death (1995) Action\n", "9 10 GoldenEye (1995) Action|Adventure|Thriller" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "movies.head(10)" ] }, { "cell_type": "markdown", "id": "f3cb40f9", "metadata": {}, "source": [ "Như vậy, năm sản xuất của bộ phim cũng xuất hiện trong tiêu đề. Thông tin về năm sản xuất cũng hoàn toàn có thể là một đặc trưng tốt cho việc xây dựng mô hình. Ngoài ra, một bộ phim có thể thuộc nhiều thể loại.\n", "\n", "Tiếp theo, chúng ta cùng trả lời hai câu hỏi:\n", "\n", "1. Số lượng thể loại mà mỗi bộ phim thuộc về.\n", "2. Số lượng bộ phim thuộc mỗi thể loại" ] }, { "cell_type": "code", "execution_count": 12, "id": "44e49f74", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1 2025\n", "2 1322\n", "3 421\n", "4 100\n", "5 14\n", "6 1\n", "Name: num_genres, dtype: int64" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "movies[\"num_genres\"] = movies[\"Genres\"].apply(lambda x: len(x.split('|')))\n", "movies[\"num_genres\"].value_counts()" ] }, { "cell_type": "markdown", "id": "750fd5a9", "metadata": {}, "source": [ "Trả lời cho câu hỏi thứ nhất, hầu hết các bộ phim thuộc vào một thể loại. Số lượng thể loại nhiều nhất mà một bộ phim thuộc về là 6 và chỉ có một bộ phim như vậy." ] }, { "cell_type": "code", "execution_count": 13, "id": "3361565e", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "filenames": { "image/png": "/home/tiepvu/w/tabml_book/book/_build/jupyter_execute/ch_recommendation_system/ml_1m_27_0.png" }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from collections import defaultdict\n", "\n", "genres_counter = defaultdict(int)\n", "for genre_str in movies[\"Genres\"]:\n", " genres = genre_str.split('|')\n", " for genre in genres:\n", " genres_counter[genre] += 1\n", " \n", "plt.figure(figsize=(20, 10))\n", "plt.bar(x=genres_counter.keys(), height=genres_counter.values())\n", "plt.xticks(rotation=90)\n", "plt.show();" ] }, { "cell_type": "markdown", "id": "e1c53a4a", "metadata": {}, "source": [ "Trả lời cho câu hỏi thứ hai, ta thấy rằng thể loại `Drama` và `Comedy` có nhiều bộ phim nhất. Các thể loại `Animation, Fantasy, Documentary, War, Mystery, Film-Noir` và `Western` có ít bộ phim nhất với khoảng từ 50 đến 100 bộ phim.\n", "\n", "--\n", "Trên đây là một vài đánh giá sơ khởi về dữ liệu. Bộ dữ liệu này tương đối \"sạch\" với đẩy đủ thông tin về người dùng cũng như sản phẩm, dữ liệu có bị lệch nhưng không đáng kể. Chúng ta sử dụng bộ dữ liệu này cho mục đích minh họa các thuật toán. Với dữ liệu chưa sạch, ta cần rất nhiều bước làm sạch và xây dựng đặc trưng trước khi có thể xây dựng mô hình." ] } ], "metadata": { "jupytext": { "text_representation": { "extension": ".md", "format_name": "myst", "format_version": 0.13, "jupytext_version": "1.10.3" } }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" }, "source_map": [ 12, 27, 31, 42, 45, 49, 51, 55, 57, 61, 63, 67, 73, 76, 80, 82, 86, 88, 94, 134, 138, 142, 145, 149, 151, 160, 163, 167, 180 ] }, "nbformat": 4, "nbformat_minor": 5 }