Pada pembahasan ini, saya akan menganalisis pasar keranjang menggunakan knowledge transaksi.
Mengidentifikasi pola pembelian barang oleh pelanggan dan merumuskan strategi pemasaran berdasarkan aturan asosiasi yang dihasilkan dari Knowledge Transaksi.
Knowledge yang akan saya gunakan di dapatkan dari kaggle, yaitu Transaction Data. Untuk mendapatkan knowledge tersebut, yang perlu di lakukan adalah Login atau membuat akun kaggle terlebih dahulu. Lalu anda dapat mendownload dataset ini.
Setelah obtain, anda akan mendapatkan dataset Transaction dengan format csv yang berisi seperti dibawah ini.
Dataset Transaksi terdapat 8 kolom, yaitu:
- UserId: id unik untuk semua person id
- TransactionId: id transaksi
- TransactionTime: waktu transaksi
- ItemCode: kode merchandise yang akan dibeli
- ItemDescription: deskripsi merchandise
- NumberOfItemPurchased: jumlah whole merchandise yang dibeli
- CostPerltem: biaya per merchandise yang dibeli
- Nation: tempat barang dibeli
- Impor knowledge transaksi
import pandas as pd#Impor Knowledge
transaction_3=pd.read_csv("/content material/transaction_data.csv", delimiter=',')
transaction_3
2. Membersihkan knowledge dari knowledge yang hilang
#Pemrosesan knowledge awal
## membersihkan knowledge
transaction_3.dropna()
transaction_3.drop_duplicates(inplace= True)
3. Melihat information dataset yang telah dibersihkan
transaction_3.information()
<class 'pandas.core.body.DataFrame'>
Index: 536572 entries, 0 to 1081501
Knowledge columns (whole 8 columns):
# Column Non-Null Depend Dtype
--- ------ -------------- -----
0 UserId 536572 non-null int64
1 TransactionId 536572 non-null int64
2 TransactionTime 536572 non-null object
3 ItemCode 536572 non-null int64
4 ItemDescription 535118 non-null object
5 NumberOfItemsPurchased 536572 non-null int64
6 CostPerItem 536572 non-null float64
7 Nation 536572 non-null object
dtypes: float64(1), int64(4), object(3)
reminiscence utilization: 36.8+ MB
Berdasarkan hasil pembersihan, diketahui bahwa dataset transaksi ini sudah bebas dari nilai null dan baris duplikat. Proses pembersihan atau normalisasi knowledge ini dilakukan untuk mencegah terjadinya overfitting.
4. Menggunakan nilai positif dari jumlah barang yang telah terjual
transaction_3_plus = transaction_3[transaction_3['NumberOfItemsPurchased']>=0]
transaction_3_plus.information()
<class 'pandas.core.body.DataFrame'>
Index: 525986 entries, 0 to 1081501
Knowledge columns (whole 8 columns):
# Column Non-Null Depend Dtype
--- ------ -------------- -----
0 UserId 525986 non-null int64
1 TransactionId 525986 non-null int64
2 TransactionTime 525986 non-null object
3 ItemCode 525986 non-null int64
4 ItemDescription 525394 non-null object
5 NumberOfItemsPurchased 525986 non-null int64
6 CostPerItem 525986 non-null float64
7 Nation 525986 non-null object
dtypes: float64(1), int64(4), object(3)
reminiscence utilization: 36.1+ MB
Pada tahap ini, pembersihan knowledge dilakukan pada kolom NumberOfItemsPurchased, yang menunjukkan jumlah barang terjual dalam setiap transaksi berdasarkan kolom TransactionId. Proses ini bertujuan untuk menghilangkan nilai negatif yang dapat menunjukkan pembatalan pembelian. Dalam analisis ini, penting untuk memastikan bahwa yang dianalisis adalah barang-barang yang benar-benar dibeli oleh pelanggan.
5. Melakukan agregat knowledge berdasarkan kolom TransactionId
#daftar barang per transaksi
transactionplus=(transaction_3_plus.groupby(['TransactionId','ItemDescription'])['NumberOfItemsPurchased'].sum().unstack().reset_index().fillna(0).set_index('TransactionId'))
transactionplus
Dalam dataset transaksi ini, dilakukan proses agregasi untuk mengelompokkan knowledge berdasarkan kriteria tertentu. Pengelompokan dilakukan pada kolom TransactionId, ItemDescription, dan NumberOfItemsPurchased. Tujuannya adalah untuk membantu analisis yang lebih terperinci dan memudahkan pemahaman pola knowledge.
Mining Affiliation Guidelines adalah teknik dalam knowledge mining yang digunakan untuk menemukan hubungan atau pola antara merchandise dalam knowledge transaksi, yang dikenal sebagai Market Basket Evaluation. Dalam konteks ini, teknik ini mengidentifikasi asosiasi atau aturan yang menunjukkan bagaimana merchandise tertentu sering dibeli bersama.
Market Basket Evaluation menggunakan Mining Affiliation Guidelines untuk membantu bisnis memahami perilaku belanja pelanggan, mengoptimalkan penempatan produk, membuat rekomendasi produk, dan mengembangkan strategi pemasaran yang lebih efektif.
- Encode Knowledge
Sebelum menerapkan algoritma apriori, langkah pertama yang perlu dilakukan adalah mengodekan knowledge. Pengodean knowledge ini penting dalam Market Basket Evaluation karena fokus kita adalah pada keberadaan barang yang terbeli, bukan jumlahnya. Oleh karena itu, knowledge dikodekan dalam bentuk biner, di mana barang yang terbeli diberi kode (1) dan barang yang tidak terbeli diberi kode (0).
def encode_units(x):
if x <= 0:
return 0
if x >= 1:
return 1
transaction_3_encode = transactionplus.applymap(encode_units)
transaction_3_encode
Dapat dilihat pada gambar diatas bahwa knowledge sudah berubah sesuai dengan pengkodean dalam bentuk biner untuk mempermudah apakah barang tersebut terbeli atau tidak.
2. Melakukan filter pada dataset
Filter yang dilakukan pada knowledge bertujuan untuk mengatur bahwa knowledge transaksi ini hanya akan memuat barang yang dibeli lebih dari 1.
transaction_3_filter = transaction_3_encode[(transaction_3_encode>0).sum(axis=1)>=2]
transaction_3_filter
Dapat dilihat dari hasil filterisasi knowledge tersebut, bahwa terdapat 18,338 riwayat transaksi yang menunjukkan barang terbeli lebih dari 1.
3. Menerapkan algoritma apriori
Setelah memperoleh dataset transaksi yang hanya mencakup barang-barang yang dibeli lebih dari satu kali, langkah berikutnya adalah menerapkan algoritma Apriori. Algoritma Apriori digunakan untuk mengidentifikasi barang-barang yang paling sering dibeli. Dalam penerapan Apriori, asosiasi dalam dataset diatur menggunakan metrik assist untuk menemukan kombinasi barang yang sering muncul bersama.
#apriori
from mlxtend.frequent_patterns import apriori
frequent_itemsets_plus = apriori(transaction_3_encode, min_support=0.03,
use_colnames=True).sort_values('assist', ascending=False).reset_index(drop=True)frequent_itemsets_plus['length'] = frequent_itemsets_plus['itemsets'].apply(lambda x: len(x))
frequent_itemsets_plus
Dari penerapan algoritma Apriori menghasilkan 136 transaksi yang diidentifikasi sebagai barang yang paling sering dibeli oleh pelanggan. Barang yang paling banyak dibeli dalam dataset ini adalah White Hanging Coronary heart T-Gentle Holder, dengan nilai assist sebesar 0.112237.
Setelah mengidentifikasi barang yang paling sering dibeli, langkah selanjutnya adalah mengidentifikasi aturan dengan elevate yang tinggi dan confidence yang tinggi sebagai rekomendasi strategis. Hal ini dilakukan dengan menggunakan aturan asosiasi berdasarkan nilai elevate.
Raise dihitung sebagai perbandingan antara confidence aturan asosiasi dengan assist merchandise. Nilai elevate yang lebih besar dari 1 menunjukkan adanya asosiasi positif, sementara nilai elevate yang kurang dari 1 menunjukkan asosiasi yang negatif. Dengan demikian, aturan dengan elevate tinggi dan confidence tinggi akan diidentifikasi sebagai rekomendasi strategis untuk digunakan dalam pengambilan keputusan bisnis.
from mlxtend.frequent_patterns import association_rules
association_rules(frequent_itemsets_plus, metric='elevate',
min_threshold=1).sort_values('elevate', ascending=False).reset_index(drop=True)
Berdasarkan hasil aturan asosiasi, ditemukan bahwa Pink Reegency Teacup and Saucer dan Inexperienced Regency Teacup and Saucer memiliki elevate tertinggi, yaitu sebesar 16.3939893 atau sekitar 16.4%. Dalam konteks aturan elevate, nilai yang lebih besar dari 1 menunjukkan adanya keterkaitan antara barang-barang tersebut. Oleh karena itu, kedua barang ini direkomendasikan untuk dijual bersama-sama, karena kemungkinan besar pelanggan akan membeli keduanya secara bersamaan.
Strategi pemasaran berdasarkan hasil analisis menggunakan MBA yang dapat dilakukan yaitu:
1. Mengelompokkan Pink Regency Teacup and Saucer dengan Inexperienced Regency Teacup and Saucer sebagai paket atau bundling promosi. Kedua barang ini saling terkait dan memiliki potensi penjualan yang tinggi saat ditawarkan bersama.
2. Mempromosikan penawaran khusus atau diskon untuk pembelian Pink Regency Teacup and Saucer bersama Inexperienced Regency Teacup and Saucer, untuk meningkatkan motivasi pembelian pelanggan.
3. Menampilkan Pink Regency Teacup and Saucer dan Inexperienced Regency Teacup and Saucer secara bersamaan di space penjualan yang strategis untuk meningkatkan kesadaran pelanggan dan memancing pembelian impulif.
4. Melakukan kampanye pemasaran yang menekankan kombinasi produk ini sebagai pilihan yang cocok untuk hadiah atau paket hadiah, yang dapat meningkatkan daya tarik bagi pelanggan yang mencari hadiah.
5. Menggunakan platform on-line untuk menyajikan rekomendasi produk yang menyoroti hubungan antara Pink Regency Teacup and Saucer dan Inexperienced Regency Teacup and Saucer, dan menargetkan pelanggan yang menunjukkan minat dalam satu barang untuk membeli yang lainnya.
6. Melakukan survei pelanggan untuk memahami preferensi pembelian dan tingkat kepuasan mereka terhadap penawaran produk bundel, sehingga strategi pemasaran dapat disesuaikan dengan lebih baik dengan kebutuhan pelanggan.