# چکیده
مسئله مورد مطالعه این پروژه این است که با استفاده از اطلاعات فیلمها و امتیازاتی که در مجموعه داده IMDb به هر فیلم داده شده است، از طریق روشهای یادگیری ماشین، امتیاز فیلم را پیشبینی نماییم. نتایج نشان می دهد روشها و ویژگی های داده ای که در این پروژه در نظر گرفته شده از تحقیقات پیشین بهتر عمل کرده و می توان با دقت بالاتری امتیاز فیلم ها را پیش بینی کرد .
# مقدمه
درهرهفته تعداد بسیار زیادی فیلم منتشر می شود که در ژانرهای متفاوتی قرار دارند؛ مانند انیمیشن ، کمدی ، رمانتیک ،وحشتناک ،تخیلی و غیره که به یکی از اساسی ترین مو ضوع های سرگرم کننده مردم تبدیل شده اند. با این وجود انتخاب فیلم مناسب و جذاب از میان آن ها کار بسیار دشوار و زمان بری است ، در این میان بسیاری از پلتفرم های آنلاین وجود دارد ;از جمله : RottenTamatoes، Metacritic و پایگاه داده فیلم اینترنتی (IMDb) که اطلاعاتی در مورد فیلم ها مانند بازیگران، کارگردانان، بودجه و هم چنین رتبه بندی های کاربران و نظرات آنها ارائه می دهد و اطلاعات منصفانه و دقیقی درباره ی فیلم در اختیار مخاطبان قرار می دهد.
در حال حاضر، بزرگترین و بهترین پایگاه داده فیلم اینترنتی IMDb می باشد. این سایت دربرگیرنده ی اطلاعاتی در مورد فیلم ها وسریال های تلویزیونی و سینمایی از جمله سوابق مالی،بیوگرافی،امتیاز کاربران ، بازیگران، کارگردانان، عوامل تولید، بررسی ها و... می باشد. بیش از 60 میلیون کاربر ثبت شده دارد و در حدود 3.4 میلیون عنوان فیلم و سریال در آن قرار گرفته است.
براساس مطالعات انجام شده ،صنعت فیلم سازی در آمریکا که سالانه بیش از 10 میلیارد دلار درآمد از فروش فیلم به بار می آورد، تاثیر بالایی در اقتصاد جامعه داشته است.همین موضوع ،مسئله پیش بینی امتیاز فیلم را پر اهمیت تر جلوه می دهد.تحقیقات زیادی در مورد پیش بینی امتیاز فیلم انجام گرفته است. اکثریت آن ها براساس رتبه بندی کاربران است که در برخی از آن ها برای پیش بینی از رسانه های اجتماعی مختلف استفاده می شود (مانند YouTube، Twitter و....). با این حال، استفاده کمتری از شاخص های فیلم مانند کارگردان وبازیگران، تاریخ و غیره برای پیش بینی فیلم ها شده است. مهمترین منبع اطلاعاتی برای پیش بینی امتیاز فیلم داده های موجود در اینترنت است.
# کارهای مرتبط
تاکنون پژوهش های وسیعی بر روی موضوع پیش بینی امتیاز فیلم انجام شده است.دراین رابطه ،محققان زیادی فرایند پیش بینی امتیاز فیلم را براساس روزنامه ها ومقالات و شبکه های اجتماعی انجام داده اند ، اما تعداد اندکی از آن ها، مطالعات خود را براساس ویژگی های خود فیلم انجام داده اند.
در مقاله[1] این تحقیق به منظور پیش بینی آینده فیلم ها از نظر کسب و کار با استفاده از داده ها در رسانه های اجتماعی و بهره گیری از تحلیل احساسات انجام شده است.یک کار دیگر مشابه درمقاله[2] ارائه شده است که در آن رسانه های اجتماعی از جمله Twitter و نظرات YouTubeبرای همین هدف مورد استفاده قرار می گیرند. [3] با استفاده از داده های IMDb و داده های boxofficemojo و ضریب همبستگی به عنوان یک واحد اندازه گیری، دو مجموعه داده از فیلم های پخش شده و فیلم های پس از انتشار و آزمایش های کاربردی بر روی آنها ایجاد کردند . [4] با استفاده از داده های IMDb، rotten tomatoes و داده های ویکی پدیا در مورد فیلم ها و استفاده از الگوریتم های یادگیری ماشین مانند رگرسیون خطی، رگرسیون SVM و رگرسیون منطقی ،امتیاز فیلم را پیش بینی می کند.
# آزمایش ها
در این بخش به آزمایشی که در مقاله ی [6] آورده شده است می پردازیم و آن را بررسی می کنیم. روش اصلی انجام آزمایش در شکل 1 به نمایش گذاشته
شده است :
1. استخراج داده
2. آماده سازی داده ها
3. انتخاب ویژگی
4. کلاس بندی
![](https://boute.s3.amazonaws.com/239-shape1.png)
## **استخراج داده**
مجموعه داده مورد استفاده از پایگاه داده فیلم اینترنتی (IMDb) جمع آوری شده است. ما فیلم های از سال 2004 تا 2014 را مورد استفاده قرار دادیم . فقط فیلم هایی انتخاب شدند که در ویکی پدیا صفحات سال آن ها ذکر شده بود و نیز فیلم های انگلیسی که در ایالات متحده منتشر شده اند. فیلم های دیگر را حذف کردیم . سپس باpython. داده مر بوطه را استخراج کرده و مجموعه ما حاوی 2000 داده شد .
## **آماده سازی داده ها**
داده های استخراج شده از IMDb باید به داده های عددی (Numeric) تبدیل شوند تا بتوان آن را برای اهداف تجزیه و تحلیل و طبقه بندی مورد استفاده قرار داد.
### **امتیاز فیلم (Rating )**
هر فیلم در IMDb یک امتیاز از 0 تا 10 دارد. هر کاربر می تواند به فیلم ها رای دهد و میانگین رای گیری امتیاز فیلم است. ما امتیاز فیلم(rating) را برای تجزیه و تحلیل وکلاس بندی استفاده می کنیم و این **برچسب** (label) کلاس برای پیش بینی خواهد بود .
### **امتیاز MPAA**
انجمن فیلم آمریکا (MPAA) یک سازمان است که رتبه بندی فیلم ها را تعیین می کند. این رتبه بندی ها نشان دهنده خشونت و زبان در یک فیلم است. پنج نشان برای هر یک از فیلم ها به طور عمده وجود دارد: R، PG، PG13، G و NR. ما امتیاز MPAA را برای یک فیلم با پنج مقدار باینری نشان می دهیم.
### **ژانر**
ژانر نوع محتوای موجود در یک فیلم را نشان می دهد. یک فیلم می تواند یک ژانر واحد داشته باشد؛ برای مثال Fish Tank فیلم منتشر شده در سال 2009 دارای ژانر درام است و یا شامل ژانر های متعدد باشد؛ مانند فیلم Exodus: Gods and Kings منتشر شده در سال 2014 دارای 3 ژانر است که شامل اکشن، ماجراجویی و بیوگرافی است. مجموعه داده های ما شامل ژانرهای زیر برای هر فیلم است که عبارتند از:اکشن، ماجراجویی، هیجان انگیز، بیوگرافی، جرم و جنایی، درام، ترسناک، کمدی،فانتزی،
انیمیشن، رمز و راز، موسیقی، جنگ، مستند، عاشقانه، علمی تخیلی، غرب،خانواده، ورزش و کوتاه. برای نشان دادن ژانر برای هر یک از فیلم ها، ما 20 متغیر باینری را به هر یک از آن ها اختصاص دادیم .
### **جوایز**
جوایز اسکار و جوایز طلایی معتبرترین جایزه فیلم ها هستند. بسیاری از فیلم ها برنده جایزه می شوند و بسیاری از آنها نامزد دریافت می شوند. حتی نامزد شدن، دستاورد بزرگی است. ما 4 ارزش باینری را برای نشان دادن جوایز برای برنده و نامزدی اسکار و برنده و نامزد جایزه طلایی اختصاص داده ایم.
### **تعداد نمایش ها**
هنگامی که یک فیلم منتشر شد، آن در سینماها به اکران در می آید. قبل از انتشار یک فیلم قبلا تصمیم گرفته شده است که به چه تعداد دفعات مورد نمایش قرار می گیرد ما از این خصوصیت برای مجموعه داده های مان استفاده کرده ایم .
### **میزان فروش هفته اول**
درآمد حاصل از فیلم در بیشتر هفته ها محاسبه می شود. درآمد تولید شده توسط یک فیلم در هفته اول انتشار آن به عنوان نام تجاری و از ویژگی های فیلم در هفته آخر می باشد.
### **بودجه فیلم**
بودجه مقدار منابعی است که در ساخت یک فیلم استفاده می شود. این مقدار، کل پولی است که درطول ساخت فیلم استفاده می شود. بودجه می تواند از چند هزار دلار تا چند میلیون دلار باشد. بودجه یک ویژگی پیوسته است.
### **تعداد آرا**
کاربر می تواند به سایت IMDB وارد شود و فیلم ها را بررسی کند . هر کاربر همچنین می تواند فیلم را در مقیاس بین 0تا 10 امتیاز دهی کند . برای هر فیلم، تعداد آرا نیز موجود است که آن را می توان به عنوان یک ویژگی برای پیش بینی امتیاز فیلم در نظر گرفت .
## **کلاس بندی**
تعداد بسیار زیادی ابزارهای داده کاوی موجود است. ما برای آزمایش از ابزار WEKA استفاده کرده ایم. WEKA برای داده کاوی با مجموعه ای از الگوریتم های یادگیری ماشین مناسب است و می تواند طبقه بندی، پیش پردازش داده ها، خوشه بندی، رگرسیون و ... را انجام دهد. ما از Logistic regression و Simple Logistic وNaive Bayes استفاده کردیم و پس از اینکه مدل خود را ساختیم . هر یک از نتایج را با 10-fold cross validation مورد صحت قرار دادیم .
# نتایج
[6]نتایج simple logistic و logistic regression و Naive Bayes به ترتیب 84.34٪ و 84.15٪و79% است. ما همچنین در برخی از طبقه بندی کننده های دیگر(classifiers)، مانند شبکه عصبی را اجرا کردیم ولی نتیجه مطلوبی به دست نیاوردیم . با توجه به این که در مقاله [5] دقت 39% برای ماشین بردار پشتیبان و دقت 42.2% برای رگرسیون منطقی به دست آمده است ، این آزمایش نتیجه بسیار خوبی را در مقایسه با آن نشان داده است .
![](https://boute.s3.amazonaws.com/239-T1.PNG)
# کارهای آینده
1- در این آزمایش برای پیش بینی امتیاز فیلم نزدیک به 7 ویژگی استفاده گردیده است که می توان با کاهش بعد به وسیله PCA ویا الگوریتم انتخاب ویژگی نتایج آزمایش را بهبود داد .
2- برای به دست آوردن نتایج بهتر شاید بتوان از روش های دیگر یادگیری ماشین از جمله ماشین بردار پشتیبان (SVM)و یا ماشین بردار پشتیبان دوقلو برای بهبود یا افزایش سرعت پاسخگویی بهره برد .
3- با توجه به اینکه هنوز پیاده سازی نهایی صورت نگرفته است امکان دارد به جای ویژگی های بالا از ویژگی های دیگری مثل تاریخ انتشار و محبوبیت بهره ببریم .همچنین ممکن است از روش های دیگر برای حل این موضوع و پیاده سازی آن استفاده گردد.
# مراجع
+ [1] Sitaram Asur, Bernardo A.Huberman “Predicting the Future With Social Media”, Hp Labs
+ [2] Mestya´n M, Yasseri T, Kerte´sz J (2013): “Early Prediction of Movie Box Office Success Based on WikipediaActivityBigData”.PLoSONE8(8): e71226.doi:10.1371/journal.pone.0071226
+ [3] Khalid Ibnal Asad , Tanvir Ahmed , Md. Saiedur Rahman: “Movie Popularity Classification based on Inherent
Movie Attributes using C4.5,PART and Correlation Coefficient”, IEEE/OSA/IAPR International Conference on Infonnatics, Electronics & Vision, Pages 747 - 752
+ [4] Nithin VR, Pranav M,Sarath Babu PB, Lijiya “A Predicting movie success based on IMDB data” International journal of data mining and techniques
+ [5] Predicting Movie Success Based on IMDB Data1Nithin VR, 2Pranav M, 3Sarath Babu PB, 4Lijiya A International
Journal of Data Mining Techniques and Applications , Volume: 03, June 2014, Pages: 365-368
+ [6] Prediction of Movies popularity Using Machine Learning Techniques,Muhammad Hassan Latif, Hammad Afzal, IJCSNS International Journal of Computer Science and Network Security, VOL.16 No.8, August 2016مسئله مورد مطالعه پروژه این است که با استفاده از اطلاعات فیلمها و امتیازاتی که در مجموعه داده IMDb به هر فیلم داده شده است، از طریق روشهای
یادگیری ماشین، امتیاز فیلم را پیشبینی نماییم. نتایج نشان می دهد روش ها و ویژگی های داده ای که در این پروژه در نظر گرفته شده از تحقیقات پیشین بهتر
عمل کرده و می توان با دقت بالاتری امتیاز فیلم ها را پیش بینی کرد .
# مقدمه![](https://boute.s3.amazonaws.com/239-thJ1UB5VS2.jpg)
هرهفته تعداد بسیار زیادی فیلم منتشر می شود که در ژانرهای متفاوتی قرار می گیرند؛ مانند انیمیشن،کمدی،رمانتیک،وحشتناک ،تخیلی و غیره که به یکی از اساسی ترین مو ضوع های سرگرم کننده مردم تبدیل شده اند. بنابراین انتخاب فیلم مناسب و جذاب از میان آن ها کار بسیار دشوار و زمان بری است. در این میان پلتفرم های آنلاین بسیاری وجود دارد؛از جمله:RottenTamatoes، Metacritic و پایگاه داده فیلم اینترنتی IMDb که اطلاعات منصفانه و دقیقی در مورد فیلم مانند بازیگران،کارگردانان،بودجه و امتیاز دهی کاربران و نظرات آنها را در اختیار مخاطبان قرار می دهد.
در حال حاضر، بهترین و معتبرترین پایگاه داده فیلم اینترنتی،IMDb می باشد. این سایت شامل اطلاعاتی در مورد فیلم و سریال های تلویزیونی و سینمایی مثل سوابق مالی،بیوگرافی،امتیاز کاربران، بازیگران،کارگردانان،عوامل تولید،بررسی ها و ... می باشد.در حدود 3.4 میلیون عنوان فیلم و سریال در آن قرار گرفته است.این پایگاه فیلم بیشتر از 60 میلیون کاربر ثبت شده دارد.
براساس مطالعات انجام شده،صنعت فیلم سازی در آمریکا که سالانه بیش از 10 میلیارد دلار درآمد از فروش فیلم به دست می آورد، تاثیر بالایی را در اقتصاد این کشور به جا گذاشته است.همین موضوع ،مسئله پیش بینی امتیاز فیلم را پر اهمیت تر جلوه می دهد.تحقیقات زیادی در رابطه با پیش بینی امتیاز فیلم انجام گرفته است که اکثریت آن ها برمبنای رتبه دهی کاربران است .همچنین در برخی از آن ها برای پیش بینی از رسانه های اجتماعی مختلف استفاده می شود؛مانند:
یوتیوب،توییتر و غیره.با این حال،استفاده کمتری از شاخص های فیلم (مثل کارگردان،بازیگران و تاریخ) شده است.اما مهم ترین منبع اطلاعاتی برای پیش بینی، داده های موجود در اینترنت است.
# کارهای مرتبط
تاکنون پژوهش های وسیعی بر روی موضوع پیش بینی امتیاز فیلم انجام شده است.همان طور که گفتیم،اکثر محققان این فرایند را برپایه ی روزنامه ها،مقالات و شبکه های اجتماعی بررسی کرده اند.اما برخی از آن ها،مطالعات خود را براساس ویژگی های فیلم انجام داده اند.
در مقاله [1] این تحقیق به منظور پیش بینی آینده فیلم ها از نظر میزان کسب و کار با استفاده از داده ها در رسانه های اجتماعی و بهره گیری از تحلیل احساسات انجام شده است.یک کار مشابه دیگر درمقاله [2] ارائه شده است که در آن از رسانه های اجتماعی مانند توییتر و نظرات یوتیوب برای دست یابی به هدف قبلی به کار می رود.[3] با استفاده از داده های IMDb و داده های boxofficemojo و ضریب همبستگی به عنوان یک واحد اندازه گیری،دو مجموعه داده از فیلم های منتشر شده و فیلم های پس از انتشار و آزمایش های کاربردی بر روی آن ها ایجاد کرده است.[4] با استفاده از داده های IMDb،RottenTamatoes و ویکیپدیا در مورد فیلم ها و بهره گیری از الگوریتم های یادگیری ماشین مانند رگرسیون خطی، رگرسیون SVM و رگرسیون منطقی،امتیاز فیلم را پیش بینی خواهد شد.
آزمایشی در مقاله ی [5] انجام گرفته است که رویکرد آن،متناسب با چیزی است که ما به دنبال آن می گردیم. روش اصلی انجام آزمایش در شکل1 به نمایش گذاشته شده است :
1. استخراج داده
2. آماده سازی داده ها
3. انتخاب ویژگی
4. کلاس بندی
![شکل1](https://boute.s3.amazonaws.com/239-imdb.png)
## **استخراج داده**
مجموعه داده مورد استفاده از پایگاه داده فیلم اینترنتی (IMDb) جمع آوری شده است.فیلم های از سال 2004 تا 2014 بررسی شده اند. تنها فیلم هایی انتخاب شده اند که در ویکی پدیا صفحات سال آن ها ذکر شده بود و نیز فیلم های انگلیسی که در ایالات متحده منتشر شده اند. فیلم های دیگر حذف شده است.سپس باpython. داده مر بوطه را استخراج کرده و مجموعه حاوی 2000 داده شد.
## **آماده سازی داده ها**
داده های استخراج شده از IMDb باید به داده های عددی (Numeric) تبدیل می شدند تا بتوان برای تجزیه و تحلیل و طبقه بندی مورد استفاده قرار می گرفت.در زیر تعدادی از آن ها بیان شده است.
### **امتیاز فیلم (Rating )**
هر فیلم در IMDb یک امتیاز از 0 تا 10 دارد. هر کاربر می تواند به فیلم ها رای دهد و میانگین رای گیری همان امتیاز فیلم است. ما امتیاز فیلم(rating) را برای تجزیه و تحلیل وکلاس بندی استفاده می کنیم و این **برچسب** (label) کلاس برای پیش بینی خواهد بود.
### **امتیاز MPAA**
انجمن فیلم آمریکا (MPAA) سازمانی است که رتبه بندی فیلم ها را تعیین می کند که نشان دهنده خشونت و زبان در یک فیلم می باشد. پنج نشان برای هر یک از فیلم ها به طور عمده وجود دارد: R، PG، PG13، G و NR.امتیاز MPAA را برای هر فیلم با پنج مقدار باینری نشان داده است.
### **ژانر**
ژانر نوع محتوای موجود در یک فیلم را نشان می دهد. یک فیلم می تواند یک ژانر واحد داشته باشد؛ برای مثال Fish Tank فیلم منتشر شده در سال 2009 دارای ژانر درام است و یا شامل ژانر های متعدد باشد؛ مانند فیلم Exodus: Gods and Kings منتشر شده در سال 2014 دارای 3 ژانر است که شامل اکشن، ماجراجویی و بیوگرافی است. مجموعه داده ها شامل ژانرهای زیر برای هر فیلم است که عبارتند از:اکشن، ماجراجویی، هیجان انگیز، بیوگرافی، جرم و جنایی، درام، ترسناک، کمدی،فانتزی،انیمیشن، رمز و راز، موسیقی، جنگ، مستند، عاشقانه، علمی تخیلی، غرب،خانواده، ورزش و کوتاه. برای نشان دادن ژانر برای هر یک از فیلم ها،20 متغیر باینری را به هر یک از آن ها اختصاص داده است.
### **جوایز**
اسکار و طلایی جزء معتبرترین جوایز فیلم ها هستند. بسیاری از فیلم ها برنده جایزه و تعدادی نامزد دریافت آن می شوند. حتی نامزد شدن، دستاورد بزرگی است.4 ارزش باینری برای نمایش جوایز برای برنده شدن و نامزدی در اسکار و طلایی اختصاص داده است.
### **تعداد نمایش ها**
هنگامی که یک فیلم منتشرمی شود،در سینماها به اکران در می آید. قبل از انتشار یک فیلم تصمیم گرفته شده است که به چه تعداد دفعات مورد نمایش قرار
می گیرد.از این خصوصیت در مجموعه داده ها استفاده کرده است.
### **میزان فروش هفته اول**
درآمد حاصل از فیلم در اکثر هفته ها ارزیابی می شود. درآمد تولید شده توسط یک فیلم در هفته اول انتشار آن به عنوان نام تجاری و از ویژگی های فیلم در
هفته آخر می باشد.
### **بودجه فیلم**
بودجه،مقدار منابعی است که در ساخت یک فیلم استفاده می شود. این مقدار،کل پولی است که درطول ساخت فیلم هزینه می شود. بودجه می تواند از چند هزار دلار تا چند میلیون دلار را دربرگیرد. بودجه یک ویژگی پیوسته است.
### **تعداد آرا**
کاربر می تواند به سایت IMDB وارد شود و فیلم ها را نقد و بررسی کند.هم چنین می تواند فیلم را در بازه بین 0 تا 10 امتیاز دهی کند . برای هر فیلم، تعداد آرا نیز موجود است که آن را می توان به عنوان یک ویژگی برای پیش بینی امتیاز فیلم در نظر گرفت .
## **کلاس بندی**
تعداد بسیار زیادی ابزار داده کاوی وجود دارد. در این مقاله از ابزار WEKA استفاده کرده است.WEKA برای داده کاوی با مجموعه ای از الگوریتم های یادگیری ماشین مناسب است و می تواند طبقه بندی، پیش پردازش داده ها، خوشه بندی و ...را انجام دهد.در این مقاله ،از الگوریتم هایLogistic regression، وNaive Bayes بهره گرفته است.سپس هر یک از نتایج را با 10-fold cross validation مورد صحت قرار داده است.
نتایج simple logistic و logistic regression و Naive Bayes به ترتیب 84.34٪ و 84.15٪و79% شده است.نیز در برخی از طبقه بندی کننده های دیگر(classifiers)، مانند شبکه عصبی اجرا شده،اما هدف مورد نظر حاصل نشده است.با توجه به این که در مقاله [4] دقت 39% برای ماشین بردار پشتیبان و دقت 42.2% برای رگرسیون منطقی به دست آمده است،این آزمایش،نتیجه بسیار خوبی را در مقایسه با آن نشان داده است.
در آزمایشی که در مقاله [5]مطرح شد،برای پیش بینی امتیاز فیلم،نزدیک به 7 ویژگی استفاده شده است که می توان با کاهش بعد به وسیله PCA ویا الگوریتم انتخاب ویژگی به نتایج بهتری دست یافت.
برای به دست آوردن نتایج بهتر شاید بتوان از روش های دیگر یادگیری ماشین از جمله ماشین بردار پشتیبان (SVM)و یا ماشین بردار پشتیبان دوقلو برای بهبود یا افزایش سرعت پاسخگویی بهره برد.
# آزمایش ها
در بخش کارهای مرتبط از الگوریتم ها و روش های مختلفی در مقالات متفاوت برای پیاده سازی بهره گرفته شده است.اما با توجه به پژوهش هایی که در رابطه با موضوع پیش بینی فیلم انجام 'داده ایم ،رویکردی که برای این پروژه تعبیه شده است،استفاده از الگوریتم SVM (Support Vector Machines) یا همان ماشین بردار پشتیبان است.
کار الگوریتم ماشین بردار پشتیبان،طبقه بندی یا کلاس بندی (classification)می باشد.در این آزمایش،خروجی ها که در واقع همان امتیاز فیلم ها می باشند،در بازه ی صفر تا ده هستند که آن را به چهار کلاس طبقه بندی می کنیم:
1. فیلم های ضعیف (0-2.4)
2. فیلم های متوسط (2.4-5)
3. فیلم های خوب (5.1-7.4)
4. فیلم های عالی (7.4-10)
اما اشکالی وجود دارد و آن این است که خروجی های ما داده هایی پیوسته می باشند و کلاس SVM،تنها داده های باینری را می پذیرد.در واقع الگوریتم SVM دو کلاسه می باشد.لذا به هریک از این کلاس ها،یک مقدار تخصیص می دهیم(1 به فیلم های ضعیف و به همین ترتیب برای عالی ترین فیلم ها عدد 4 را مقداردهی می کنیم).اما در حال حاضر چهار کلاسه هستیم.به همین دلیل باید از الگوریتم های Multiclass استفاده نماییم.روش های Multiclass عبارتند از:
1. One-vs.-One
2. One-vs.-One [2](http://scikit-learn.org/stable/modules/generated/sklearn.multiclass.OneVsOneClassifier.html)
3. DAG(Directed Acyclic Graph) [3](https://dl.acm.org/citation.cfm?id=1797193)
روش اول که توضیحات آن در[اینجا](http://mlwiki.org/index.php/One-vs-All_Classification) قرار داده شده است،همان روشی است که در این پروژه مورد استفاده قرار گرفته است.در لینک های بالا توضیحاتی در مورد آن ها آورده شده است.با این کار ما می توانیم از الگوریتم SVM چند کلاسه استفاده نماییم.
##**انتخاب ویژگی **
برای این آزمایش از مجموعه داده ای که در[اینجا](https://www.kaggle.com/tmdb/tmdb-movie-metadata) قرار دارد،استفاده می شود.این مجموعه شامل 5000 فیلم می باشد.با استفاده از تابع dropna داده های missing یا در واقع داده هایی که بعضی از ویژگی هایشان وجود نداشت را از بین بردیم که در نهایت تعداد داده های ما حدود 2000تا می شود.در این آزمایش 75% داده ها به عنوان یادگیری(Train) و 15% آن ها را برای آزمایش(Test)قرار می دهیم.حال با توجه به میزان تاثیر هر ویژگی در پیش بینی امتیاز فیلم ، ویژگی های زیر را برای مدل سازی روش خود به کار می بریم :
###بودجه فیلم
بودجه یک فیلم،همان طور که پیشتر گفته شد،شامل تمام هزینه های حاصل از ساخت یک فیلم می باشد که ویژگی پیوسته ای است.بودجه جزو مهم ترین ویژگی های اثرگذار بر کیفیت فیلم و در نتیجه آن،امتیاز فیلم می باشد.
###محبوبیت
محبوبیت را می توان جزو ویژگی های مهم یک فیلم تلقی نمود.میزان علاقه مردم و محبوبیت آن در بینشان می تواند تاثیر چشمگیری برروی امتیاز آن فیلم داشته باشد.این نوع داده ای،عددی می باشد.
###میزان درآمد
درآمد یک فیلم همان طور که نامش پیداست،همان پولی است که از فروش و اکران و نمایش آن به دست می آید.معمولا درآمد یک فیلم با کیفیت آن فیلم متناسب است.هرچه فیلم بهتر باشد،میزان درآمد حاصل از آن بیشتر است و بالعکس.لذا جزو ویژگی های های مهم به شمار می آید.
###زمان اجرا
تعداد دفعاتی که یک فیلم بر روی پرده سینما به اکران درآمده است که می تواند فاکتور خوبی برای پیش بینی امتیاز فیلم محسوب شود.
###تعداد آرا
در قسمت کارهای مرتبط توضیح داده شده است.
###کارگردان
هر فیلم دارای یک کارگردان است که وظیفه هماهنگی و تولید یک فیلم را به عهده دارد.به طور طبیعی،فیلم هایی با کارگردانان معروف و مشهور مخاطب بیشتری دارند و استقبال از آن ها بیشتر است.لذا ویژگی مهمی برای پیش بینی تلقی می شود.اسم کارگردان،داده ای عددی نمی باشد.لذا باید به یک داده عددی تبدیل شود.
###بازیگر نقش اول
یکی از عوامل درخشش و جذب مخاطب به یک فیلم،نقش آفرینی سوپراستارهای مطرح در آن می باشد.بنابراین بازیگر نقش اول ،نقش مهمی در کیفیت فیلم دارد.لذا از آن به عنوان یک ویژگی استفاده می کنیم.چون بازیگر نقش اول یک داده ی عددی نیست،باید آن را به یک داده عددی تبدیل نماییم.
![](https://boute.s3.amazonaws.com/239-th7LU8KFTB.jpg)
**شرح جزییات پیاده سازی**
زبان پایتون به دلیل داشتن کتابخانه ها (Libraries)و ماژول های (Modules)متعدد و نیز انعطاف پذیری آن،مورد توجه دانشمندان علم داده کاوی قرار گرفته است.لذا ما در این برنامه نیز با همین زبان پیاده سازی کردیم تا سرعت و کارایی طبقه بندی خود را افزایش دهیم .
در این پروژه ما از تعدادی ماژول و کتابخانه به شرح زیر استفاده نمودیم که عبارت اند از:
1.ماژول pandas: با استفاده از این ماژول،داده هایمان را که از نوع csv می باشد،خوانده وبه نوع DataFrame تبدیل می کنیم تا بتوانیم با آن ها کار کنیم.
2. ماژول sklearn :این ماژول ،بسیار پرکاربرد است.در داخل این ماژول کلاس های متنوعی وجود دارد که ما از تعدادی از آن ها استفاده کردیم.در کتابخانه ای با نام sklearn.svm کلاس SVC وجود دارد .این کتابخانه شامل تمامی الگوریتم های SVMمی باشد. یکی دیگر از موارد استفاده شد،تابع train_test_split است که داده ها را به نسبتی که تعیین می کنیم به دو قسمت train و test تبدیل می کند.accuracy_score تابعی می باشد که دقت برنامه را اندازه می گیرد و درصدی را گزارش می دهد.این تابع دو پارامتر Y_Predict و Y_Real را به عنوان ورودی دریافت می کند.کلاس دیگر همان Multiclass می باشد که در قسمت قبل دلیل استفاده از آن توضیح داده شد.در آخر برای ارزیابی ضربدری(cross validation)با استفاده از کلاس KFOLD تمام داده های dataset را مورد train و test قرار می دهیم.لذا جواب دقیقی از دقت برنامه به ما می دهد.
3. ماژول numpy:این کلاس که با زبان C نوشته شده است،در مورد کار با آرایه ها بسیار سریع و کاربردی است.
4. ماژول time:این تابع زمان کلاس بندی(classification) را مشخص می کند.
کد برنامه در سایت github قرار داده شده است،در [اینجا](https://github.com/FATI1376/imdb_project) قابل مشاهده است.
به طور کلی،در ابتدا پس از خواندن مجموعه داده،داده های از جاافتاده را حذف می کنیم.سپس از بین ویژگی های موجود،هفت ویژگی برتر را انتخاب نموده و به دلیل عددی نبودن دو ویژگی کارگردان و بازیگر،با استفاده از تابع replace در ماژول pandas ،آن ها را به داده عددی تبدیل کرده و مجموعه ویژگی ها را به کلاس بند OVA-SVM می دهیم.سپس برای دستیابی به نتایج واقع بینانه تر،با استفاده از الگوریتم KFOLD cross validation داده ها را مورد ارزیابی قرار می دهیم.
# نتایج
در نمودار زیر نتایج این آزمایش و مقاله های [4] و [5] آمده است.ما در این آزمایش به دقتی معادل 83% رسیده ایم.در حالی که مقاله [4] دقتی معادل 39% به دست آورده است.همچنین دقت به دست آمده بسیار نزدیک به نتایج مقاله [5] می باشد که حاکی از عملکرد مناسب برنامه ی ما می باشد.
![شکل2.مقایسه نتایج](https://boute.s3.amazonaws.com/239-tabel.png)
# کارهای آینده
شاید بتوان برنامه را با روش های دیگر Multiclass مانند DAG پیاده سازی نمود تا به نتایج دقیق تر و بهتری دست پیدا کرد.هم چنین می توانیم با استفاده از الگوریتم ماشین بردار پشتیبان دو قلو (TSVM) نتایج بهتری با دقت و سرعت بیشتر را به دست آورد.نیز می توان با استفاده از الگوریتم های تکاملی مانند PSO وPCA ویژگی های برتر را انتخاب نمود.
# مراجع
+ [1] Asur, S., & Huberman, B. A. (2010, August). Predicting the future with social media. In _Web Intelligence and Intelligent Agent Technology (WI-IAT), 2010 IEEE/WIC/ACM International Conference on_ (Vol. 1, pp. 492-499). IEEE.
+ [2] Mestyán, M., Yasseri, T., & Kertész, J. (2013). Early prediction of movie box office success based on Wikipedia activity big data. _PloS one_, _8_(8), e71226.
+ [3] Asad, K. I., Ahmed, T., & Rahman, M. S. (2012, May). Movie popularity classification based on inherent movie attributes using C4. 5, PART and correlation coefficient. In _Informatics, Electronics & Vision (ICIEV), 2012 International Conference on_ (pp. 747-752). IEEE.
+ [4] Nithin VR, 2Pranav M, 3Sarath Babu PB, 4Lijiya.Predicting Movie Success Based on IMDB Data.Volume: 03, June 2014, Pages: 365-368.International Journal of Data Mining Techniques and ApplicationsISSN: 2278-2419 .
+ [5] Latif, M. H., & Afzal, H. (2016). Prediction of movies popularity using machine learning techniques. International Journal of Computer Science and Network Security (IJCSNS), 16(8), 127.
## پیوندهای مفید
+ Predicting Movie Success Based on IMDB Data,By Nithin VR, Pranav M, Sarath Babu PB, Lijiya A, Department of CSE, National Institute of Technology, Calicut, 2014 [لینک](http://www.ijdmta.com/papers/vol3issue1/ijdmta/paper10.pdf)
+ [یادگیری ماشین در پایتون](http://scikit-learn.org)
+ [مجموعه داده imdb](https://www.kaggle.com/tmdb/tmdb-movie-metadata)