اولین پروژه علم داده خود را از داده های 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()
نتیجه
در این مقاله توانستیم یک پروژه ساده علم داده را پوشش دهیم، داده های خام را از نتفلیکس دانلود کنیم، داده ها را تحلیل و تجسم کنیم. همانطور که همچنین می بینید که ما به تعدادی از سوالات با استفاده از مجموعه داده پاسخ دادیم و به من اعتماد کنید سوالات بیشتری هنوز قابل بررسی است. من کنجکاو هستم که بدانم چه ایده های پروژه ای از این مقاله دریافت می کنید و چه چیزی می سازید.
در ضمن، چطور به این سوالات با مجموعه داده پاسخ دهید:
- محبوب ترین/تعداد دیده شده عنوان.
- فیلمی که همه کاربران آن را تماشا کرده اند.
- بر اساس سابقه تماشای مشترک سایر کاربران، فیلمی را برای یک کاربر توصیه کنید.
بیایید وصل شویم توییتر و در لینکدین شما همچنین می توانید در کانال یوتیوب من مشترک شوید.
کد نویسی مبارک!