
Veri Bilimi: Tanım ve Pratik Uygulamalar
Veri bilimi, birçok alanda kullanılan, göreli olarak yeni ama hızla büyüyen ve çok disiplinli bir çalışma alanıdır. Çeşitli ileri analitik teknikler ve öngörüsel modelleme algoritmalarını kullanarak verilerden anlamlı içgörüler çıkarır; bu içgörüler stratejik iş ya da bilimsel soruların yanıtlanmasına yardımcı olur. Veri bilimi, teknik (programlama, lineer cebir, istatistik ve modelleme) ve teknik olmayan (sonuçların etkili şekilde sunulması ve iletişimi) geniş bir beceri yelpazesini birleştirir. Ayrıca, veri biliminin uygulandığı sektöre bağlı olarak, mevcut bilgiyi ve elde edilen içgörüleri doğru yorumlayabilmek için sağlam bir alan bilgisine sahip olmak gerekir.
Veri bilimi algoritmaları, çok miktarda verinin toplandığı ya da toplanabileceği farklı ortamlarda başarıyla uygulanabilir: finans, ticaret, pazarlama, proje yönetimi, sigorta, tıp, eğitim, üretim, İK, dilbilim, sosyoloji vb. Pratikte, verilerini toplama, biriktirme, analiz etme ve modelleme süreçlerinden hemen her sektör veya bilim dalı önemli ölçüde fayda sağlayabilir.
Veri Bilimi Kullanım Senaryosu Nedir?
Bir veri bilimi kullanım senaryosu, mevcut veriler kullanılarak çözülmesi gereken somut bir gerçek dünya görevidir. Belirli bir şirketin çerçevesinde, şirketin faaliyet gösterdiği sektöre özgü bağlamda veri bilimi teknikleriyle birçok değişken analiz edilir. Veri bilimi kullanım senaryoları, çözülecek bir sorun, test edilecek bir hipotez ya da yanıtlanacak bir soru olabilir. Özünde veri bilimi yapmak, gerçek dünya kullanım senaryolarını çözmek demektir.
Her kullanım senaryosunun içeriği muhtemelen oldukça farklı olsa da, akılda tutulması gereken bazı ortak noktalar vardır:
- Veri bilimi kullanım senaryosu planlaması şunları içerir: net bir hedef ve beklenen sonuçları ortaya koymak, iş kapsamını anlamak, mevcut kaynakları değerlendirmek, gerekli veriyi sağlamak, riskleri değerlendirmek ve başarı ölçütü olarak KPI tanımlamak.
- Veri bilimi kullanım senaryolarını çözmede en yaygın yaklaşımlar şunlardır: tahminleme, sınıflandırma, örüntü ve anomali tespiti, öneriler ve görsel tanıma.
- Bazı veri bilimi kullanım senaryoları, farklı alanlarda tipik görevleri temsil eder ve benzer yaklaşımlarla çözülebilir; örneğin müşteri churn oranı tahmini, müşteri segmentasyonu, sahtekârlık tespiti, öneri sistemleri ve fiyat optimizasyonu.
Bir Veri Bilimi Vaka Çalışmasını Nasıl Çözerim?
Bu sorunun yanıtı duruma oldukça özeldir; şirketin iş stratejisi tarafından yönlendirilir ve bizzat vaka çalışmasının özüne bağlıdır. Yine de, herhangi bir veri bilimi kullanım senaryosunda izlenecek genel bir yol haritasını özetlemek faydalı olabilir:
- Doğru soruyu formüle etmek. Bu ilk adım çok önemlidir ve mevcut literatür ile mevcut vaka çalışmalarını gözden geçirmeyi, en iyi uygulamaları incelemeyi, ilgili teoriler ve çalışma hipotezleri geliştirmeyi ve alan bilgisindeki olası boşlukları doldurmayı içerir. Sonuç olarak, ilgili vaka çalışmasında yanıtlanacak net bir soruya ulaşmalıyız.
- Veri toplama. Bu adımda bir veri envanteri ve toplama süreci yürütürüz. Gerçek hayatta çoğu zaman temsili olmayan, eksik, kusurlu ve yapılandırılmamış verilerle karşılaşırız; yani okunması kolay ve analize hazır, eksiksiz bir bilgi tablosundan oldukça uzaktır. Bu nedenle konumuz için faydalı olabilecek tüm olası veri kaynaklarını arayıp belirlemeliyiz. Gerekli veriler şirket arşivlerinde bulunabilir, web kazıma ile elde edilebilir ya da bir sponsordan temin edilebilir vb.
- Veri düzenleme. Bu genellikle herhangi bir veri bilimi projesinin en çok zaman ve kaynak tüketen kısmıdır. Toplanan verinin kalitesi ve temsil gücü değerlendirilir ve başlangıç veri keşfi yapılır. Veriler, ham hâlinden daha uygun bir formata dönüştürülmek üzere temizlenir, ön işleme tabi tutulur, dönüştürülür, işlenir ve eşlenir.
- Veri analizi ve modelleme. Temizlenmiş veri, mevcut durumu açısından analiz edilir ve seçilen öngörüsel istatistiksel modele oturtulur. Model doğruluğu değerlendirilir ve tatmin edici değilse diğer modelleme yaklaşımları denenir. Gelecek senaryolarını en yüksek doğrulukla tahmin eden model elde edilene kadar bu işlem (önceki adımlar gibi) oldukça yinelemeli olabilir.
- Sonuçların iletişimi. Önceki adımlarla karşılaştırıldığında, bu adım programlama ve teknik uzmanlıktan ziyade daha fazla iletişim ve sosyal beceri gerektirir. En önemli bulguların ve nihai sonuçların yönetim, hissedarlar ve diğer ilgili taraflarla paylaşılmasını içerir. İçgörüler genellikle raporlar, makaleler ve sunum slaytları biçiminde temsil edilir ve olası yol haritaları özetlenir.
Sektöre Göre Veri Bilimi Kullanım Senaryoları
Veri bilimi kullanım senaryoları, büyük miktarda verinin biriktiği ya da birikebildiği hemen her sektörle ilgili olabilir. Bu bölümde, en çok talep gören alanlardan şu üçünde tipik veri bilimi kullanım senaryolarını tartışacağız: lojistik, sağlık ve telekomünikasyon. Ele alacağımız bazı kullanım senaryoları disiplinler arasıdır ve pek çok alanda kolayca karşımıza çıkabilir. Bu da onları daha evrensel ve uygulanabilir kılar; dolayısıyla bunları çözmeye yönelik genel yaklaşımı bilmeye değer. Ayrıca, seçilen her sektör için veri bilimi yöntemleriyle modellenebilecek diğer olası konuları da özetleyeceğiz.
Sağlıkta Veri Bilimi
Önceki üç bölümde, veri bilimi yöntemlerinin farklı sektörlerdeki şirketlerin gelirlerini artırmasına nasıl yardımcı olabileceğini tartıştık. Sağlığa geldiğimizde, mevcut verilerin doğru kullanımı ve yorumlanması bu sektörün pazarlamacılarına fayda sağlamanın ötesinde, ciddi hastalıkların zamanında teşhis edilmesine yardımcı olabilir ve hatta insanların hayatını kurtarabilir.
Tıp ve sağlık hizmeti sağlayıcıları, birçok kaynaktan büyük miktarda veri toplar: elektronik sağlık kaydı (EHR) sistemleri, giyilebilir cihazlardan gelen veriler, tıbbi araştırmalar ve faturalama belgeleri. Yenilikçi veri bilimi ve veri analizi tekniklerinden yararlanmak, sağlık sektörünün tamamını giderek dönüştürmekte, gelecekteki gelişimi için son derece umut verici ve etkili çözümler sunmaktadır. Özellikle genetik, üreme tıbbı, onkoloji, biyoteknoloji, radyografi, öngörüsel tanı ve ilaç sektörü gibi sağlık alanlarının bazı yüksek uzmanlık gerektiren kolları, verilerinin tam potansiyelini açığa çıkarmaları sayesinde bambaşka bir seviyeye taşınmıştır.
Veri biliminin tıpta nasıl değer yaratabileceğini daha iyi anlamak için, en klasik kullanım senaryolarından birine odaklanalım.
Sağlıkta veri bilimi kullanım senaryosu: Meme kanseri tahmini
Dünya Kanser Araştırmaları Fonu International", kadınlar arasında en yaygın ve toplamda da ikinci en yaygın kanser türünün meme kanseri olduğunu bildiriyor. İster iyi huylu ister kötü huylu olsun, meme patolojisinin zamanında teşhisi son derece önemlidir; çünkü bu, başarılı tedavi ve hayatta kalma şansını önemli ölçüde artırır. İşte bu noktada veri bilimi devreye girer.
Veri madenciliği yöntemlerindeki ilerleme, makine öğrenmesi algoritmalarıyla birleştiğinde meme kanseri riskini tahmin etmeyi, olası bir anomalinin erken aşamalarda tespitini, dinamiğinin tahminini ve dolayısıyla hastalıkla mücadeleye yönelik en uygun planın geliştirilmesini mümkün kılmıştır. Özünde bu, makine öğrenmesinde tipik bir sınıflandırma problemidir. İyi haber şu ki, bu onkoloji türü hemen her yerde oldukça yaygın olduğundan, dünya çapında bu konuda çok sayıda titiz araştırma yürütülmüş ve sonuç olarak dünyanın dört bir yanındaki hastalardan tonlarca veri birikmiştir.
Böyle veri kümelerinin sınıflandırıcılarda kullanılmasındaki temel sorun, güçlü biçimde dengesiz olabilmeleridir. Örneğin, çıktının kanser/kanser değil şeklinde olduğu durumda, patoloji görülme olasılığı (azınlık sınıfına ait kayıtlar) patoloji olmama olasılığından (çoğunluk sınıfına ait kayıtlar) oldukça düşüktür. Sonuç olarak algoritma, yeni vakaları patoloji yok şeklinde sınıflandırmaya meyillidir. Bu nedenle, bu tür modellerin doğruluğunu daha verimli değerlendirmek için, değerlendirme metriği olarak F1-skorunu uygulamak mantıklıdır; çünkü bu metrik, algoritmanın girdileri doğru sınıflandırdığı durumlar yerine yanlış pozitifleri (tip I hata) ve yanlış negatifleri (tip II hata) dikkate alır.
ABD’nin bir eyaletine ait gerçek bir Meme Kanseri veri kümesine göz atalım. Özellikler belgelerde ayrıntılı açıklanmıştır; kısaca, her sayısallaştırılmış görüntüde kadının meme kitlesindeki hücre çekirdeklerini gösteren özniteliklerin ortalama, standart hata ve en büyük değerleridir. Veri kümesindeki her kayıt, kötü huylu ya da iyi huylu tümöre sahip bir kadına karşılık gelir (yani söz konusu tüm kadınlarda bir tür tümör vardır). Öznitelikler arasında hücre yarıçapı, doku, pürüzsüzlük, sıkışıklık, çöküklük, simetri vb. bulunur.
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
Yalnızca eksik değerler içeren son sütunu kaldıralım:
cancer_data = cancer_data.drop('Unnamed: 32', axis=1)
Yüzde olarak, kaç kadında kesinleşmiş kanser (kötü huylu meme tümörü) var?
round(cancer_data['diagnosis'].value_counts()*100/len(cancer_data)).convert_dtypes()
B 63
M 37
Name: diagnosis, dtype: Int64
Tüm katılımcıların %37’sinde meme kanseri vardır; bu nedenle veri kümesi aslında oldukça dengelidir.
Teşhis değişkeninin değerleri kategorik olduğundan, makine öğreniminde daha sonra kullanmak üzere sayısal biçime kodlamalıyız. Bunu yapmadan önce, veriyi öngörücü özellikler ve hedef değişken diagnosis olarak ayıralım:
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)
Şimdi eğitim ve test kümelerini oluşturalım ve ardından özellikleri ölçekleyelim:
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)
Verimizi modellemek için, varsayılan parametreleriyle şu modelleme algoritmalarını uygulayalım: en yakın komşular (KNN) ve lojistik regresyon:
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)
Veri kümemizin oldukça dengeli olduğunu daha önce gördük; bu yüzden en doğru modeli belirlemek için doğruluk skoru değerlendirme metriğini kullanabiliriz:
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
Verilerimize göre, herhangi bir nitelikte meme patolojisi tespit edilen bir kadın için kötü huylu/iyi huylu tümörü tahmin etmede en iyi performansı lojistik regresyon modeli göstermektedir.
İleriye yönelik olası adımlar arasında, lojistik regresyon algoritmasının ayarlanacak kritik parametreleri olmadığından, farklı eğitim/test bölme yaklaşımlarıyla ve/veya çeşitli öngörüsel modelleme teknikleriyle denemeler yapmak sayılabilir.
Sağlıkta diğer yaygın veri bilimi kullanım senaryoları:
- giyilebilir cihazlardan gerçek zamanlı verilerin izlenmesi
- öngörüsel analiz
- tıbbi görüntü analizi
- ilaç keşfi
- genetik araştırmalar
- sanal asistanlar
- müşteri verisi yönetimi
Ulaşım ve Lojistikte Veri Bilimi
Lojistik, bir ürünün bir noktadan diğerine teslim edilmesi sürecinin organizasyonudur; ulaşım ise müşteri ya da malların taşınması eylemini ifade eder. Şirketin faaliyet profiline bağlı olarak (ör. yemek teslimatı, posta hizmeti, uluslararası taşımacılık, havayolu şirketleri ve taksi ya da otobüs hizmetleri), veri kaynakları çizelgeler, zaman çizelgeleri, rota ayrıntıları, depo stok kalemleri, raporlar, sözleşmeler, anlaşmalar, yasal belgeler ve müşteri geri bildirimleriyle temsil edilebilir. Verinin kendisi yapısal veya yapısal olmayan olabilir; zamanlama, güzergâhlar, rotalar, koordinatlar, müşteri verileri, mal ayrıntıları, maliyetler ve fiyatlar hakkında bilgiler içerebilir.
Tedarik zinciri ve ulaşım sektörlerinde iş verimliliği her zaman doğrudan değildir ve çok sayıda faktöre bağlıdır: öngörülemeyen trafik sorunları, rotaların kalitesi, hava koşulları, acil durumlar, yakıt fiyatlarındaki dalgalanmalar, depo stok yetersizlikleri, teknik arızalar, güvenlikle ilgili sevkiyat gecikmeleri, devlet düzenlemeleri ve yaptırımlar ve daha fazlası. Ayrıca son yıllarda piyasaya pek çok yeni şirket girmiş, bu sektörde rekabet oldukça kızışmıştır. Dolayısıyla, rakiplerle başa baş gidebilmek ve operasyonel verimliliği artırmak için her lojistik/ulaştırma şirketinin büyük veriyi analiz edip anlamlı içgörülere dönüştürmesi bir zorunluluk hâline gelmiştir.
Peki veri bilimi, ulaşım ve lojistik sektörlerine tam olarak nasıl yardımcı olabilir? Potansiyel uygulamalara dair (tam olmaktan uzak) bir liste:
- uçtan uca tüm taşıma sürecinin izlenmesi,
- tüm faaliyetlerin tamamen otomatik ve şeffaf hâle getirilmesi,
- zamanında teslimat,
- rota optimizasyonu,
- dinamik fiyatlandırma,
- tedarik stokunun korunması,
- bozulabilir malların korunması,
- araçların durumunun izlenmesi,
- üretim ağlarının iyileştirilmesi,
- müşteri hizmetlerinin geliştirilmesi.
Ulaşım ve lojistikte veri bilimi kullanım senaryosu: Taksi araçlarının en iyi konumlandırılmasının belirlenmesi
Uber Technologies Inc. (Uber), çeşitli lojistik ve ulaşım hizmetleri sunan bir Amerikan şirketidir. Bu vaka çalışmasında, taksi araçlarının en iyi konumlandırılmasını belirlemek için Uber araç paylaşımı GPS verilerini kümeleyacağız. Özellikle şu amaçlar için faydalı olabilir:
- Her yeni sürüş talebi en yakın kümeye atanır; böylece Uber, o kümeye en yakın araçtan müşterinin konumuna yönlendirme yapar.
- Kümeleri iş yükleri açısından, isteğe bağlı olarak saate veya haftanın gününe göre analiz ederek Uber, araçları önceden yeniden dağıtabilir ve talebin daha yüksek olduğu en stratejik konumlara gönderebilir.
- Farklı kümelerdeki talep/arz oranına bağlı olarak şirket, fiyat tarifelerini dinamik şekilde ayarlayabilir.
FiveThirtyEight’ten Nisan 2014’te New York’taki Uber yolculukları veri kümesini kullanacağız:
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
Tüm alınış noktalarını şematik olarak görselleştirelim; boylamın x eksenine, enlemin y eksenine karşılık geldiğini dikkate alalım:
import matplotlib.pyplot as plt
plt.scatter(uber_data.iloc[:, 2], uber_data.iloc[:, 1])
plt.show()
Bu veriyi kümelemek için k-ortalamalar kümeleme adı verilen gözetimsiz bir makine öğrenmesi algoritması kullanalım. Bu yaklaşımın arkasındaki fikir, tüm veri örneklerini eşit varyansa sahip birkaç gruba ayırmaktır. Özünde, küme sayısını (varsayılan 8) alır ve veriyi buna göre böler. En uygun küme sayısını bulmak için grafiksel dirsek yöntemi kullanılır. Aşamalar şunlardır:
- Farklı küme sayılarıyla birkaç model eğitmek ve her biri için WCSS (Küme İçi Kareler Toplamı) değerlerini toplamak; yani gözlemlerin en yakın küme merkezlerine olan kareli uzaklıklarının toplamı.
- WCSS değerlerini karşılık gelen küme sayılarıyla karşı karşıya çizmek.
- WCSS’nin anlamlı şekilde azaldığı en düşük küme sayısını seçmek.
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()

