در این نوشته قصد داریم با بررسی یک دیتاست، 5 گروه برتر تبلیغاتی آن را بدست بیاوریم.
برای این منظور در محیط توسعه، ابتدا دیتاست را می خوانیم.
import warnings warnings.simplefilter('ignore') import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt from pandas.plotting import parallel_coordinates %matplotlib inline data = pd.read_csv('./data/ad_table.csv', parse_dates=['date']) data.tail(20)
حال می بایست درآمد را از هزینه کم کنیم تا سود بدست آید.
data['profit'] = data['total_revenue'] - data['avg_cost_per_click'] * data['clicked'] data.head()
برای شناسایی 5 گروه برتر تبلیغاتی، معیارهای مختلفی مانند میانگین نرخ کلیک یا میانگین نرخ تبدیل وجود دارد. در اینجا، از آنجایی که اطلاعات درآمد و هزینه داده شده است، ما به سادگی از سود خالص به ازای هر تبلیغ داده شده برای یافتن 5 گروه برتر تبلیغاتی استفاده می کنیم.
def unit_profit(df): """ function to calculate the unit profit """ profit = df['profit'].sum() shown = df['shown'].sum() val = profit / shown return val grouped = data.groupby('ad').apply(unit_profit).reset_index() grouped = grouped.rename(columns={0: 'unit_profit'}) grouped = grouped.sort_values(by='unit_profit', ascending=False) grouped.head(10)
بر اساس محاسبات بالا، میتوانیم آن ها را مشاهده کنیم: ad_group_16، ad_group_2، ad_group_14، ad_group_31، ad_group_27.
همچنین می توانیم از طریق نمودار زیر وضعیت نقاط داده را با توجه به ابعاد مختلف مشاهده نماییم.
classes=['ad_group_16', 'ad_group_2', 'ad_group_14', 'ad_group_31', 'ad_group_27'] features=['shown', 'clicked', 'converted', 'avg_cost_per_click', 'ad'] plt.figure(figsize=(15,8)) visualizer = pd.plotting.radviz(dd[features], 'ad', colormap=plt.get_cmap("Set2")) plt.legend(bbox_to_anchor=(1.0, 1.0))