<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های sab mel</title><link>https://virgool.ir/feed/@d.sabmlt</link><description></description><language>fa</language><pubDate>2026-11-11 09:46:48</pubDate><image><url>https://files.virgool.ir/upload/users/179007/avatar/avatar.png</url><title>sab mel</title><link>https://virgool.ir/@d.sabmlt</link></image><item><title>یک سیستم پیشنهاد دهنده ساده!</title><link>https://virgool.ir/@d.sabmlt/یک-سیستم-پیشنهاد-دهنده-ساده-a28fjtlcrc7i</link><description>سیستم های پیشنهاد دهندهسیستم های پیشنهاد دهنده از کاربردهای موثر علم داده بخصوص در فروشگاه های آنلاین است که سعی می‌کند علایق یک کاربر خاص را پیش‌بینی کند و آیتم‌هایی متناسب با علایقش را به وی نشان دهد. سیستم پیشنهاد دهنده از الگوریتم های یادگیری ماشین بخصوص یادگیری عمیق استفاده می کنند اما در این نوشته یک سیستم پیشنهاد دهنده به مراتب ساده تر با استفاده از الگوریتم کاهش ابعاد NMF و مشابهت کسینوسی  ارائه شده، دیتاست مورد استفاده دو فایل CSV که اولی شامل نام 111 هنرمند و دومی شامل 24800 نمونه که هنرمندان مورد علاقه 500 کاربر رو درخودش داره. لازم به ذکر که خرده‌فروشی‌های آنلاین داده های مورد نیاز برای این سیستم ها را از راه هایی مثل امتیازدهی کاربر پس از تماشای یک فیلم یا گوش دادن به یک موسیقی یا تاریخچه‌ی خرید کاربران، بدست می آرن. سایت‌هایی مثل یوتیوب، نتفلیکس یا اسپاتیفای در بلاد کفر و فیلیمو و دیجیکالا در وطن از سیستم پیشنهاد دهنده استفاده می‌کنند تا به کاربران خود، لیست‌های موردعلاقه‌ی آن‌ها را نشان دهند. https://github.com/ds-sabmlt/NMF-clustring-on-wikipedia-articles/tree/music_recomender_NMF خب اول کار کتابخانه های مورد نیاز سیستم پیشنهاددهنده مون رو فراخوانی میکنیم.سپس  فایل های CSV رو با کمک پانداس همیشه در صحنه به دیتافریم های df_user وartist_df انتقال میدیم که 5 سطر ابتدایی اونها رو هم نمایش دادیم.توجه داشته باشید آی دی های  &#39;artist_offset&#39; در دیتافریم df_user برابر اندیس دیتافریم artist_df است. می تونیم با ترکیب کردن (merge) دو دیتافریم بالا بروی ستون &#34;artist_offset&#34; به یک دیتافریم واحد برسیم که آن را temp_df می نامیم. یعنی در سطر صفرم کاربر 1  آهنگ های هنرمند 79 به نام Misfits رو 58 بار گوش داده.(لابد خیلی دوستش داره)با استفاده از pivot table پانداس دیتافریم artist_user_df رو ک سطرهای آن نام هنرمندان و ستون هایش آی دی کاربراست (  آرایه های خالی رو صفر می ذاریم) را می سازیم.برای سسیتم پییشنهاد دهنده حاضر از تکنیک کاهش ابعاد (NMF(Non-negative matrix factorization و تشابه کسینوس استفاده شده که تشابه بین دو بردار را با ضرب داخلی آنها اندازه گیری کرده و تعیین می کند که آیا دو بردار تقریباً در یک جهت قرار دارند. کسینوس دو بردار غیر صفر را می توان با استفاده از فرمول ضرب نقطه ای اقلیدسی بدست آورد. برای اطلاعات بیشتر به لینک زیر مراجعه کنید. https://deepai.org/machine-learning-glossary-and-terms/cosine-similarity برای برازش الگوریتم کاهش ابعاد NMF لازم است که مقادیر ماتریس ورودی غیرمنفی باشند. همون طور که در تصویر زیر نحوه عملکرد NMF رو مشاهده می کنید، ماتریس ورودی (X) رو  به حاصل ضرب نقطه ای ماتریس W با  K بعد در ماتریس component (فارسی شو نمی دونم شاید مولفه خوب باشه) تبدیل  می کنه که ماتریس W کاهش بعد یافته ماتریس ورودیه. جهت اطلاع بیشتر  میتونید به لینک زیر مراجعه بفرمایید:الگوریتم NMF https://mlexplained.com/2017/12/28/a-practical-introduction-to-nmf-nonnegative-matrix-factorization/ حالا با استفاده از پایپ لاین مراحل زیر رو به ترتیب برازش می کنیم :ابتدا مقادیر دیتافریم رو استاندارد سازی می کنیم. کاهش ابعاد را 20 component اجرا می کنیم.بازهم ماتریس کاهش بعدیافته را نرمال سازی می کنیم.با استفاده از لیست اسامی هنرمندان و مقادییر نرمال سازی شده دیتافریم NMF_df رو می سازیم.خب خدا قوت تقریبا میشه گفت که به آخرای کار رسیدیم.هنرمند مورد نظر رو انتخاب کرده و در ماتریس artist قرار می دهیم. حالا می تونیم با ضرب نقطه ای دو ماتریس ماتریس NMF_df را با ابعاد 20*111 و  artist با ابعاد 1*20  تشابه کسینوس را محاسبه کرده (similarities) که ابعاد آن 1*111 است بزرگترین هایش را انتخاب می کنیم چراکه هرچقدر عدد مشابهت کسینوسی به یک نزدیک تر باشد مشابهت بیشتره.فرض کنید  توی یک اپ به آهنگ های آقای بروس اسپرینگستین(مدیونین فک کنین میشناسمش) گوش میدیم سیستم پیشنهاد دهنده ی ما می تونه با توجه به این که سایر کاربرها در کنار هنرمند مورد نظر آثار کدوم هنرمندهای دیگه رو هم بیشتر گوش می دن، به شما پیشنهاد بده. تا بتونید موسیقی مورد علاقه تون رو  راحت تر پیداکنید و لذت شو ببرید.#recomender_system   #data_science  #machine_learning  #python  #matrix</description><category>sab mel</category><author>sab mel</author><pubDate>Tue, 03 Nov 2020 20:15:52 +0330</pubDate></item></channel></rss>