Bizim durumumuzda en uygun küme sayısı 7 gibi görünüyor. Bu değeri kullanarak bir model kuralım ve her alınış noktası için küme numarasını tahmin edelim. Ayrıca veriyi bir kez daha grafiksel olarak göstereceğiz; bu kez yedi küme merkezinin konumlarını ekleyerek:
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()
Şimdi tüm küme merkezlerinin tam koordinatlarını çıkaralım ve verinin kendisi olmadan bunları ayrı olarak gösterelim:
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
Bu küme merkezlerini New York City haritası üzerinde göstermek daha açıklayıcı olacaktır:
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

Modelimizi kullanarak, New York’taki herhangi bir konum için coğrafi koordinatlarla ifade edildiğinde en yakın kümeyi tahmin edebiliriz. Pratikte bu, Uber’in en yakın konumdaki uygun taksiyi yönlendireceği ve müşteriye daha hızlı hizmet vereceği anlamına gelir.
Manhattan’daki Lincoln Center for the Performing Arts için en yakın kümeyi bulalım:
lincoln_center = [(40.7725, -73.9835)]
kmeans.predict(lincoln_center)
array([1])
Ve Queens’teki Howard Beach için:
howard_beach = [(40.6571, -73.8430)]
kmeans.predict(howard_beach)
array([3])
İleriye yönelik olası adımlar olarak, diğer gözetimsiz makine öğrenmesi kümeleme algoritmalarını uygulamayı, verinin farklı kesitlerini (saat/gün/ay bazında) analiz etmeyi, en çok ve en az yüklenen kümeleri bulmayı ya da belirlenen kümeler ile veri çerçevesindeki Base değişkeni arasındaki ilişkileri incelemeyi düşünebiliriz.
Ulaşım ve lojistikte diğer yaygın veri bilimi kullanım senaryoları:
- arz-talep eşleşmesine yönelik dinamik fiyatlandırma
- talep tahmini
- manuel işlemlerin otomasyonu
- sürücüsüz araçlar
- tedarik zinciri görünürlüğü
- hasar tespiti
- depo yönetimi
- müşteri duygu analizi
- müşteri hizmetleri sohbet botları
Telekomda Veri Bilimi
Son birkaç on yılda telekomünikasyon teknolojileri inanılmaz bir hızla büyüdü ve gelişiminde yeni bir aşamaya girdi. Günümüzde her türden elektronik cihazla çevriliyiz ve pek çok insan, özellikle sosyal ağlar ve mesajlaşma uygulamaları açısından, adeta internete bağımlı hâle geldi. Bazen bu cihaz bağımlılığı, yüz yüze iletişimin yerini alması bakımından eleştirilir. Ancak kabul etmeliyiz ki, telekom hayatlarımızı önemli ölçüde kolaylaştırdı; dünyanın dört bir yanındaki insanlarla saniyeler içinde bağlantı kurmamıza olanak tanıyor.
Bu durum, birçok şirket ve okulun uzaktan çalışma ya da öğrenme düzenlerini benimsediği COVID-19 pandemisi döneminde özellikle belirginleşti. Böylesine hızla değişen bir gerçeklikte, dijital bağlantının kalitesi ve kesintisizliği tüm alanlarda eşi görülmemiş bir önem kazandı. Kapanma dönemleri, insanların meslektaşlarını, akrabalarını ve arkadaşlarını öncekinden çok daha sık aramalarını ve onlara mesaj göndermelerini gerekli kıldı. Tüm bu yeni eğilimler, telekomünikasyon hacimlerinde muazzam bir artışa yol açtı ve bu da sektörde devasa miktarda verinin üretilmesiyle sonuçlandı.
Biriken verilerle çalışmak için veri bilimi yöntemlerini kullanmak, telekom sektörüne birçok açıdan yardımcı olabilir:
- operasyonların yalınlaştırılması,
- ağın optimize edilmesi,
- istenmeyenlerin filtrelenmesi,
- veri iletimlerinin iyileştirilmesi,
- gerçek zamanlı analitik,
- etkin iş stratejilerinin geliştirilmesi,
- başarılı pazarlama kampanyaları oluşturma,
- gelirin artırılması.
Şimdi, istenmeyen mesajların tespiti ve filtrelenmesiyle ilgili, telekomünikasyonda yaygın bir veri bilimi görevini biraz daha ayrıntılı inceleyelim.
Telekomda veri bilimi kullanım senaryosu: Spam filtresi oluşturma
Spam filtreleme, tüm modern yazılı iletişim kanallarının hayati bir işlevdir; çünkü bizi her gün paramızı dolandırmaya çalışan e-postaların bombardımanından korur. Teknik olarak bu, bir başka sınıflandırma problemidir: geçmiş verilere dayanarak her yeni giriş mesajı ham (yani normal mesaj) olarak etiketlenir ve doğrudan alıcıya ulaşır; ya da spam olarak etiketlenir ve engellenir ya da spam klasörüne düşer.
Bu amaçla popüler bir gözetimli makine öğrenmesi algoritması, Naive Bayes sınıflandırıcısıdır. Olasılık kuramındaki aynı adlı teoreme dayanır; “naive” ise her mesajdaki tüm kelimelerin karşılıklı bağımsız olduğu varsayımına işaret eder. Bu varsayım tam olarak doğru değildir; çünkü doğal kelime yerleşimlerini ve bağlamı kaçınılmaz olarak göz ardı eder. Ancak, verinin az olduğu metin sınıflandırma görevlerinin çoğunda bu yaklaşım iyi çalışır ve doğru tahminler yapar gibi görünür.
Naive Bayes sınıflandırıcısının, her biri kendi uygulanabilirlik durumuna sahip birkaç sürümü vardır: multinom, Bernoulli, Gaussian ve esnek Bayes. Bizim durumumuz (spam tespiti) için en iyi tür, multinom Naive Bayes sınıflandırıcısıdır. Her mesajdaki kelime sayılarını temsil eden kategorik ya da sürekli özelliklerin ayrık frekans sayımlarına dayanır.
Multinom Naive Bayes spam filtrelemeyi, SMS Spam Collection Veri Kümesi üzerinde, UCI Machine Learning Repository’den uygulayalım.
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...
İnsanlar tarafından sınıflandırılmış 5.572 mesaj var. Bunların yüzde kaçı spam?
round(sms_data['Label'].value_counts()*100/len(sms_data)).convert_dtypes()
ham 87
spam 13
Name: Label, dtype: Int64
SMS’lerin %13’ü elle spam olarak tanımlanmıştır.
Multinom Naive Bayes sınıflandırması için veriyi hazırlamak üzere önce şu adımları tamamlamalıyız:
- Etiketleri metinden sayısal formata kodlayın. Bizim durumumuzda etiketler ikilidir; bu nedenle 0/1 olarak kodlayacağız.
- Öngörücü ve hedef değişkenleri çıkarın.
- Veriyi eğitim ve test kümelerine ayırın.
- Öngörücü eğitim ve test kümelerinin SMS sütunundaki metinleri vektörleştirerek CSR (sıkıştırılmış seyrek satır) matrisleri elde edin.
Dördüncü adım biraz daha ayrıntılı açıklama gerektirir. Burada bir matris nesnesi oluşturuyor, onu sözcük dağarcığı sözlüğüyle (öngörücü eğitim kümesindeki tüm mesajlardaki tüm benzersiz kelimeler ve bunların karşılık gelen sıklıkları) eğitiyor ve ardından öngörücü eğitim ve test kümelerini matrislere dönüştürüyoruz. Sonuç olarak, öngörücü eğitim ve test kümeleri için iki matris elde edeceğiz; burada sütunlar, öngörücü eğitim kümesindeki tüm mesajlardan gelen her bir benzersiz kelimeye; satırlar ilgili mesajların kendilerine; hücrelerdeki değerler ise her mesaj için kelime frekans sayımına karşılık gelir.
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)
Sonraki adımda, varsayılan parametrelerle bir multinom Naive Bayes sınıflandırıcısı kurup doğruluğunu kontrol edeceğiz:
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
Sonuç olarak, oldukça doğru bir spam filtresi elde ettik.
Burada ileriye dönük potansiyel adımlar arasında, vektörleştirme sürecini iyileştirmek için farklı eğitim/test bölme yöntemlerini denemek, çok sayıda parametresinden bazılarını ayarlamak (ör. hem spam hem ham mesajlarda aşırı sık görülen kelimeler için eşik) ve sınıflandırıcının bir mesajı yanlış tespit ettiği çok nadir durumları kontrol edip bunun nedenini anlamaya çalışmak sayılabilir. Ayrıca, en sık kullanılan kelimeleri bir kelime bulutu gibi bir yöntemle görselleştirebiliriz (önceden veri temizliği yapıldıktan ve tüm durak kelimeler veya düşük bilgi içeriğine sahip kelimeler çıkarıldıktan sonra). Son olarak, diğer makine ya da derin öğrenme algoritmalarını (destek vektör makineleri, karar ağaçları, sinir ağları) uygulayabilir ve sonuçları Naive Bayes yaklaşımıyla karşılaştırabiliriz.
Telekomda diğer yaygın veri bilimi kullanım senaryoları:
- müşteri segmentasyonu
- ürün geliştirme
- arama detay kaydı analizi
- öneri sistemleri
- müşteri churn oranı tahmini
- hedefli pazarlama
- sahtekârlık tespiti
- ağ yönetimi ve optimizasyonu
- artırılmış ağ güvenliği
- fiyat optimizasyonu
- müşteri yaşam boyu değer tahmini
Veri Bilimi Vaka Çalışmaları: Kurslar
Şimdiye kadar uzun bir yol kat ettik ve veri biliminin farklı alanlardaki sayısız uygulamasını ayrıntılı olarak inceledik. Artık gerçek dünya veri kümelerine dayalı daha fazla veri bilimi kullanım senaryosu öğrenmek ve yeni edindiğiniz bilgi ve teknik becerileri kendi alanınızdaki pratik görevleri çözmek için uygulayabilmek istiyorsanız, aşağıdaki başlangıç düzeyindeki kısa kurslar çeşitli veri bilimi vaka çalışmalarında size yardımcı olabilir:
- Vaka Çalışması: Python ile Makine Öğrenmesi Kullanarak Okul Bütçelemesi. DrivenData’daki bir makine öğrenmesi yarışmasına dayanan bu kursta, okul bölgesi bütçelemesiyle ilgili bir sorunu ve okulların harcamalarını başkalarıyla karşılaştırmasını daha kolay ve hızlı hâle getirmenin yollarını keşfedeceksiniz. Bazı doğal dil tekniklerini uygulayarak okul bütçelerini hazırlayacak ve kalemlerini otomatik sınıflandıracak bir model oluşturacaksınız; basit bir sürümle başlayıp kademeli olarak daha gelişmiş bir sürüme ilerleyeceksiniz. Ayrıca yarışmanın kazanan çözümünü görüp analiz edebilecek ve diğer katılımcıların gönderimlerini inceleyebileceksiniz.
- pandas ile Pazarlama Kampanyalarını Analiz Etme. Pandas, Python’un en popüler kütüphanesidir ve araç setine hâkim olmak, her veri bilimci için şarttır. Bu son derece pratik kursta Python ve pandas temelleri üzerine inşa edecek (yeni sütun ekleme, veri kümelerini birleştirme/dilimleme, tarih sütunlarıyla çalışma, sonuçları matplotlib’te görselleştirme) ve çevrimiçi bir abonelik işine ait sahte bir pazarlama veri kümesi kullanacaksınız. Tipik pazarlama sorularını ölçülebilir değerlere çevirmeyi pratik edeceksiniz. Yanıtlayacağınız bazı sorular şunlardır: "Bu kampanya nasıl performans gösterdi?", "Neden belirli bir kanal düşük performans gösteriyor?", "En çok aboneyi hangi kanal yönlendiriyor?" vb.
- Python ile ABD Nüfus Sayımı Verilerini Analiz Etme. Bu kursta, On Yıllık Nüfus Sayımı ve yıllık American Community Survey’de kolayca gezinmeyi ve hane geliri, işe gidiş geliş, ırk ve aile yapısı gibi çeşitli demografik ve sosyoekonomik verileri çıkarmayı öğreneceksiniz. Farklı coğrafyalar için verileri Nüfus Sayımı API’sinden talep etmek üzere Python’u, toplanan verileri işlemek ve anlamlı içgörüler elde etmek için pandas kütüphanesini kullanacaksınız. Ayrıca, geopandas kütüphanesiyle haritalama pratiği yapacaksınız.
- Vaka Çalışması: R ile Keşifsel Veri Analizi. Bu kısa kurs, R’de veri işleme ve görselleştirme araçlarına dair temel bilginiz varsa sizin için idealdir. Kursun materyallerini öğrenirken, Birleşmiş Milletler Genel Kurulu’nun tarihsel oylama verilerini keşfetmek için gerçek bir veri kümesi üzerinde becerilerinizi uygulayacaksınız. Özellikle, ülkeler arasındaki, zaman içindeki ve uluslararası konular arasındaki oylama eğilimlerini analiz edeceksiniz. Bu vaka çalışması, baştan sona bir keşifsel veri analizi yürütmenizi, dplyr ve ggplot2 paketleriyle daha fazla pratik yapmanızı ve bazı yeni beceriler öğrenmenizi sağlayacaktır.
- İnsan Kaynakları Analitiği: R’de Çalışan Verilerini Keşfetme. R, istatistiksel analize Python’dan daha iyi uyum sağlamasıyla bilinir. Bu kursta, R’nin bu avantajından yararlanarak, bir dizi İK analitiği vaka çalışması üzerinde veri işleme, görselleştirme ve istatistiksel testler gerçekleştireceksiniz. Veri bilimi teknikleri insan kaynakları sektöründe görece yakın zamanda ortaya çıktı. Ancak günümüzde çok sayıda şirket, çalışanlarına ait veritabanını kullanarak uygulanabilir içgörüler ve öneriler sunması için İK departmanlarına giderek daha fazla güvenmektedir; dolayısıyla son derece umut verici bir yön temsil eder.
- SQL ile Veriye Dayalı Karar Verme. Bu kursta, karar almayı desteklemek ve sonuçları yönetime raporlamak için SQL’i nasıl kullanacağınızı öğreneceksiniz. İlgili vaka çalışması, müşteri verileri, film puanları, oyunculara ilişkin arka plan bilgileri vb. içeren veritabanına sahip çevrimiçi bir film kiralama şirketine odaklanır. Bazı görevler, müşteri tercihlerini, müşteri etkileşimini ve satış gelişimini incelemek için SQL sorguları uygulamak olacaktır. Karmaşık çok boyutlu verilerden temel içgörüler elde etmeye yardımcı olan çevrimiçi analitik işleme için SQL uzantılarını öğreneceksiniz.
İster veri biliminde üst düzey bir uzman olmak isteyin, ister yalnızca kendi çalışma alanınızda veriye dayalı değerli içgörüler çıkarmaya yarayacak faydalı kodlama becerileri edinmeyi hedefleyin, yukarıdaki kaynaklar başlamak için harika birer noktadır.
Sonuç
Özetle, bu yazıda veri biliminin ne olduğunu farklı açılardan inceledik; veri analitiğinden nasıl ayrıştığını, hangi alanlarda uygulanabildiğini, bir veri bilimi kullanım senaryosunun ne olduğunu ve onu başarıyla çözmek için izlenecek genel bir yol haritasını ele aldık. Veri biliminin bazı talep gören sektörlerde gerçek hayattaki görevlere tam olarak nasıl fayda sağlayabileceğini tartıştık. Mevcut ve potansiyel birçok uygulamayı özetlerken, bu popüler alanların her birindeki en yaygın kullanım senaryolarına odaklandık ve her birinin veri bilimi ve veri analitiği algoritmaları kullanılarak nasıl çözülebileceğini gösterdik. Başka sektörlerdeki kullanım senaryoları hakkında daha fazla bilgi edinmek isterseniz, bankacılık, pazarlama ve satış ile ilgili kullanım senaryosu yazılarımıza göz atın. Son olarak, diğer bazı veri bilimi vaka çalışmalarına daha derinlemesine dalmak için birkaç faydalı çevrimiçi kursu gözden geçirdik.
Son bir ilginç gözlem: Bu çalışmada ele aldığımız sektörlerin hiçbiri yepyeni değil. Hatta bazıları, tıp ve satış gibi, yüzyıllardır var. Tüm tarihleri boyunca, küresel dijitalleşme çağımız başlamadan çok önce, bu sektörlerdeki veriler de bir şekilde toplanıyordu; kitaplara ve belgelere yazılıyor, arşivlerde ve kütüphanelerde saklanıyordu. Son yıllarda yeni teknolojilerin ortaya çıkmasıyla dramatik biçimde değişen şey, herhangi bir verinin içinde gizli muazzam potansiyelin temel olarak anlaşılması ve verinin uygun şekilde kaydedilmesi, toplanması ve saklanmasının hayati önemidir. Bu çabaların uygulanması ve veri yönetim sistemlerinin sürekli iyileştirilmesi, tüm sektörlerde ileriye dönük analiz ve tahmin için büyük verinin birikmesini mümkün kılmıştır.



