برنامه نویسی

اولین پروژه علم داده خود را از داده های Netflix خود بسازید

آیا در علم داده جدید هستید؟ آیا هنوز در تلاش برای راه اندازی اولین پروژه خود هستید؟ اگر این شما هستید، در جای مناسبی هستید.

در این مقاله، ما با هم یک پروژه علم داده می سازیم، یا باید بگویم که شما اولین پروژه علم داده خود را با استفاده از داده های Netflix خودتان خواهید ساخت. به‌دست آوردن مجموعه داده مناسب برای یک پروژه علم داده همیشه آسان نیست، بنابراین چرا وقتی می‌توانید به راحتی داده‌های خود را از Netflix دریافت کنید و آن‌ها را به یک مجموعه داده تبدیل کنید، این استرس را تحمل کنید، زیرا Netflix به شما اجازه می‌دهد تاریخچه کامل تماشای خود را دانلود کنید. می تواند در واقع برای ساخت پروژه های علمی داده جالب استفاده شود.

ما از تعدادی کتابخانه پایتون استفاده خواهیم کرد (پانداها و Matplotlib) و در پایان این مقاله باید پروژه ای داشته باشید که بتوان آن را به مجموعه خود اضافه کرد.

پیش نیازها

  • دانش پایه از پایتون، پانداها و Matplotlib.
  • پانداها و Matplotlib روی رایانه شما نصب شده اند اما اگر قبلاً آنها را نصب نکرده اید pip install pandas & pip install matplotlib برای نصب آنها
  • یک حساب نتفلیکس

🎯 داده های خام را دریافت کنید

برای اینکه بتوانیم این پروژه را بسازیم، به داده هایی نیاز داریم. با دنبال کردن این مراحل می توانیم داده های خام را دریافت کنیم:

  • وارد حساب نتفلیکس خود شوید.
  • به صفحه دریافت اطلاعات من بروید و اطلاعات خود را درخواست کنید.
  • یک ایمیل تایید برای شما ارسال می شود، حتما آن را تایید کنید.
  • یک ایمیل برای شما ارسال می شود که دانلود شما آماده است.
    توجه داشته باشید: ممکن است کمی طول بکشد.
  • پس از دانلود فایل فشرده، باید این دایرکتوری ها را ببینید.

  • کلیک کنید روی CONTENT_INTERACTION پوشه را باز کنید و ViewingActivity.csv فایل، این شامل تاریخچه کامل تماشای شما است.

🎯 بیایید داده ها را بررسی کنیم

ما از دانش خود در مورد پانداها برای بررسی داده ها و دیدن آنچه در اختیار داریم استفاده خواهیم کرد. اما ابتدا بیایید آن را وارد کنیم ViewingActivity.csv را در نوت بوک ما قرار دهید و آن را به عنوان یک دیتافریم پاندا بخوانید.

import pandas as pd
df = pd.read_csv('ViewingActivity.csv')
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بیایید به اولین مجموعه ردیف هایی که داریم نگاهی بیندازیم.

df.head()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بیایید تعداد سطرها و ستون هایی را که با آنها کار می کنیم ببینیم.

df.shape
#output: (9273, 10) 
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

از مجموعه داده، 10 ستون داریم.

  • نام پروفایل– این نمایه افرادی را که یک حساب نتفلیکس را به اشتراک می گذارند نشان می دهد.
  • عنوان – این ستون شامل نام سریال هایی است که یک کاربر خاص در حال تماشای آن است.
  • زمان و مدت شروع– این به ما نشان می دهد که کاربر در نمایه چه زمانی و برای چه مدت فیلمی را تماشا کرده است.
  • نوع وسیله– این شامل دستگاه های مختلفی است که برای تماشای این فیلم ها استفاده می شود.
  • کشور– مکان (کشور) که نمایه خاص از آنجا تماشا می کند.

می توانید ستون های باقی مانده را بررسی کنید.

قبل از اینکه بتوانیم با جزئیات بیشتر با داده ها کار کنیم، باید انواع داده های اساسی را درک کنیم.

df.dtypes
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

از نتیجه، می بینیم که تمام ستون ها داده ها را در قسمت ذخیره می کنند هدف – شی نوع داده.

🎯 دریافت تعداد کاربران در حساب نتفلیکس

ما می‌توانیم تعداد افرادی را که حساب نتفلیکس یکسانی را با آنها به اشتراک می‌گذاریم بدست آوریم، تنها کاری که باید انجام دهیم این است که کاربران منحصربه‌فرد را در این سایت پیدا کنیم. نام پروفایل ستون

df["Profile Name"].unique()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

🎯 دریافت تعداد دستگاه هایی که در حساب نتفلیکس تماشا می کنند

به همان ترتیبی که تعداد کاربران حساب نتفلیکس را پیدا کردیم، همچنین می‌توانیم تعداد دستگاه‌های منحصربه‌فردی را که در حال تماشای فیلم در حساب هستند، پیدا کنیم.

df["Device Type"].unique()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

🎯 دریافت نمایه با بیشترین بازدید و فعالیت

