Posting ini tentang proyek batu penjuru Udacity Data Scientist Nanodegree. Kami memilih proyek promosi Starbucks.

Ulasan Proyek

Promosi membantu menciptakan kesadaran merek, meningkatkan lalu lintas pelanggan, dan membangun penjualan dan keuntungan. Strategi promosi memang penting, namun sangat menantang. Bisnis harus mempertimbangkan beberapa aspek rencana pemasaran mereka. Misalnya, dengan anggaran terbatas, penting untuk memanfaatkan media yang tepat untuk mengirimkan penawaran promosi kepada pelanggan yang tepat. Mengirimkan promosi kepada pelanggan yang salah, atau melalui saluran yang salah, akan meningkatkan biaya bisnis dengan dampak yang kecil terhadap pendapatan bisnis.

Sebagai bagian dari proyek Nanodegree Captone Ilmuwan Data Udacity, Starbucks dengan baik hati menyediakan kumpulan data promosi simulasi yang meniru perilaku pelanggan di aplikasi seluler hadiah. Promosinya berjalan seperti berikut: setiap beberapa hari sekali, Starbucks akan mengirimkan penawaran promosi kepada pelanggan. Promosi tersebut dapat berupa penawaran diskon, penawaran beli satu dapat satu gratis (bogo), atau penawaran informasi. Pelanggan yang berbeda mungkin bereaksi berbeda terhadap penawaran ini. Misalnya, beberapa pelanggan akan bereaksi positif terhadap promosi tersebut. Mereka akan melihat penawaran dan memesannya nanti. Sebaliknya, beberapa pelanggan mungkin mengabaikan promosi tersebut. Mereka mungkin tidak pernah melakukan pemesanan setelah melihat promosi, atau mereka mungkin melakukan pemesanan tanpa memperhatikan promosi tersebut. Karena penawaran promosi memerlukan biaya, analisis data dapat berguna untuk memahami perilaku pelanggan, membuat keputusan bisnis yang bijaksana, dan menerapkan strategi untuk meningkatkan keuntungan bisnis.

Pernyataan masalah

Dalam analisis ini, kami tertarik pada pertanyaan-pertanyaan berikut:

· Apa saja data demografi pelanggan?

· Bagaimana tanggapan berbagai gender terhadap promosi secara berbeda?

· Saluran apa yang terbaik untuk mengirimkan promosi?

· Bisakah kita membangun model untuk memprediksi perilaku pelanggan dan mengirimkan penawaran promosi yang disesuaikan kepada individu?

Metrik

· Untuk analisis data demografi pelanggan, kami tertarik pada distribusi usia, pendapatan, dan status keanggotaan (hari sejak mereka menjadi anggota).

· Untuk memahami bagaimana berbagai pelanggan merespons berbagai penawaran secara berbeda, kami menghitung penawaran yang disampaikan, penawaran yang dilihat, dan penawaran yang diselesaikan dalam berbagai situasi. Karena kelompok yang berbeda mungkin menerima jumlah penawaran yang berbeda, kami memperkenalkan tiga rasio yang dinormalisasi: dilihat/disampaikan, selesai/dilihat, dan selesai/dikirim untuk membandingkan efektivitas penawaran untuk berbagai pelanggan dan saluran penyampaian penawaran.

· Kami memperkenalkan metrik baru “kesuksesan” untuk memberi label efektivitas penawaran. Jika penawaran disampaikan, dilihat, dan diselesaikan oleh pelanggan, peristiwa “sukses” diberi label Benar. Jika suatu penawaran dikirimkan tetapi tidak pernah diselesaikan, atau diselesaikan tanpa dilihat oleh pelanggan, peristiwa “berhasil” diberi label sebagai Salah. Model ML kami akan digunakan untuk mengklasifikasikan peristiwa “sukses”. Skor akurasi algoritma ML akan dilaporkan.

Eksplorasi Data

Kumpulan data berisi tiga file:

1. File portfolio.json berisi id penawaran dan data meta tentang setiap penawaran, seperti hadiah, saluran media, tingkat kesulitan, durasi. Terdapat 10 penawaran promosi yang dikelompokkan menjadi tiga jenis (bogo, diskon, dan promosi). Tidak ada data NA dalam kumpulan data.

2. File profile.json berisi data demografi setiap pelanggan, termasuk jenis kelamin, usia, pendapatan, dan status keanggotaan. Ada ~17 ribu pelanggan di profil. Di antara mereka, ~12,79 pelanggan tidak memberikan informasi jenis kelamin, usia, dan pendapatan mereka. Kolom jenis kelamin dan pendapatan nasabah diisi NA, sedangkan kolom umur nasabah diisi 118.

