Bu eğitimde, veri biliminin ne olduğundan bahsedeceğiz.
Google'da "veri bilimi nedir?" ya da "what is data science?" yazıp arattığımızda, çok miktarda kafa karıştırıcı bilgiye ulaşırız. Ancak veri biliminin anlamı aslında oldukça basittir:
Veri bilimi, bugün bize sunulan binlerce veri biçimini almak ve bunları anlamlı sonuçlar çıkarmak için kullanmak üzere oluşturulmuş bir dizi metodolojidir.
Veri, etrafımızı çevreleyen tüm platformlarda toplanmaktadır. Sosyal medyadaki beğeniler, internetin herhangi bir sayfasında gerçekleştirdiğimiz tıklamalar, gönderdiğimiz ve aldığımız e-postalar, kredi kartı harcama kayıtları veya tweetler, bugünü daha iyi tanımlamak ve geleceği daha iyi tahmin etmek için kullanılabilecek büyük verinin birer parçasıdır.
Veri ile aşağıdakileri gerçekleştirmek mümkündür:
Veri biliminin son yıllarda popülerliğinin artmasının nedeni, günümüzde her platformda geçmişte olduğundan daha fazla veri toplanıyor olmasıdır. Veri her yerdedir ve işletmeler, kuruluşlar ve hükümetler için inanılmaz derecede değerli bilgiler sunar.
Veri biliminde herhangi bir proje, genellikle, yukarıdaki diyagramda görüldüğü gibi dört aşama içerir:
Bu kısımda, veri biliminin gerçek dünyadaki sorunlara nasıl uygulanabileceği konusunda bilgi sahibi olacağız.
Veri biliminin üç alanına göre bir açıklama yapacağız: geleneksel makine öğrenimi, nesnelerin interneti ve derin öğrenme.
Büyük bir bankada dolandırıcılık tespitinde çalıştığımızı varsayalım. Veri bilimci olarak, bir işlemin hileli olma olasılığını belirlemek için bankanın sahip olduğu verileri kullanmak isteriz. Örneğin; her satın alma işlemiyle ilgili miktar, tarih, konum, satın alma türü ve kart sahibinin adresi gibi bilgileri toplayarak başlayabiliriz. Ayrıca, işlemin hileli olup olmadığını belirten bir etiket değişkenini de veriye dahil etmemiz gerekir. Genellikle, sağlıklı bir veri tabanında, istediğimiz tüm bilgilere ulaşmamız mümkündür. Toparladığımız bu verilere "öğrenme verileri" denir ve bir algoritma oluşturmak için kullanılırlar. Yeni bir işlem gerçekleştiğinde, algoritmamıza, bu işleme ait bilgiler girilir ve çıktı olarak bu işlemin hileli olma olasılığı hakkında bir tahmin elde edebiliriz.
Makine öğrenmesi için aşağıdaki elementlere ihtiyacımız bulunmaktadır:
Fiziksel aktiviteyi izlemek için, akıllı bir saat oluşturmaya çalıştığımızı varsayalım. Buradaki amaç, yürüme veya koşma gibi farklı aktiviteleri otomatik olarak tespit etmektir. Akıllı saatimizin, hareketi üç boyutta izleyen "ivmeölçer" adı verilen özel bir sensörle donatılmış olduğunu düşünelim. Bu sensör tarafından üretilen veriler, makine öğrenmesi problemimizin temelini oluşturur. Veri üretmek amacıyla, birkaç gönüllünün saatimizi takmasını isteyebilir ve "ivmeölçer"in koşarken veya yürürken verileri kaydetmesini sağlayabiliriz. Daha sonra, bu ivmeölçer verileriyle, yürüme veya koşma durumundan herhangi birini tahmin eden bir algoritma geliştirebiliriz.
Akıllı saatimiz, genellikle veri bilimi ile birleştirilen ve nesnelerin interneti (Internet of Things - IoT) olarak da bilinen, hızlı büyüyen bir alanın bir parçasıdır. IoT, standart bir bilgisayar sayılmayan, ancak yine de veri iletme yeteneğine sahip olan akıllı aletleri ifade eder. Bunların arasında akıllı saatleri, internet bağlantılı ev güvenlik sistemlerini, elektronik para toplama sistemlerini, bina enerji yönetim sistemlerini sayabiliriz. IoT verileri, veri bilimi projeleri için önemli bir kaynaktır.
Kendi kendine giden arabaların önemli görev ve fonksiyonlarından biri, insan içeren bir görüntüyü algılamadır. Bu görevi gerçekleştirecek algoritma için veri kümesi, her pikselinde grinin uygun tonunu temsil eden bir numara bulunan bir matris olabilir. Fakat, bu matrisi herhangi bir geleneksel makine öğrenmesi algoritmasına girdi olarak verirsek, çok fazla girdi veri olması nedeniyle, geçerli bir sonuç almamız pek olası değildir. Bu sorunun çözümü için, derin öğrenme (deep learning) adı verilen ve gelişmiş bir makine öğrenmesi alt alanına ait olan algoritmaya ihtiyacımız vardır. Derin öğrenmede, "nöronlar" olarak adlandırılan çok sayıda mini algoritma katmanı, karmaşık sonuçlar çıkarmak için birlikte çalışır. Derin öğrenme, geleneksel bir makine öğrenme modelinden çok daha fazla öğrenme verisi gerektirir. Ancak, geleneksel modellerin yapamayacağı ilişkileri de öğrenebilir. Derin öğrenme, görüntü sınıflandırması veya dil anlayışı gibi veri yoğun problemleri çözmek için çokça kullanılır.
Bu kısımda, farklı veri bilimi rolleri ve kullandıkları araçlar hakkında bilgi sahibi olacağız.
Veri biliminde tek bir rol olmadığını söyleyebiliriz. Genel olarak, dört farklı rol vardır: Veri mühendisi, veri analisti, veri bilimcisi ve makine öğrenmesi uzmanı.
Veri mühendisleri veri akışını kontrol eder: Özel veri boru hatları ve depolama sistemleri oluştururlar. Fakat, sadece veri toplanmasıyla değil, altyapı tasarımı aracılığıyla verinin kolay elde edilmesini ve işlenmesini sağlarlar. Veri bilimi iş akışının bir parçası olarak, ilk aşamaya odaklanırlar: veri toplama ve depolama.
Veri mühendisleri, verileri depolamak ve düzenlemek için kullandıkları SQL'de uzmandır. Ayrıca verileri işlemek için Java, Scala veya Python gibi programlama dillerinden birini kullanırlar. Görevleri otomatikleştirmek ve çalıştırmak için komut satırında Shell kullanırlar. Veri mühendisleri, büyük miktarda veri almak ve depolamak için bulut bilişiminde uzman olmalıdır.
Veri analistleri, mevcut durumu veri yoluyla açıklar. Bu işi, verileri inceleyerek ve görselleştirerek ve gösterge tabloları oluşturarak yaparlar. Bu görevleri yerine getirmek için genellikle önce verileri temizlemeleri gerekir. Analistler, diğer rollerden daha az programlama ve istatistik deneyimine sahiptir. İş akışının bir parçası olarak, iki orta aşamaya odaklanırlar: veri hazırlama, keşfetme ve görselleştirme.
Veri analistleri, verileri sorgulamak için veri mühendisleri tarafından da kullanılan SQL'i kullanır. Veri mühendisleri SQL depolama ve yapılandırma çözümleri oluştururken, analistler analizleriyle ilgili verileri almak ve toplamak için mevcut veritabanlarını kullanırlar. Veri analistleri, küçük miktarlarda veri üzerinde basit analizler yapmak için elektronik tabloları (Excel gibi) da kullanır. Analistler ayrıca, gösterge tabloları oluşturmak ve analizlerini paylaşmak için Tableau, Power BI veya Looker gibi iş zekası (business intelligence) araçlarını kullanırlar. Daha gelişmiş veri analistleri, verileri temizlemek ve analiz etmek için Python veya R kullanabilir.
Veri bilimcileri, yalnızca verileri açıklamak yerine verilerden yeni bilgiler çıkarmalarını sağlayan istatistik biliminde güçlü bir geçmişe sahiptir. Ayrıca, tahmin için geleneksel makine öğrenmesi yöntemlerini kullanırlar. İş akışının bir parçası olarak, son üç aşamaya odaklanırlar: veri hazırlama, keşif ve görselleştirme, deney ve tahmin.
Analistlere benzer şekilde, veri bilimcileri SQL'de güçlü becerilere sahiptir. Ayrıca Python ve R gibi dillerde de uzman olmalıdırlar.
Makine öğrenmesi uzmanları veri bilimcilerine benzer, ancak makine öğrenmesi konusunda uzmandırlar. Makine öğrenmesi belki de veri biliminin en gürültülü kısmıdır ve bildiklerimizden yola çıkarak doğru olabilecek şeyleri tahmin etmek için kullanılır. İş akışının bir parçası olarak, son üç aşamayı (veri hazırlama, keşif ve görselleştirme, deney ve tahmin) özellikle "tahmin" etmeye odaklanarak gerçekleştirirler.
Makine öğrenmesi uzmanları, tahmin modellerini oluşturmak için Python veya R kullanırlar. Bu dillerde, güçlü derin öğrenme algoritmalarını çalıştırmak için tensorflow gibi popüler makine öğrenme kütüphanelerini de kullanırlar.