
Data Science: Definisi dan Aplikasi Praktis
Data science adalah bidang studi yang relatif baru namun berkembang pesat dan multidisipliner serta digunakan di banyak ranah. Bidang ini menggunakan berbagai teknik analitik lanjutan dan algoritme pemodelan prediktif untuk mengekstrak wawasan bermakna dari data guna membantu menjawab pertanyaan strategis bisnis atau ilmiah. Data science menggabungkan beragam keterampilan, mulai dari yang teknis (pemrograman, aljabar linear, statistika, dan pemodelan) hingga nonteknis (representasi dan komunikasi hasil yang efektif). Selain itu, bergantung pada industri tempat data science diterapkan, diperlukan pengetahuan domain yang kuat agar dapat menafsirkan informasi yang tersedia dan wawasan yang diperoleh secara tepat.
Algoritme data science dapat diterapkan dengan baik pada berbagai konteks di mana banyak data dikumpulkan atau dapat dikumpulkan: keuangan, niaga, pemasaran, manajemen proyek, asuransi, kedokteran, pendidikan, manufaktur, HR, linguistik, sosiologi, dan lain-lain. Praktisnya, industri atau disiplin ilmu apa pun dapat meraih manfaat besar dari pengumpulan, pengelolaan, analisis, dan pemodelan data mereka.
Apa itu Use Case Data Science?
Use case data science adalah tugas nyata di dunia nyata yang diselesaikan menggunakan data yang tersedia. Dalam kerangka perusahaan tertentu, banyak variabel dianalisis dengan teknik data science dalam konteks industri spesifik perusahaan. Use case data science bisa berupa masalah yang perlu dipecahkan, hipotesis yang perlu diuji, atau pertanyaan yang perlu dijawab. Intinya, melakukan data science berarti menyelesaikan use case dunia nyata.
Meskipun isi setiap use case kemungkinan besar sangat berbeda, ada beberapa hal umum yang selalu perlu diingat:
- Perencanaan use case data science meliputi: merumuskan tujuan dan hasil yang jelas, memahami ruang lingkup pekerjaan, menilai sumber daya yang tersedia, menyediakan data yang dibutuhkan, mengevaluasi risiko, dan mendefinisikan KPI sebagai tolok ukur keberhasilan.
- Pendekatan paling umum untuk menyelesaikan use case data science adalah: peramalan, klasifikasi, deteksi pola dan anomali, rekomendasi, dan pengenalan gambar.
- Beberapa use case data science merepresentasikan tugas-tugas tipikal lintas bidang dan Anda dapat mengandalkan pendekatan serupa untuk menyelesaikannya, seperti prediksi churn pelanggan, segmentasi pelanggan, deteksi penipuan, sistem rekomendasi, dan optimalisasi harga.
Bagaimana Cara Menyelesaikan Studi Kasus Data Science?
Jawaban untuk pertanyaan ini sangat spesifik kasus, dipengaruhi oleh strategi bisnis perusahaan, dan bergantung pada inti studi kasus itu sendiri. Namun, merumuskan peta jalan umum untuk diikuti dalam use case data science apa pun dapat membantu:
- Merumuskan pertanyaan yang tepat. Langkah pertama ini sangat penting dan mencakup peninjauan literatur yang tersedia dan studi kasus yang ada, meninjau praktik terbaik, mengelaborasi teori yang relevan dan hipotesis kerja, serta mengisi potensi celah dalam keahlian domain. Hasilnya, kita harus menghasilkan pertanyaan yang jelas untuk dijawab dalam studi kasus yang diminati.
- Pengumpulan data. Pada langkah ini, kita melakukan inventarisasi dan pengumpulan data. Dalam praktik, kita sering memiliki data yang tidak representatif, tidak lengkap, cacat, dan tidak terstruktur, yaitu jauh dari tabel informasi lengkap yang mudah dibaca dan siap dianalisis. Oleh karena itu, kita harus mencari dan mengidentifikasi semua sumber data yang mungkin bermanfaat untuk topik kita. Data yang diperlukan dapat ditemukan di arsip perusahaan, di-scrape dari web, atau diperoleh dari sponsor, dan sebagainya.
- Data wrangling. Ini biasanya bagian yang paling menyita waktu dan sumber daya dari proyek data science mana pun. Kualitas dan representativitas data yang dikumpulkan diestimasi dan eksplorasi data awal dilakukan. Data dibersihkan, dipraproses, ditransformasi, dimanipulasi, dan dipetakan dari bentuk mentahnya ke format yang lebih sesuai.
- Analisis dan pemodelan data. Data yang telah dibersihkan dianalisis dari sudut status saat ini, lalu dipasangkan ke dalam model statistik prediktif yang dipilih. Akurasi model dievaluasi dan, jika belum memuaskan, pendekatan pemodelan lain dicoba. Ini diulang hingga diperoleh model yang memprediksi skenario masa depan dengan presisi tertinggi. Maka dari itu, proses ini, seperti halnya yang sebelumnya, dapat cukup iteratif.
- Komunikasi hasil. Dibandingkan dengan langkah-langkah sebelumnya, yang ini lebih menuntut keterampilan komunikasi dan soft skill ketimbang pemrograman dan keahlian teknis. Termasuk berbagi temuan terpenting dan simpulan akhir dengan manajemen, pemegang saham, dan pihak terkait lainnya. Wawasan biasanya direpresentasikan dalam bentuk laporan, artikel, dan slide presentasi, yang menguraikan langkah-langkah lanjutan yang potensial.
Use Case Data Science menurut Industri
Use case data science dapat terkait dengan hampir semua industri di mana sejumlah besar data dikumpulkan atau dapat diakumulasikan. Pada bab ini, kita akan membahas beberapa use case data science yang khas dari bidang-bidang yang paling diminati berikut: logistik, kesehatan, dan telekomunikasi. Beberapa use case yang akan kita bahas bersifat interdisipliner dan mudah ditemui di banyak ranah lain. Hal ini membuatnya lebih universal dan aplikatif, sehingga patut memahami pendekatan umum untuk menyelesaikannya. Selain itu, untuk masing-masing industri terpilih, kita akan menguraikan beberapa topik lain yang dapat dimodelkan dengan metode data science.
Data Science di Bidang Kesehatan
Pada tiga bab sebelumnya, kita membahas bagaimana metode data science dapat membantu perusahaan dari berbagai industri meningkatkan pendapatan mereka. Ketika menyangkut layanan kesehatan, pemanfaatan dan penafsiran data yang tersedia secara tepat tidak hanya bermanfaat bagi pemasar di sektor ini, tetapi juga dapat membantu diagnosis tepat waktu terhadap penyakit serius dan bahkan menyelamatkan nyawa.
Kedokteran dan penyedia layanan kesehatan mengumpulkan sejumlah besar data dari berbagai sumber: sistem rekam kesehatan elektronik (EHR), data dari perangkat wearable, studi penelitian medis, dan dokumen penagihan. Memanfaatkan teknik data science dan analisis data yang inovatif secara bertahap merevolusi seluruh industri kesehatan, menawarkan solusi paling menjanjikan dan berdampak untuk pengembangannya di masa depan. Secara khusus, beberapa bidang kesehatan yang sangat terspesialisasi seperti genetika, kedokteran reproduksi, onkologi, bioteknologi, radiografi, diagnostik prediktif, dan farmasi telah naik ke level yang benar-benar baru berkat terbukanya potensi penuh data mereka.
Untuk memahami lebih baik bagaimana data science bermanfaat dalam kedokteran, mari fokus pada salah satu use case paling klasik.
Use case data science di kesehatan: Prediksi kanker payudara
Menurut World Cancer Research Fund International, kanker payudara adalah jenis kanker paling umum di kalangan perempuan dan yang kedua paling umum secara keseluruhan. Mendiagnosis patologi payudara tepat waktu, baik jinak maupun ganas, sangat penting karena secara signifikan meningkatkan peluang keberhasilan pengobatan dan angka kelangsungan hidup. Di sinilah data science membantu.
Perkembangan metode penambangan data dikombinasikan dengan algoritme pembelajaran mesin memungkinkan kita memprediksi risiko kanker payudara, mendeteksi potensi anomali pada tahap awal, memperkirakan dinamikanya, dan dengan demikian menyusun rencana optimal untuk melawan penyakit. Intinya, ini adalah masalah klasifikasi yang khas dalam pembelajaran mesin. Kabar baiknya, karena jenis onkologi ini cukup umum di mana-mana, banyak penelitian mendalam telah dilakukan di seluruh dunia dan, sebagai hasilnya, berton-ton data telah terkumpul dari pasien di berbagai belahan dunia.
Masalah utama saat menggunakan dataset seperti ini dalam pengklasifikasi adalah ketidakseimbangan yang kuat. Misalnya, ketika hasil direpresentasikan sebagai kanker/tidak kanker, probabilitas memiliki patologi (entri dataset yang termasuk kelas minoritas) jauh lebih rendah daripada probabilitas tidak memiliki patologi (entri yang termasuk kelas mayoritas). Akibatnya, algoritme cenderung mengklasifikasikan kasus baru sebagai non-patologis. Maka, untuk menilai akurasi model semacam itu secara lebih efisien, masuk akal untuk menerapkan F1-score sebagai metrik evaluasi, karena metrik ini mengestimasi false positive (galat tipe I) dan false negative (galat tipe II) alih-alih kasus ketika algoritme mengklasifikasikan entri dengan benar.
Mari lihat dataset dunia nyata tentang Kanker Payudara dari salah satu negara bagian AS. Fitur-fitur dijelaskan secara rinci dalam dokumentasi, tetapi singkatnya, ini adalah nilai rata-rata, galat baku, dan nilai terbesar dari atribut setiap citra terdigitasi yang menampilkan inti sel dari massa payudara seorang perempuan. Setiap entri dalam dataset terkait dengan perempuan yang memiliki tumor ganas atau jinak (yaitu, semua perempuan dalam pertanyaan memiliki semacam tumor). Atributnya mencakup jari-jari sel, tekstur, kehalusan, kekompakan, kekecekungan, simetri, dan lain-lain.
import pandas as pd
cancer_data = pd.read_csv('data.csv')
pd.options.display.max_columns = len(cancer_data)
print(f'Number of entries: {cancer_data.shape[0]:,}\n'
f'Number of features: {cancer_data.shape[1]:,}\n\n'
f'Number of missing values: {cancer_data.isnull().sum().sum()}\n\n'
f'{cancer_data.head(2)}')
Number of entries: 569
Number of features: 33
Number of missing values: 569
id diagnosis radius_mean texture_mean perimeter_mean area_mean \
0 842302 M 17.99 10.38 122.8 1001.0
1 842517 M 20.57 17.77 132.9 1326.0
smoothness_mean compactness_mean concavity_mean concave points_mean \
0 0.11840 0.27760 0.3001 0.14710
1 0.08474 0.07864 0.0869 0.07017
symmetry_mean fractal_dimension_mean radius_se texture_se perimeter_se \
0 0.2419 0.07871 1.0950 0.9053 8.589
1 0.1812 0.05667 0.5435 0.7339 3.398
area_se smoothness_se compactness_se concavity_se concave points_se \
0 153.40 0.006399 0.04904 0.05373 0.01587
1 74.08 0.005225 0.01308 0.01860 0.01340
symmetry_se fractal_dimension_se radius_worst texture_worst \
0 0.03003 0.006193 25.38 17.33
1 0.01389 0.003532 24.99 23.41
perimeter_worst area_worst smoothness_worst compactness_worst \
0 184.6 2019.0 0.1622 0.6656
1 158.8 1956.0 0.1238 0.1866
concavity_worst concave points_worst symmetry_worst \
0 0.7119 0.2654 0.4601
1 0.2416 0.1860 0.2750
fractal_dimension_worst Unnamed: 32
0 0.11890 NaN
1 0.08902 NaN
Mari kita hapus kolom terakhir yang hanya berisi nilai hilang:
cancer_data = cancer_data.drop('Unnamed: 32', axis=1)
Berapa banyak perempuan, dalam %, yang terkonfirmasi kanker (tumor payudara ganas)?
round(cancer_data['diagnosis'].value_counts()*100/len(cancer_data)).convert_dtypes()
B 63
M 37
Name: diagnosis, dtype: Int64
37% dari seluruh responden mengidap kanker payudara, sehingga dataset ini sebenarnya cukup seimbang.
Karena nilai variabel diagnosis bersifat kategorikal, kita harus mengenkodenya menjadi bentuk numerik untuk penggunaan selanjutnya dalam pembelajaran mesin. Sebelum itu, mari pisahkan data menjadi fitur prediktor dan variabel target diagnosis:
X = cancer_data.iloc[:, 2:32].values
y = cancer_data.iloc[:, 1].values
# Encoding categorical data
from sklearn.preprocessing import LabelEncoder
labelencoder_y = LabelEncoder()
y = labelencoder_y.fit_transform(y)
Sekarang, mari buat train set dan test set lalu lakukan penskalaan fitur:
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
Untuk memodelkan data kita, mari terapkan algoritme pemodelan berikut dengan parameter defaultnya: k-nearest neighbors (KNN) dan regresi logistik:
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
# KNN
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
knn_predictions = knn.predict(X_test)
# Logistic regression
lr = LogisticRegression()
lr.fit(X_train, y_train)
lr_predictions = lr.predict(X_test)
Kita lihat sebelumnya bahwa dataset kita cukup seimbang, jadi kita dapat menggunakan metrik evaluasi accuracy score untuk mengidentifikasi model yang paling akurat:
from sklearn.metrics import accuracy_score
print(f'Accuracy scores:\n'
f'KNN model:\t\t {accuracy_score(y_test, knn_predictions):.3f}\n'
f'Logistic regression model: {accuracy_score(y_test, lr_predictions):.3f}')
Accuracy scores:
KNN model: 0.956
Logistic regression model: 0.974
Berdasarkan data kita, model regresi logistik berkinerja terbaik saat memprediksi tumor payudara ganas/jinak bagi perempuan dengan patologi payudara yang terdeteksi dalam bentuk apa pun.
Untuk langkah lanjutan, mengingat algoritme regresi logistik tidak memiliki parameter kritis untuk disetel, kita dapat bereksperimen dengan berbagai pendekatan pembagian train/test dan/atau berbagai teknik pemodelan prediktif.
Use case data science umum lainnya di kesehatan:
- pemantauan data real-time dari perangkat wearable
- analitik prediktif
- analisis citra medis
- penemuan obat
- riset genetika
- asisten virtual
- manajemen data pelanggan
Data Science di Transportasi dan Logistik
Logistik adalah pengorganisasian proses pengiriman produk dari satu titik ke titik lain, sedangkan transportasi mengacu pada tindakan mengangkut pelanggan atau barang. Bergantung pada profil aktivitas perusahaan (misalnya, pengiriman makan siang, layanan pos, pengiriman internasional, maskapai, dan layanan taksi atau bus), sumber data dapat berupa jadwal, lembar waktu, detail rute, inventaris stok gudang, laporan, kontrak, perjanjian, dokumen legal, dan umpan balik pelanggan. Data itu sendiri dapat terstruktur atau tidak terstruktur dan mencakup informasi tentang waktu, perjalanan, rute, koordinat, data pelanggan, detail barang, biaya dan harga.
Efisiensi bisnis di sektor rantai pasok dan transportasi tidak selalu lurus-lurus saja dan bergantung pada banyak faktor: masalah lalu lintas yang tak terduga, kualitas rute, kondisi cuaca, keadaan darurat, fluktuasi harga bahan bakar, kekurangan stok gudang, kerusakan teknis, penundaan pengiriman terkait keamanan, regulasi pemerintah dan sanksi, dan banyak lagi. Selain itu, dalam beberapa tahun terakhir banyak perusahaan baru bermunculan di pasar, dan persaingan di industri ini menjadi cukup ketat. Maka, untuk tetap bersaing dan meningkatkan produktivitas operasional, menjadi keharusan bagi setiap perusahaan logistik/transportasi untuk menganalisis big data dan mengubahnya menjadi wawasan bermakna.
Secara konkret, bagaimana data science dapat membantu sektor transportasi dan logistik? Berikut daftar yang tentu belum lengkap dari potensi penerapannya:
- melacak seluruh proses transportasi secara end-to-end,
- membuat semua aktivitas sepenuhnya otomatis dan transparan,
- pengiriman tepat waktu,
- optimasi rute,
- penetapan harga dinamis,
- memelihara stok pasokan,
- melindungi barang yang mudah rusak,
- memantau kondisi kendaraan,
- meningkatkan jaringan produksi,
- meningkatkan layanan pelanggan.
Use case data science di transportasi dan logistik: Mengidentifikasi penempatan optimal kendaraan taksi
Uber Technologies Inc., atau Uber, adalah perusahaan Amerika yang menyediakan berbagai layanan logistik dan transportasi. Dalam studi kasus ini, kita akan melakukan klasterisasi data GPS ride-sharing Uber untuk mengidentifikasi penempatan optimal kendaraan taksi. Secara khusus, ini berguna untuk tujuan berikut:
- Setiap permintaan perjalanan baru ditetapkan ke klaster terdekat, sehingga Uber mengirim mobil terdekat dari klaster tersebut ke lokasi pelanggan.
- Dengan menganalisis klaster yang teridentifikasi dari sudut beban kerjanya, opsional per jam atau hari dalam seminggu, Uber dapat mendistribusikan ulang mobil terlebih dahulu dan mengirimkannya ke lokasi yang paling strategis yang lebih diminati pelanggan.
- Bergantung pada rasio permintaan/penawaran di berbagai klaster, perusahaan dapat menyesuaikan tarif harga secara dinamis.
Kita akan menggunakan dataset dari FiveThirtyEight tentang perjalanan Uber di New York pada April 2014:
import pandas as pd
uber_data = pd.read_csv('uber-raw-data-apr14.csv')
print(f'Number of trips: {uber_data.shape[0]:,}\n\n'
f'{uber_data.head()}')
Number of trips: 564,516
Date/Time Lat Lon Base
0 4/1/2014 0:11:00 40.7690 -73.9549 B02512
1 4/1/2014 0:17:00 40.7267 -74.0345 B02512
2 4/1/2014 0:21:00 40.7316 -73.9873 B02512
3 4/1/2014 0:28:00 40.7588 -73.9776 B02512
4 4/1/2014 0:33:00 40.7594 -73.9722 B02512
Mari visualisasikan secara skematis semua titik penjemputan, dengan memperhatikan bahwa bujur sesuai sumbu x dan lintang sumbu y:
import matplotlib.pyplot as plt
plt.scatter(uber_data.iloc[:, 2], uber_data.iloc[:, 1])
plt.show()
Untuk mengklaster data ini, mari gunakan algoritme pembelajaran mesin tanpa supervisi bernama k-means clustering. Gagasan di balik pendekatan ini adalah membagi semua sampel data menjadi beberapa kelompok dengan varians yang serupa. Intinya, algoritme menerima jumlah klaster n_clusters (default 8) dan memisahkan data sesuai nilai tersebut. Untuk mengetahui jumlah klaster optimal, digunakan metode siku (elbow) secara grafis. Ini mencakup langkah-langkah berikut:
- Melatih beberapa model dengan jumlah klaster berbeda dan mengumpulkan nilai WCSS (Within Cluster Sum of Squares) untuk masing-masing, yaitu jumlah kuadrat jarak pengamatan dari centroid klaster terdekat.
- Memplot nilai WCSS terhadap jumlah klaster yang bersesuaian.
- Memilih jumlah klaster terendah di mana terjadi penurunan WCSS yang signifikan.
from sklearn.cluster import KMeans
wcss = []
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, random_state=1)
kmeans.fit(uber_data[['Lat', 'Lon']])
wcss.append(kmeans.inertia_)
plt.figure(figsize=(12, 5))
plt.plot(range(1, 11), wcss)
plt.title('Elbow Method', fontsize=25)
plt.xlabel('Number of clusters', fontsize=18)
plt.ylabel('WCSS', fontsize=18)
plt.xticks(ticks=list(range(1, 11)),
labels=['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'])
plt.show()