3. File Transcript.json berisi catatan transaksi, id orang, id penawaran, dan acara. Peristiwa tersebut berisi data kategorikal yang mencakup penawaran yang diterima, penawaran yang dilihat, transaksi, dan penawaran yang diselesaikan. Ada ~306 ribu catatan dalam file. Tidak ada data NA dalam kumpulan data.

Visualisasi data

Bagian I Apa saja informasi demografis pelanggan?

Ada ~17 ribu pelanggan di data profil. Di antara mereka, ~12,79% pelanggan tidak memberikan informasi jenis kelamin, usia, dan pendapatan mereka. Karena atribut-atribut ini akan menjadi masukan utama model prediktif di masa depan, kami memutuskan untuk menghilangkan pelanggan-pelanggan ini dari analisis data. Pelanggan lainnya mengidentifikasi mereka sebagai Pria (57,3%), Wanita (41,3%), dan Lainnya (1,4%). Sebaran umur, pendapatan, dan hari nasabah sejak menjadi anggota ditunjukkan pada gambar berikut. Plot kepadatan telah dikelompokkan berdasarkan gender. Perhatikan bahwa usia pelanggan berkisar pada usia 50 tahun. Distribusinya hampir normal, kecuali sedikit untuk Pria pada usia 25 tahun. Terdapat lebih banyak pria muda dibandingkan wanita muda yang bersedia mengikuti program keanggotaan Starbucks. Distribusi pendapatan menurut kelompok gender juga berbeda. Seperti yang ditunjukkan pada gambar tengah, pendapatan rata-rata pelanggan adalah ~55K untuk Wanita dan ~75K untuk Pria. Perbedaan kepadatan hari anggota di antara gender yang berbeda dapat diabaikan, dengan puncaknya sekitar 1600 hari.

Bagian II Bagaimana tanggapan pelanggan terhadap promosi secara berbeda?

Ada tiga jenis penawaran: bogo, diskon, dan informasional. Setelah penawaran ini dikirimkan, pelanggan mungkin melakukan satu atau beberapa tindakan berikut: penawaran diterima, penawaran dilihat, dan penawaran diselesaikan. Karena jenis penawaran “informasional” tidak memiliki tindakan “penawaran selesai” yang terkait, kami menghapusnya dari beberapa analisis di masa mendatang. Pertanyaan pertama kami adalah: antara penawaran bogo dan diskon, mana yang lebih populer? Seperti terlihat pada gambar berikut, kedua penawaran dikirimkan hampir sama. Meskipun lebih banyak penawaran bogo yang ditinjau daripada penawaran diskon, lebih banyak penawaran diskon yang diselesaikan.

Pertanyaan lain yang ingin kami ajukan adalah: bagaimana tanggapan gender yang berbeda terhadap tawaran tersebut. Seperti terlihat pada gambar berikut, sangat menarik untuk diperhatikan bahwa meskipun lebih banyak tawaran yang dikirimkan kepada laki-laki, dan lebih banyak tawaran yang dilihat oleh laki-laki, hanya sebagian kecil laki-laki yang menyelesaikan tawaran tersebut. Dengan kata lain, perempuan lebih mungkin untuk menyelesaikan tawaran dibandingkan laki-laki, meskipun jumlah tawaran yang dikirimkan kepada perempuan lebih sedikit.

Karena penawaran yang dikirim ke grup berbeda mungkin berbeda, penting untuk menghitung tingkat penyelesaian untuk mengevaluasi efektivitas penawaran. Berikut ini, kami akan menghitung tiga metrik baru: dilihat/diterima, selesai/dilihat, dan selesai/diterima. Di sini, rasio dilihat/diterima menunjukkan seberapa menarik penawaran tersebut pada pandangan pertama, sehingga menyebabkan pelanggan bersedia melihatnya. Rasio selesai/dilihat dan selesai/diterima menunjukkan seberapa efektif penawaran tersebut dan apakah pelanggan bersedia menggunakannya. Perhatikan bahwa beberapa pelanggan mungkin menyelesaikan penawaran tanpa menyadarinya (atau melihat) penawaran tersebut, yang menunjukkan bahwa penawaran tersebut tidak efektif untuk pelanggan tertentu.

