معرفی
سیستمهای Recommendation به بخش مهمی از بسیاری از پلتفرمهای آنلاین، از سایتهای تجارت الکترونیک گرفته تا خدمات پخش تبدیل شدهاند.
این سیستمها از دادههای Historical و الگوریتمهای یادگیری ماشین برای پیشبینی آنچه کاربران ممکن است بر اساس رفتار و ترجیحاتشان بپسندند، استفاده میکنند. در این آموزش، ما یک سیستم توصیه میسازیم که محصولات، محتوا یا مواردی را به کاربران پیشنهاد میکند.
راه اندازی Environment
قبل از شروع، مطمئن شوید که پایتون، جنگو و کتابخانه های مورد نیاز را نصب کرده اید. شما می توانید یک محیط(Environment) مجازی راه اندازی کنید تا وابستگی های پروژه خود را ایزوله نگه دارد:
python -m venv recommendation-system
source recommendation-system/bin/activate
pip install django pandas prophetآشنایی با سیستم های پیشنهادی هوش مصنوعی
سیستم های توصیه هوش مصنوعی معمولاً به دو دسته تقسیم می شوند: فیلتر مبتنی بر محتوا و مشارکتی. در این آموزش، ما بر روی توصیههای مبتنی بر محتوا با استفاده از کتابخانه Prophet برای پیشبینی تمرکز میکنیم.
استفاده از prophet برای پیش بینی
Prophet یک ابزار قدرتمند پیش بینی است که توسط فیس بوک برای داده های سری زمانی توسعه یافته است.
این به ویژه هنگام برخورد با روندها و الگوهای فصلی مفید است. ما از قابلیتهای Prophet برای پیشبینی اولویتها و علایق کاربر استفاده خواهیم کرد.
ادغام Prophet با جنگو
اولین قدم ما بارگذاری داده های Historical در مدل های جنگو است. فرض کنید مدلی به نام UserActivity با فیلدهای user، item، timestamp و rating داریم. برای آماده سازی داده ها برای پیش بینی، تعاملات کاربر-مورد و مهرهای زمانی را استخراج می کنیم.
مرحله 1: بارگذاری داده های Historical
یک مدل جنگو برای نمایش فعالیت کاربر ایجاد کنید. برای مثال می توانید مدلی به نام UserActivity با فیلدهای user، item، timestamp و rating تعریف کنید.
پایگاه داده خود را با داده های سابقه فعالیت کاربر پر کنید. هر رکورد باید شامل کاربر، موردی که با آن تعامل داشته است، مُهر زمانی تعامل، و به طور بالقوه امتیاز یا امتیاز ترجیحی باشد.
مرحله 2: پیش پردازش داده ها
کتابخانه های مورد نیاز را در ابتدای نمای جنگو یا اسکریپت خود وارد کنید:
from django.shortcuts import render
import pandas as pd
from prophet import Prophetساخت Recommendation Engine
عملکردی ایجاد کنید که بر اساس فعالیت Historical یک کاربر خاص، توصیه هایی را ایجاد کند:
def generate_recommendations(user_activity):
# Convert user activity to a DataFrame
data = [
{'ds': activity.timestamp, 'y': activity.rating} # Use 'y' as per your dataset
for activity in user_activity
]
df = pd.DataFrame(data)
# Prepare the DataFrame for Prophet
df.rename(columns={'ds': 'ds', 'y': 'y'}, inplace=True)
# Create and fit a Prophet model
model = Prophet()
model.fit(df)
# Create a future DataFrame for predictions
future = model.make_future_dataframe(periods=7) # Adjust 'periods' as needed
# Generate forecasts
forecast = model.predict(future)
# Extract the last predicted values as recommendations
recommendations = forecast[['ds', 'yhat']].tail(7) # Get the last 7 predicted values
return recommendationsمرحله 2: بازیابی فعالیت کاربر
در نماهای جنگو، فعالیت Historical را برای یک کاربر خاص بازیابی کنید:
user_id = 123 # Adjust with the user's actual ID
user_activity = UserActivity.objects.filter(user_id=user_id).order_by('-timestamp')مرحله 3: ایجاد Recommendations
تابع generate_recommendations را با فعالیت کاربر فراخوانی کنید:
recommendations = generate_recommendations(user_activity)پیاده سازی Frontend
در قالب جنگو خود، از یک حلقه برای نمایش موارد توصیه شده استفاده کنید:
<h2>Recommended Items:</h2>
<ul>
{% for item in recommendations %}
<li>{{ item.ds|date:"Y-m-d" }} - Rating: {{ item.yhat }}</li>
{% endfor %}
</ul>نتیجه
ادغام Prophet با جنگو به شما این امکان را می دهد که از قابلیت های پیش بینی Prophet برای ساختن یک سیستم توصیه هوش مصنوعی استفاده کنید.
با تهیه دادههای historical ، آموزش مدل و انجام پیشبینیها، میتوانید توصیههای شخصیسازی شده را بر اساس تعاملات گذشته کاربران ارائه دهید.
این ادغام یک پایه محکم برای ایجاد یک سیستم توصیه کاربر پسند و جذاب ارائه می دهد که تجربه کاربر را افزایش می دهد و مشارکت بیشتر در پلت فرم مبتنی بر جنگو شما را تشویق می کند.