Dalam kasus kita, jumlah klaster yang paling tepat tampaknya 7. Mari gunakan nilai ini untuk melatih model dan memprediksi nomor klaster untuk setiap titik penjemputan. Kita juga akan menggambarkan entri data secara grafis sekali lagi, kali ini menambahkan lokasi tujuh centroid klaster:
kmeans = KMeans(n_clusters=7, random_state=1)
kmeans.fit_predict(df[['Lat', 'Lon']])
plt.scatter(uber_data.iloc[:, 2], uber_data.iloc[:, 1])
plt.scatter(kmeans.cluster_centers_[:, 1], kmeans.cluster_centers_[:, 0], s=100, c='lime')
plt.show()
Sekarang, kita akan mengekstrak koordinat tepat untuk semua centroid dan menampilkannya secara terpisah, tanpa data itu sendiri:
centroids = pd.DataFrame(kmeans.cluster_centers_)
centroids.columns = ['Lat', 'Lon']
print(centroids)
plt.scatter(centroids['Lon'], centroids['Lat'])
plt.show()
Lat Lon
0 40.688588 -73.965694
1 40.765423 -73.973165
2 40.788001 -73.879858
3 40.656997 -73.780035
4 40.731074 -73.998644
5 40.700541 -74.201673
6 40.971229 -73.611288
Akan lebih ilustratif jika menampilkan centroid ini pada peta Kota New York:
import folium
centroids_values = centroids.values.tolist()
nyc_map = folium.Map(location=[40.79659011772687, -73.87341741832425], zoom_start=50000)
for point in range(0, len(centroids_values)):
folium.Marker(centroids_values[point], popup=centroids_values[point]).add_to(nyc_map)
nyc_map