Tabel rasio penyelesaian dan plot ditunjukkan pada gambar berikut. Data tersebut semakin memvalidasi kesimpulan kami sebelumnya: penawaran diskon lebih efektif daripada penawaran bogo. Baik rasio selesai/diterima maupun rasio selesai/dilihat untuk penawaran diskon jauh lebih besar dibandingkan penawaran bogo. Jika dibandingkan berdasarkan gender, pelanggan perempuan memiliki rasio selesai/diterima dan selesai/dilihat jauh lebih besar dibandingkan pelanggan laki-laki.

Kami juga dapat menelusuri lebih dalam untuk memahami bagaimana perbedaan gender + jenis penawaran dapat memengaruhi rasio penyelesaian. Menarik untuk diperhatikan bahwa pelanggan wanita lebih banyak berolahraga dibandingkan pelanggan pria untuk semua jenis penawaran. Untuk kasus penawaran bogo, rasio selesai/diterima adalah 68,3% untuk perempuan, dan 49,4% untuk laki-laki. Untuk penawaran diskon, rasio selesai/diterima adalah 72,9% untuk perempuan dan 68,3% untuk laki-laki.

Penawaran dapat disampaikan melalui saluran yang berbeda termasuk web, email, seluler, dan sosial. Pelanggan yang berbeda mungkin memandang tawaran secara berbeda melalui berbagai saluran. Di sini, kami mengelompokkan semua transkrip berdasarkan jenis penawaran dan saluran penyampaian, dan membandingkan rasio selesai/diterima menurut jenis kelamin pria/wanita. Seperti terlihat pada gambar dan tabel berikut, di semua skenario, perempuan memberikan respons yang lebih positif terhadap tawaran tersebut dibandingkan laki-laki, hal ini terlihat dari rasio penyelesaian yang lebih tinggi. Menarik untuk dicatat bahwa perempuan paling banyak merespons penawaran diskon yang disampaikan melalui media sosial dengan rasio penyelesaian ~81,7%, sedangkan laki-laki paling sedikit merespons penawaran bogo yang disampaikan melalui media sosial dengan rasio penyelesaian ~47,4%. Kesimpulannya sangat jelas: ketika anggaran terbatas, kirimkan penawaran diskon kepada perempuan melalui media sosial daripada mengirimkan penawaran bogo kepada laki-laki melalui saluran sosial.

Pemrosesan Awal Data

1. Data portofolio: ada dua kolom dalam data portofolio yang memerlukan pengkodean one-hot. Kolom saluran berisi web, email, seluler, dan sosial. Kolom offer_type berisi jenis bogo, informasional, dan diskon.

2. Data profil: terdapat ~12,79% pelanggan yang tidak memberikan informasi jenis kelamin, pendapatan, dan usia. Pelanggan ini akan dihapus dari model kami. Kolom menjadi_anggota_on digunakan untuk menghitung dua fitur lagi: hari anggota mewakili total hari setelah pelanggan menjadi anggota; year_join mewakili tahun ketika pelanggan menjadi anggota.

3. Data transkrip: kolom nilai akan dibongkar untuk mengekstrak nilai offer_id. Kolom peristiwa akan dikodekan secara one-hot, dan tiga kolom baru: penawaran diterima, penawaran dilihat, dan penawaran selesai akan ditambahkan ke kerangka data.

4. Label “berhasil” dihitung berdasarkan kriteria berikut: jika penawaran dikirimkan, dilihat, dan diselesaikan, label keberhasilan akan menjadi Benar; jika penawaran tidak diselesaikan, atau jika penawaran telah diselesaikan tetapi belum dilihat, label keberhasilannya adalah Salah

5. Kumpulan data komprehensif yang mengumpulkan informasi portofolio, profil, transkrip, dan label digunakan untuk pendekatan ML.

Penerapan

Dari analisis di atas, kita melihat bahwa ada banyak faktor yang mempengaruhi perilaku pelanggan dan efektivitas penawaran promosi. Kami telah menunjukkan bahwa jenis kelamin, jenis penawaran, dan saluran penyampaian penawaran semuanya memengaruhi tingkat penyelesaian penawaran. Ada banyak faktor lain, seperti pendapatan dan hari anggota pelanggan serta imbalan dan kesulitan penawaran yang dapat memengaruhi efektivitas penawaran. Penting untuk membangun model prediktif untuk mengantisipasi perilaku pelanggan.

