Praktik Cohort Analisis menggunakan Python
Praktik ini menggunakan Google Colab dan menggunakan bahasa Python.
Dataset yang digunakan berasal dari Kaggle : https://www.kaggle.com/datasets/carrie1/ecommerce-data?resource=download
Cohort adalah sekumpulan objek yang dikelompokan berdasarkan karakteristik yang serupa.
Cohort Analysis adalah proses analisis digunakan untuk memahami perubahan user engagement dari waktu ke waktu.
Berikut langkah-langkah analisi cohort menggunakan google colab:
1. Upload dan menampilkan data.
Dataset yang sudah di download dari Kaggle tersebut maka bisa di upload dengan cara :
1.
Buka
google colab dan klik pada Folder
2.
Klik
ikon “Upload File” lalu silahkan pilih file e-commerce(file dataset yang sudah
di download, biasanya hasilnya masih zip maka harus di ekstark terlebih
dahulu). Mohon ditunggu sampai dataset terupload dengan baik.
3.
Ketika
data sudah berhasil terupload, maka Namanya akan berubah menjadi “data.csv”
(csv merupakan jenis file, atau kepanjangan dari Comma Separated Values).
4.
Setelah
terupload maka langkah selanjutnya adalah menampilkan data.
Import pandas as pd
Import numpy as np
Data=pd.read_csv(‘data.csv’,
engine=’python’, encoding=’ISO-8859-1’)
Data.head()
Ket :
- Pandas dan Numpy
merupakan library yang akan digunakan dalam praktik ini.
- “Data.csv” merupakan
file yang diupload pada step ke 3
- “Data =” adalah
perumpamaan (istilah singkat) apabila ingin memanggil data e-commerce tersebut
pada tahap selanjutnya ketika ingin memanggil data e-commerce hanya perlu
menuliskan “data” saja tanpa harus menulis panjang lebar.
- Data.head() adalah codingan ketika ingin menampilkan 5 data teratas dari data tersebut.
Hasilnya menajdi :
2. Reformat Timestamp
Reformat
TimeStamp diperlukan dalam pembuatan
cohort analysis karena data yang diambil biasanya tersedia dalam format waktu
yang lebih detail seperti bulanan, mingguan atau bahkan harian. Jika data dalam
format waktu ini tidak direformat maka akan dulit untuk mengelompokkan pengguna
ke dalam kohor berdasarkan bulan atau minggu tertentu, yang merupakan bagian
penting dari analisis kohor.
Codingan untuk melakukan reformat :
import dateutil
from datetime import datetime as dt
from pytz import utc
data['datetime']=data['InvoiceDate'].apply(lambda x:dateutil.parser.parse(x).timestamp())
data['month'] = data['datetime'].apply(lambda x: dt.fromtimestamp(x,utc).month)
data['year'] = data['datetime'].apply(lambda x: dt.fromtimestamp(x,utc).year)
#untuk menampilkan data
data.head()
3. Membuat Cohort
Berikut adalah codingan membuat cohort
#'AUG 2010'
#'2010 AUG'
#AUG 2010 -> 201008
data['cohort'] = data.apply(lambda row: (row['year']*100) + (row['month']), axis =1)
#2010*100 = 201000
#aug -> 201000 + 08 = 201008
cohorts = data.groupby('CustomerID')['cohort'].min().reset_index()
cohort.columns = ['CustomerID', 'first_cohort']
data = data.merge(cohorts, on='CustomerID', how='left')
#untuk menampilkan data
data.head()
hasilnya adalah
4. Membuat Header untuk setiap Cohort
Membuat header untuk setiap cohort berguna untuk memberikan konteks dan informasi yang lebih jelas tentang cohort yang sedang dianalisis.
Berikut adalah codingan untuk membuat header pada setiap cohort :
headers = data['cohort'].value_counts().reset_index()
headers.columns = ['Cohorts', 'Count']
headers.head()
headers = headers.sort_values(['Cohorts'])['Cohorts'].to_list()
#untuk menunjukan hasil header
headers
hasilnya adalah
5. Pivot data berdasarkan Cohort
Melakukan pivot data berdasarkan cohort berguna untuk memperoleh informasi lebih terperinci tentang karakteristik pelanggan dan kinerja bisnis pada setiap cohort.
menampilkan tabel data dengan coding
data.head()
data.dropna(inplace=True)
data.dropna(inplace.=True) adalah fungsi pada library pandas di Python yang digunakan untuk menghapus baris atau kolom yang memiliki nilai null atau NaN (not a number). Parameter inplace=True artinya perubahan dilakukan pada data asli tidak dibuat salinan data baru.
data['cohort_distance'] = data.apply(lambda row:(headers.index(row['cohort'] - headers.index(row['first_cohort'])) if (row['first_cohort'] !=0 and row['cohort'] !=0 else np.nan, axis=1)
kode tersebut merupakan implementasi terkait dengan perhitungan jarak atau selisih antara tanggan bergabung pertama (first_cohort) dengan tanggal bergabung kembali(cohort).
'cohort_distance' berfungsi untuk menambahkan kolom baru dimana setiap barus dihitung dengan rumus yang ada di dalam fungsi lambda.
#untuk menampilkan data
data.head ()
hasilnya
cohort_pivot = pd.pivot_table(data,
hasilnya
cohort_pivot=cohort_pivot.div(cohort_pivot[0],axis=0)
co coding tersebut bertujuan untuk memperoleh nilai persentase dari jumlah customer yang masih aktif pada setiap periode berdasarkan jumlah customer yang bergabung pada periode awal.
c cohort_pivot
6. Menampilkan kedalam HeatMap
imimport seaborn as sns
import matplotlib.pyplot as plt
bdfig_dims=(12,8)
fig, ax = plt.subplots(figsize=fig_dims)
sns.heatmap(cohort_pivot, annot=True, fmt='.0%',
mask=cohort_pivot.isnull(), ax=ax, square=True, linewidths=5,
cmap=sns.cubehelix_palette(8))
plt.show()
cocode ini bertujuan untuk memvisualisasikan hasil pivot data dalam bentuk heatmap menggunakan library seaborn dan matplotlib di Python.
Komentar
Posting Komentar