Menggunakan model kita, kita dapat memprediksi klaster terdekat untuk lokasi mana pun di New York yang diekspresikan dalam koordinat geografis. Secara praktis, ini berarti Uber akan mengirim taksi yang tersedia dari lokasi terdekat dan melayani pelanggan lebih cepat.
Mari cari klaster terdekat untuk Lincoln Center for the Performing Arts di borough Manhattan:
lincoln_center = [(40.7725, -73.9835)]
kmeans.predict(lincoln_center)
array([1])
Dan untuk Howard Beach di borough Queens:
howard_beach = [(40.6571, -73.8430)]
kmeans.predict(howard_beach)
array([3])
Untuk langkah lanjutan, kita dapat mempertimbangkan menerapkan algoritme klasterisasi pembelajaran mesin lain, menganalisis potongan data yang berbeda (per jam/hari dalam minggu/bulan), menemukan klaster paling dan paling sedikit terbebani, atau mencari hubungan antara klaster yang teridentifikasi dan variabel Base dari dataframe.
Use case data science umum lainnya di transportasi dan logistik:
- penyesuaian harga dinamis sesuai permintaan-penawaran
- peramalan permintaan
- otomatisasi operasi manual
- kendaraan otonom
- visibilitas rantai pasok
- deteksi kerusakan
- manajemen gudang
- analisis sentimen pelanggan
- chatbot layanan pelanggan
Data Science di Telekomunikasi
Dalam dua dekade terakhir, teknologi telekomunikasi berkembang sangat cepat dan memasuki tahap baru dalam perkembangannya. Kini, kita dikelilingi oleh perangkat elektronik segala jenis, dan banyak orang menjadi benar-benar bergantung pada internet, khususnya jejaring sosial dan perpesanan. Terkadang ketergantungan perangkat ini dikritik karena menggantikan komunikasi tatap muka nyata. Namun, kita harus mengakui bahwa telekomunikasi membuat hidup kita jauh lebih mudah, memungkinkan kita terhubung dengan orang di seluruh dunia dalam hitungan detik.
Hal ini terutama terasa pada periode pandemi COVID-19 ketika banyak perusahaan dan sekolah mengadopsi skema kerja atau belajar jarak jauh. Dalam realitas yang berubah cepat seperti itu, kualitas dan kelancaran konektivitas digital menjadi sangat penting di semua ranah. Masa lockdown membuat orang perlu menelepon dan mengirim pesan ke rekan kerja, kerabat, dan teman jauh lebih sering daripada sebelumnya. Semua kecenderungan baru ini menyebabkan eskalasi besar dalam volume telekomunikasi, yang pada gilirannya menghasilkan data dalam jumlah sangat besar di industri ini.
Menggunakan metode data science untuk mengolah data yang terakumulasi dapat membantu industri telekomunikasi dalam banyak hal:
- merampingkan operasi,
- mengoptimalkan jaringan,
- menyaring spam,
- meningkatkan transmisi data,
- melakukan analitik real-time,
- mengembangkan strategi bisnis yang efisien,
- menciptakan kampanye pemasaran yang sukses,
- meningkatkan pendapatan.
Mari bahas lebih rinci tugas data science yang umum di telekomunikasi, terkait mendeteksi dan menyaring pesan yang tidak diinginkan.
Use case data science di telekomunikasi: Membangun penyaring spam
Penyaringan spam adalah fungsi vital dari semua saluran komunikasi tertulis modern karena melindungi kita dari bombardir email harian yang mencoba menipu uang kita. Secara teknis, ini adalah contoh lain dari masalah klasifikasi: berdasarkan data historis, setiap pesan masuk baru diberi label sebagai ham (yaitu pesan normal) lalu dikirim langsung ke penerima, atau sebagai spam, lalu diblokir atau masuk ke folder spam.
Algoritme pembelajaran mesin terawasi yang populer untuk tujuan ini adalah pengklasifikasi Naive Bayes. Algoritme ini didasarkan pada teorema senama dalam teori probabilitas, sementara "naive" merujuk pada asumsi dasar bahwa semua kata dalam setiap pesan saling independen. Asumsi ini tidak sepenuhnya benar karena mengabaikan keberadaan representasi kata alami dan konteks. Namun, dalam sebagian besar tugas klasifikasi teks dengan data sedikit, pendekatan ini cenderung bekerja dengan baik dan membuat prediksi yang akurat.
Ada beberapa versi pengklasifikasi Naive Bayes, masing-masing dengan kasus penerapannya sendiri: multinomial, Bernoulli, Gaussian, dan flexible Bayes. Jenis terbaik untuk kasus kita (deteksi spam) adalah pengklasifikasi Naive Bayes multinomial. Algoritme ini didasarkan pada hitungan frekuensi diskret dari fitur kategorikal atau kontinu yang merepresentasikan jumlah kata dalam setiap pesan.
Mari terapkan penyaringan spam Naive Bayes multinomial pada SMS Spam Collection Data Set dari UCI Machine Learning Repository.
import pandas as pd
sms_data = pd.read_csv('SMSSpamCollection', sep='\t', header=None, names=['Label', 'SMS'])
print(f'Number of messages: {sms_data.shape[0]:,}\n\n'
f'{sms_data.head()}')
Number of messages: 5,572
Label SMS
0 ham Go until jurong point, crazy.. Available only ...
1 ham Ok lar... Joking wif u oni...
2 spam Free entry in 2 a wkly comp to win FA Cup fina...
3 ham U dun say so early hor... U c already then say...
4 ham Nah I don't think he goes to usf, he lives aro...
Ada 5.572 pesan yang diklasifikasikan manusia. Berapa banyak di antaranya (dalam %) yang merupakan spam?
round(sms_data['Label'].value_counts()*100/len(sms_data)).convert_dtypes()
ham 87
spam 13
Name: Label, dtype: Int64
13% SMS diidentifikasi secara manual sebagai spam.
Untuk menyiapkan data bagi klasifikasi Naive Bayes multinomial, pertama kita harus menyelesaikan langkah-langkah berikut:
- Mengkoding label dari string ke format numerik. Dalam kasus kita label bersifat biner, sehingga akan dikodekan sebagai 0/1.
- Mengekstrak variabel prediktor dan target.
- Membagi data menjadi train set dan test set
- Memvektorisasi string dari kolom SMS pada train set dan test set prediktor untuk memperoleh matriks CSR (compressed sparse row).
Langkah ke-4 perlu penjelasan lebih rinci. Di sini kita membuat objek matriks, memasangkannya dengan kamus kosakata (semua kata unik dari semua pesan pada train set prediktor beserta frekuensinya), lalu mentransformasi train set dan test set prediktor menjadi matriks. Hasilnya adalah dua matriks untuk train set dan test set prediktor, di mana kolom merepresentasikan setiap kata unik dari semua pesan pada train set prediktor, baris mewakili pesan-pesan itu sendiri, dan nilai dalam sel adalah hitungan frekuensi kata untuk setiap pesan.
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
# Encoding labels
sms_data = sms_data.replace('ham', 0).replace('spam', 1)
X = sms_data['SMS'].values
y = sms_data['Label'].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
# Vectorizing strings from the 'SMS' column
cv = CountVectorizer(max_df=0.95)
cv.fit(X_train)
X_train_csr_matrix = cv.transform(X_train)
X_test_csr_matrix = cv.transform(X_test)
Berikutnya kita akan membangun pengklasifikasi Naive Bayes multinomial dengan parameter default dan memeriksa akurasinya:
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score, f1_score
clf = MultinomialNB()
clf.fit(X_train_csr_matrix, y_train)
predictions = clf.predict(X_test_csr_matrix)
print(f'Model accuracy:\n'
f'Accuracy score: {accuracy_score(y_test, predictions):.3f}\n'
f'F1-score: {f1_score(y_test, predictions):.3f}\n')
Model accuracy:
Accuracy score: 0.990
F1-score: 0.962
Hasilnya, kita memperoleh penyaring spam dengan akurasi tinggi.
Langkah lanjutan yang mungkin adalah mencoba metode pembagian train/test lain untuk meningkatkan proses vektorisasi dengan menyetel beberapa parameternya yang banyak (misalnya, batas potong untuk kata yang terlalu sering muncul baik di pesan spam maupun ham), serta memeriksa kasus yang sangat jarang ketika pengklasifikasi mendeteksi pesan secara keliru dan mencoba memahami penyebabnya. Selain itu, kita dapat memvisualisasikan kata-kata yang paling sering muncul dalam pesan spam dan ham menggunakan metode seperti word cloud (setelah pembersihan data awal dan mengecualikan semua stopword atau kata dengan informasi rendah). Terakhir, kita dapat menerapkan algoritme pembelajaran mesin atau pembelajaran mendalam lainnya (support vector machine, decision tree, jaringan saraf) dan membandingkan hasilnya dengan pendekatan Naive Bayes.
Use case data science umum lainnya di telekomunikasi:
- segmentasi pelanggan
- pengembangan produk
- analisis catatan detail panggilan
- sistem rekomendasi
- prediksi tingkat churn pelanggan
- pemasaran terarah
- deteksi penipuan
- manajemen dan optimasi jaringan
- peningkatan keamanan jaringan
- optimasi harga
- prediksi nilai umur pelanggan
Studi Kasus Data Science: Kursus
Kita telah menempuh perjalanan panjang sejauh ini dan membahas secara rinci berbagai penerapan data science di berbagai bidang. Jika sekarang Anda merasa terinspirasi untuk mempelajari lebih banyak use case data science berbasis dataset dunia nyata dan mampu menerapkan pengetahuan serta keterampilan teknis baru Anda untuk menyelesaikan tugas praktis di bidang Anda sendiri, Anda mungkin akan merasa terbantu dengan kursus singkat ramah pemula berikut tentang berbagai studi kasus data science:
- Studi Kasus: Penganggaran Sekolah dengan Machine Learning di Python. Dalam kursus berbasis studi kasus dari kompetisi machine learning di DrivenData ini, Anda akan mengeksplorasi masalah terkait penganggaran distrik sekolah dan bagaimana mempermudah serta mempercepat sekolah untuk membandingkan pengeluarannya dengan pihak lain. Dengan menerapkan beberapa teknik pemrosesan bahasa alami, Anda akan menyiapkan anggaran sekolah dan membangun model untuk secara otomatis mengklasifikasikan item-itemnya, dimulai dari versi sederhana dan bertahap menuju yang lebih maju. Selain itu, Anda dapat melihat dan menganalisis solusi pemenang kompetisi, serta meninjau kiriman peserta lainnya.
- Menganalisis Kampanye Pemasaran dengan pandas. Pandas adalah pustaka Python paling populer, dan mengembangkan keterampilan solid dengan toolset-nya adalah keharusan bagi setiap data scientist. Dalam kursus yang sangat praktis ini, Anda akan membangun fondasi Python dan pandas (menambah kolom baru, menggabung/memotong dataset, bekerja dengan kolom tanggal, memvisualisasikan hasil di matplotlib) menggunakan dataset pemasaran fiktif pada bisnis langganan online. Anda akan berlatih menerjemahkan pertanyaan pemasaran tipikal menjadi nilai terukur. Beberapa pertanyaan yang akan Anda jawab adalah: "Bagaimana performa kampanye ini?", "Mengapa suatu kanal berkinerja buruk?", "Kanal mana yang merujuk pelanggan berlangganan paling banyak?", dan sebagainya.
- Menganalisis Data Sensus AS di Python. Dalam kursus ini, Anda akan belajar menavigasi dengan mudah Sensus Sepuluh Tahunan dan American Community Survey tahunan serta mengekstrak berbagai data demografis dan sosioekonomi dari keduanya, seperti pendapatan rumah tangga, komuter, ras, dan struktur keluarga. Anda akan menggunakan Python untuk meminta data berbagai wilayah dari Census API dan pustaka pandas untuk memanipulasi data terkumpul dan mendapatkan wawasan bermakna darinya. Selain itu, Anda akan berlatih pemetaan dengan pustaka geopandas.
- Studi Kasus: Analisis Data Eksploratori di R. Kursus singkat ini ideal jika Anda sudah memiliki pengetahuan dasar tentang alat manipulasi dan visualisasi data di R. Mempelajari materi kursus ini, Anda akan mencoba keterampilan Anda langsung pada dataset nyata untuk mengeksplorasi data historis pemungutan suara Majelis Umum Perserikatan Bangsa-Bangsa. Secara khusus, Anda akan menganalisis kecenderungan pemungutan suara antarnegara, lintas waktu, dan isu-isu internasional. Studi kasus ini memungkinkan Anda melakukan analisis data eksploratori dari awal hingga akhir, memperbanyak praktik dengan paket dplyr dan ggplot2, serta mempelajari beberapa keterampilan baru.
- Analitik Sumber Daya Manusia: Mengeksplorasi Data Karyawan di R. R dikenal lebih cocok untuk analisis statistik dibanding Python. Dalam kursus ini, Anda akan memanfaatkan keunggulan R untuk memanipulasi, memvisualisasikan, dan melakukan uji statistik pada serangkaian studi kasus analitik SDM. Teknik data science muncul di sektor sumber daya manusia relatif baru. Namun, kini ini merepresentasikan arah yang sangat menjanjikan karena banyak perusahaan semakin mengandalkan departemen SDM mereka untuk memberikan wawasan dan rekomendasi yang dapat ditindaklanjuti menggunakan basis data karyawan mereka.
- Pengambilan Keputusan Berbasis Data di SQL. Dalam kursus ini, Anda akan belajar bagaimana menggunakan SQL untuk mendukung pengambilan keputusan dan melaporkan hasil kepada manajemen. Studi kasus yang diminati berfokus pada perusahaan penyewaan film online dengan basis data tentang data pelanggan, penilaian film, informasi latar para aktor, dan lain-lain. Beberapa tugasnya adalah menerapkan kueri SQL untuk mempelajari preferensi pelanggan, keterlibatan pelanggan, dan perkembangan penjualan. Anda akan mempelajari ekstensi SQL untuk pemrosesan analitik online yang membantu memperoleh wawasan kunci dari data multidimensi yang kompleks.
Apakah Anda ingin menjadi pakar tingkat tinggi di bidang data science, atau niat Anda sekadar mempelajari keterampilan coding yang berguna untuk mengekstrak wawasan berharga berbasis data di bidang studi Anda sendiri, sumber daya di atas adalah tempat yang tepat untuk memulai.
Kesimpulan
Singkatnya, dalam artikel ini, kita telah menelaah apa itu data science dari berbagai sudut, bagaimana perbedaannya dari analitik data, di ranah mana bidang ini dapat diterapkan, apa itu use case data science, dan peta jalan umum untuk diikuti agar berhasil menyelesaikannya. Kita membahas secara spesifik bagaimana data science bermanfaat untuk tugas-tugas nyata di beberapa industri yang diminati. Sambil menguraikan banyak aplikasi yang ada dan potensial, kita berfokus pada use case paling umum di masing-masing bidang populer tersebut dan mendemonstrasikan cara menyelesaikannya menggunakan algoritme data science dan analitik data. Jika Anda ingin mempelajari lebih lanjut tentang use case di industri lain, lihat artikel use case kami di bidang perbankan, pemasaran, dan penjualan. Terakhir, kami meninjau beberapa kursus online bermanfaat untuk menyelami lebih dalam studi kasus data science lainnya.
Satu pengamatan menarik terakhir: Tidak ada satu pun sektor yang kita bahas dalam karya ini yang benar-benar baru. Bahkan beberapa di antaranya, seperti kedokteran dan penjualan, telah ada selama berabad-abad. Sepanjang sejarah mereka, jauh sebelum era digitalisasi global kita dimulai, data dari industri-industri tersebut juga dikumpulkan dalam satu dan lain bentuk; ditulis dalam buku dan dokumen, serta disimpan di arsip dan perpustakaan. Yang benar-benar berubah secara dramatis dalam beberapa tahun terakhir dengan hadirnya teknologi baru adalah pemahaman fundamental tentang potensi luar biasa yang tersembunyi dalam data apa pun, dan pentingnya mencatat, mengumpulkan, serta menyimpannya dengan tepat. Upaya ini, beserta peningkatan sistem manajemen data secara berkelanjutan, memungkinkan akumulasi big data di semua industri untuk analisis dan peramalan selanjutnya.