Efektivitas penawaran diukur melalui tindakan pelanggan setelah mereka menerima penawaran. Kolom “sukses” baru telah dibuat. Jika pelanggan menerima penawaran, melihatnya, dan menyelesaikannya nanti, kolom “sukses” diberi label “Ya”. Di sisi lain, jika pelanggan menerima penawaran tetapi tidak pernah menyelesaikannya, atau dia menyelesaikannya bahkan tanpa melihatnya, kolom “berhasil” diberi label “Tidak”. Dari seluruh dataset, 42,6% observasi berlabel Ya, dan 57,4% observasi berlabel Tidak. Data dalam keadaan seimbang.

Fitur berikut digunakan untuk membangun model prediktif: 'usia', 'pendapatan', 'hari anggota', 'F', 'M', 'O', 'hadiah', 'kesulitan', 'durasi', 'web' , 'seluler', 'sosial', 'bogo', 'diskon', 'informasional'. Alasan kami menghapus “email” dari daftar prediktor kami adalah karena saluran email disajikan dalam semua observasi.

Kumpulan data dibagi menjadi kumpulan data pelatihan dan pengujian. Awalnya kami menguji empat pengklasifikasi (LogisticRegression, RandomForestClassifier, GradientBoostingClassifier, KNeighborsClassifier) ​​untuk memperkirakan kinerja pengklasifikasi yang berbeda. Untuk setiap pengklasifikasi, kami menggunakan parameter pemasangan default agar sesuai dengan data pelatihan, menghitung keakuratan kumpulan data pelatihan dan pengujian. Hasilnya ditunjukkan sebagai berikut: (“detail”).

· LogisticRegression: akurasi pelatihan: 0,611, akurasi pengujian: 0,618

· RandomForestClassifier: akurasi pelatihan: 1.000, akurasi pengujian: 0.741

· GradientBoostingClassifier: akurasi pelatihan: 0,770, akurasi pengujian: 0,765

· KNeighborsClassifier: akurasi pelatihan: 0,760, akurasi pengujian: 0,620

Seperti yang ditunjukkan di atas, pengklasifikasi Logistik dan pengklasifikasi KNN memiliki akurasi pengujian yang relatif rendah. Pengklasifikasi hutan acak memiliki skor pelatihan dan pengujian yang berbeda, yang menunjukkan bahwa model tersebut memiliki masalah overfitting. Kami akan memilih Gradient Boosting Classifier untuk penyesuaian lebih lanjut.

Penyempurnaan, Evaluasi, dan Validasi

Scaler min-max digunakan untuk mengubah fitur selama proses penyempurnaan model Gradient Boosting Classifier. Saluran pipa dibuat untuk menyesuaikan dan memvalidasi model. Parameter pencarian grid dibuat dengan n_estimators = [100, 120, 140], dan min_sample_split=[2, 3]. Parameter terbaik dari pencarian grid adalah n_estimators=140 dan min_sample_split=2. Dengan model yang disempurnakan, kami mencapai akurasi pelatihan sebesar 0,773 dan akurasi pengujian 0,767. Nilai tersebut sedikit lebih tinggi dibandingkan skor yang diperoleh dari model dengan parameter pelatihan default. (Akurasi pelatihan: 0,770, akurasi pengujian: 0,765) ("detail")

Justifikasi, Refleksi, dan implementasi lebih lanjut

Pada artikel ini, kami menjelajahi distribusi profil pelanggan. Kami mengeksplorasi lebih jauh bagaimana berbagai pelanggan merespons penawaran secara berbeda. Jelasnya, suatu penawaran tidak boleh dikirimkan secara membabi buta karena pelanggan yang berbeda bereaksi secara unik terhadap jenis penawaran dan saluran penyampaian penawaran. Ada tiga kesimpulan utama:

1) Penawaran diskon lebih diterima daripada penawaran bogo

2)Respon perempuan jauh lebih baik dibandingkan laki-laki

3) Promosi melalui media sosial lebih efektif dibandingkan saluran lain

Kami juga membangun model prediktif yang dapat mengklasifikasikan efektivitas penawaran. Dengan asumsi kami tidak memiliki model prediktif, dan kami akan mengirimkan penawaran ke semua pelanggan. Dari seluruh pengamatan, 42,6% diberi label “Benar”. Skor akurasi dalam kasus seperti ini adalah 0,426. Model yang kami terapkan akan meningkatkan skor akurasi dari 0,426 menjadi 0,767 yang merupakan peningkatan mutlak sebesar 34,1%.

Untuk mengetahui lebih lanjut tentang analisis ini, lihat tautan ke Github saya yang tersedia di sini.