ما می توانیم بفهمیم که کدام یک از کاربران در بین کل کاربران حساب نتفلیکس بیشترین تعامل و تماشا را دارند. ما استفاده خواهیم کرد DataFrame.value_counts() روشی برای شمارش تعداد رخدادهای ردیف

df['Profile Name'].value_counts()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با استفاده از Matplotlib به راحتی می توانیم این را تجسم کنیم.

%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
df['Profile Name'].value_counts().plot(kind='bar')
plt.show()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خروجی به صورت زیر است:

نمایه ای با بیشترین بازدید و فعالیت.

🎯 دریافت نمایه با بیشترین زمان تماشا

برای اینکه کاربر بیشترین فیلم را ببیند، باید چندین مرحله را طی کنیم.

اولین کاری که باید انجام داد تغییر شکل است زمان شروع و مدت زمان ستون ها به a زمان قرارقالب

df['Start Time'] = pd.to_datetime(df['Start Time'], utc=True)
df['Duration'] = pd.to_timedelta(df['Duration'])
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نکته بعدی این است که مدت زمان کلی مشاهده برای همه پروفایل ها را بررسی کنید.

df['Duration'].sum()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بیایید مدت زمان مشاهده هر نمایه را پیدا کنیم.

df.loc[df['Profile Name']=='Add your profile name','Duration'].sum()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

از نتیجه، متوجه خواهیم شد که همان ترتیب پروفایلی که بیشترین فعالیت را دارد داریم. بنابراین این بدان معناست که پروفایلی که بیشترین فعالیت را دارد زمان تماشای بالاتری نیز دارد.

تجسم به این راحتی نیست، زیرا الف از زمان بندی شده چیزی نیست که بتوان با استفاده از آن رسم کرد Matplotlib. بنابراین باید یک Transformation دیگر را با روش astype NumPy انجام دهیم.

df.loc[df['Profile Name']=='Your profile name','Duration'].astype('timedelta64[s]').sum()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بنابراین اکنون می‌توانیم یک فرهنگ لغت ایجاد کنیم تا زمان کلی تماشای هر کاربر را در چند ثانیه ذخیره کند.

watchTime = {}
watchTime.update({"First Profile": df.loc[df['Profile Name']=='First Profile','Duration'].astype('timedelta64[s]').sum()})
watchTime.update({"Second Profile": df.loc[df['Profile Name']=='Second Profile','Duration'].astype('timedelta64[s]').sum()})
watchTime.update({"Third Profile": df.loc[df['Profile Name']=='Third Profile','Duration'].astype('timedelta64[s]').sum()})
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

دیکشنری به شکل زیر است:

{'First Profile': 4138000.0, 'Second Profile': 1411573.0, 'Third Profile': 2050125.0,}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بنابراین اکنون می توانیم نمودار میله ای را رسم کنیم.

%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
plt.bar(*zip(*watchTime.items()))
plt.show()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نمایه ای با بیشترین زمان تماشا.

🎯 استفاده از دستگاه ها توسط کاربر و اینکه کدام دستگاه بیشتر استفاده می شود

ابتدا نگاهی به آن خواهیم داشت نوع وسیله ستون و دستگاه های مورد استفاده هر کاربر را مشاهده کنید، آنها در واقع بسیار هستند (برخی حتی فقط یک بار استفاده می شدند در حالی که برخی مکرر استفاده می شدند).

df['Device Type'].value_counts()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ما دوباره می توانیم به سرعت این را در نمودار میله ای رسم کنیم.

df['Device Type'].value_counts().plot(kind='bar')
plt.show()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

دستگاه بیشترین استفاده را داشت

اکنون می‌توانیم آن‌ها را بر اساس هر کاربر فیلتر کنیم (فقط در صورتی که بخواهید بدانید از چند دستگاه استفاده کرده‌اید)

df_device = df.loc[df['Profile Name'] == 'Your profile name']
df_device['Device Type'].value_counts()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ما نام دستگاه see و تعداد دفعاتی که توسط آن کاربر خاص استفاده شده است را خواهیم دید. بنابراین اکنون می توانیم نمودار میله ای را رسم کنیم.

df_device['Device Type'].value_counts().plot(kind='bar')
plt.show()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استفاده از دستگاه ها توسط کاربر

نتیجه

در این مقاله توانستیم یک پروژه ساده علم داده را پوشش دهیم، داده های خام را از نتفلیکس دانلود کنیم، داده ها را تحلیل و تجسم کنیم. همانطور که همچنین می بینید که ما به تعدادی از سوالات با استفاده از مجموعه داده پاسخ دادیم و به من اعتماد کنید سوالات بیشتری هنوز قابل بررسی است. من کنجکاو هستم که بدانم چه ایده های پروژه ای از این مقاله دریافت می کنید و چه چیزی می سازید.

در ضمن، چطور به این سوالات با مجموعه داده پاسخ دهید:

  • محبوب ترین/تعداد دیده شده عنوان.
  • فیلمی که همه کاربران آن را تماشا کرده اند.
  • بر اساس سابقه تماشای مشترک سایر کاربران، فیلمی را برای یک کاربر توصیه کنید.

بیایید وصل شویم توییتر و در لینکدین شما همچنین می توانید در کانال یوتیوب من مشترک شوید.

کد نویسی مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا