04.07.2023
12
Beğenme
772
Görüntülenme
Hiç kuşkusuz ki şirketler için veri biliminin önemi arttı. Artık irili ufaklı her şirket veri bilimine yatırım yapıyor. Biz de bu yazıda, bir veri bilimi projesinin nasıl ortaya çıktığı ve hangi süreçlerden geçtiğini anlatacağız. Keyifli okumalar :)
İlk olarak şirketlerin veri bilimine bakış açısını anlayalım. Şirketler bu işe bir bilim olarak değil de bu iş bizim karımızı nasıl artırır şeklinde bakarlar. Şirketlerin kullandığı yaygın veri bilimi projelerine şöyle bir bakış atalım:
vb. bunlar gibi daha bir çok örnek verilebilir. Buradan çıkaracağımız nokta, veri bilimi projelerinin şirketlerin iş problemlerine çözüm üretmek için kullanılan bir araç olduğudur. Bu da bizi ilk maddemize getiriyor.
İlk ve en önemli madde kesinlikle burasıdır. Bu adımın önemi tüm projenin inşa edileceği temel olmasından gelir ve eğer temel sağlam olmazsa yapılan tüm emek çöpe gidecektir. Buradaki en hassas ve önemli nokta da doğru verinin belirlenmesidir. Problemin tanımı, amaçlar, ortaya çıkacak fayda vs. bunların hepsi ne kadar net olursa olsun yanlış veri seçildiğinde aylarca harcanan emek çöp olabilmektedir. John D. Kelleher Veri Bilimi isimli kitabında yanlış veri seçimi yüzünden 5 aylık bir emeğin çöpe gittiği bir projeden bahsediyordu. Özetle doğru verinin seçimi her şeyden kritik.
İş problemimizi çözebilecek en sağlıklı veriyi, veri kaynaklarından aldığımızı düşünelim ve problemimiz için uygun literatür taramasını da yaptık. Kullanacağımız teknikleri de belirledik. Artık veriyi tanımaya başlayabiliriz.
Bu adıma, Exploratory Data Analysis (EDA) dendiğini duymuşsunuzdur. EDA ile veri setini tanımak, gizli örüntüleri keşfetmek, betimsel istatistiklerine bakmak, çeşitli istatistiksel analizler yapmak, aykırı değerleri saptamak, görselleştirmek, değişkenlerin birbirleri üzerindeki etkilerini incelemek, korelasyonları saptamak, öznitelik mühendisliği vb. gibi çeşitli işlemleri bu adımda yapmak mümkündür. Eğer Python kullanıyorsanız bu adım için en çok kullanılan veri bilimi kütüphaneleri NumPy, Pandas, Matplotlib ve Seaborn'dur.
Verimizi yeterince tanıdıysak, bir veri bilimi projesinin en çetrefilli adımına geçebiliriz.
Eğer Kaggle'dan veri çekip bir şeyler denemişseniz makine öğrenmesi modellerinin, popüler veri setleri üzerinde genel olarak yüksek başarım verdiğini görmüşsünüzdür. Fakat gerçek dünyada durum pek de böyle değil. Gerçek dünya verileri tabiri caiz ise leş gibidir ve bunun temizlenmesi gerekir.
Bu adımda, veri setindeki gürültülü, eksik, aykırı vb. değerlerin tespiti ve icabına bakılması, veri standardizasyonu ve dönüşümleri gibi işlemler yapılır. Amaç, makine öğrenmesi modellerinin performansını kötü yönde etkileyebilecek olan sorunları çözerek modellerin yüksek başarım vermesini sağlamaktır.
Bu adım ile verimizi istediğimiz formata getirdiysek sırada machine learning var.
Bu adımda problemin doğasına uygun algoritmalar ile problemimizin çözümüne gitmeye çalışırız. Problemimiz regresyon (tahmin), sınıflandırma, kümeleme vs. olabilir. İlgili problem için geliştirilmiş makine öğrenmesi algoritmalarını verimiz üzerinde deneriz ve modellerin sonuçlarını karşılaştırarak en yüksek başarımı veren modeli seçeriz.
Modellerin başarısını artırmak için birçok farklı parametre denenebilir, bu konuyu belki hiperparametre optimizasyonu veya İngilizce adıyla hyperparameter tuning olarak duymuş olabilirsiniz. Bu işlem büyük veri setlerinde çok maliyetli olabileceği için AutoML gibi sistemler kullanılabiliyor. Buradaki parametreler, modeller, yöntemler vs. yani makine öğrenmesi kısmı ayrı bir derya denizdir.
Evet modeller kuruldu, hedef değişkeni en iyi açıklayan öznitelikler ile en iyi performansı veren model de seçildi. Artık modeli canlıya alabiliriz.
Kurulan makine öğrenmesi modeli ilgili şirketin web sitesinde veya uygulamasında çalışmak üzere deploy edilebilir. Burada model son kullanıcıya veya şirket çalışanlarına sunulabilir. Elbette ki her makine öğrenmesi modeli canlıya çıkmak zorunda değildir.
Bu aşamada model artık tek başınadır ve dünyanın gerçekleriyle (gerçek dünya verileriyle) yüzleşir.
Modelin canlıda çalışma olayını daha iyi anlayabilmek için restoran örneğine bakabiliriz. Bir restoranımız olduğunu düşünelim ve restorana gelen kişilerin yemek uygulamamız üzerinden sipariş ettikleri yemeklere, deneyimini belirten bir incelemede bulunduklarını düşünelim. Bu senaryoda, diyelim ki bir müşterimiz yemeği beğenmedi ve tam da o anda yorum yaptı. Uygulamamız üzerinden yapılan bu yorumu arka planda çalışan makine öğrenmesi modeli olumlu veya olumsuz olarak nitelendirdiğini düşünelim ve incelemenin olumsuz olduğu saptansın. Bu aşamada eğer müşteri hala restorandaysa sistem mutfağa bir sinyal gönderir ve şef müşteri ile konuşmaya gider. Ona yemeğini neden beğenmediğini sorar, müşteriyi kaybetmemizin önüne geçer. Eğer restoranı terk ettiyse hesabına promosyon kodu tanımlanabilir ve böylece tekrar restorana gelmesi sağlanabilir. Eğer böyle bir sisteme sahip olmasaydık muhtemelen müşteriyi kaybederdik.
Tabii ki veri bilimi bundan çok daha fazlasıdır, burada gerçek hayatı yansıtabilecek basit bir örnek düşündük.
En nihayetinde baştan sona bir veri bilimi projesinin adımlarına kabaca bir bakış attık. Bu yazıyı buraya kadar okuyan herkese teşekkür ederim :)
Örnek bir veri bilimi (sınıflandırma) projesinin linkini de buraya bırakıyorum. Yukarıda anlattığımız adımlar projede teknik detayları ile birlikte yer alıyor. Bu projeyi Veri Bilimi 101 modülü bitirme projesi olarak geliştirdim aşağıdaki linkten erişebilirsiniz.
Patika-Veri-Bilimi/DS-101-Bitirme-Projesi at main · enesmanan/Patika-Veri-Bilimi · GitHub
Kullanıcı yorumlarını görüntüleyebilmek için kayıt olmalısınız!