Biyoinformatik | Makine Öğrenimi


Ayşegül MURAT - Ege Üniversitesi Sağlık Biyoinformatiği A.B.D., Doktora Öğrencisi

Birçoğumuzun da bildiği gibi Netflix, Spotify ve Instagram’ın makine öğrenimi modellerinde kullandığı en muazzam veriler bizlere ait. Hangi filmlerin izleneceğine, hangi yemeğin sipariş edileceğine veya hangi ürünlerin satın alınacağına ilişkin otomatik önerilerden, kişiselleştirilmiş çevrimiçi radyoya ve fotoğraflarınızda arkadaşlarınızı tanımaya kadar birçok modern web sitesi ve cihazın merkezinde makine öğrenimi algoritmaları bulunur. Netflix veya Spotify’dan size gelen öneriler, tüm kullanıcı verileriyle oluşturulmuş kümelerden birine daha çok benzer olmanızla alakalı. Önceki izlediğiniz filmlere bakarak, size benzer izleyicilerin olduğu küme içerisine sizi atıp, kümedeki diğer bireylerin ortak izlediği filmleri sizin önünüze öneri olarak getiriyor olması kulağa oldukça eğlenceli gelebilir. Makine öğrenimi dediğimiz şey, elimizdeki verilerden bilgi çıkarmakla ilgilidir. İstatistik, yapay zekâ ve bilgisayar biliminin kesiştiği bir araştırma alanıdır ve tahmine dayalı analitik veya istatistiksel öğrenme olarak da bilinir. En başarılı makine öğrenimi algoritmaları, bilinen örneklerden genelleme yaparak karar verme süreçlerini otomatikleştiren algoritmalardır [1].


Çevremizdeki her şeyin bir veri kaynağına bağlı olduğu ve hayatımızdaki her şeyin dijital olarak kaydedildiği veri çağında yaşıyoruz [2]. Bir veri setinden yola çıkarak veriyle ilgili hedeflenmiş amaca ulaşmamızı sağlayan modeli oluştururken kullandığımız algoritmalar makine öğrenimi olarak tanımlanabilir. Genel biyoinformatik algoritmalarından farkını şu şekilde ifade etmeye çalışacağım; rasgele (random) oluşturulmuş 1000 ayrı pozitif tam sayı standart bir sıralama işlemi (küçükten büyüğe sıralama-sorting algoritması) ile sıralanırsa bu temel bir algoritma olurken, kullanılan algoritma bu işlemi yapmakla kalmayıp bu sayıları birler basamağına göre ayrı kümelere koyar ve yeni gelen 1001. sayının daha önce oluşturduğu kümelerden hangisine ait olduğunu bulursa bu algoritma makine öğrenimi algoritmasıdır diyebiliriz. Veri setimize göre kadın-erkek, hasta-sağlıklı ve spam-normal e-posta gibi sınıflandırma veya kümelemeler yapılabilir. Bir iş yerindeki maaş ücretlendirmesinin eğitim seviyesi durumundaki değişime, şehir düzeyinde yıllara göre su tüketimine ve toprak kalitesine göre yıllık verimlilikte makine öğrenimi tekniklerinden olan regresyon ile analiz edilebilir. Makine öğrenmesi, yeterli sayıda kaliteli verinin bulunduğu tüm alanlarda kullanılmış, kullanılan ve geliştirilerek kullanılacak olan yöntemlerden biridir [1,3].



Şekil 1: Geleneksel A ve makine öğrenimi B bakış açısı [3].


Makine öğreniminde, istatistik alanında oldukça fazla kullanılan bağımlı-bağımsız-nitel değişkenler gibi kavramların yanı sıra özellik (feature) kavramı da mevcuttur. Kanser hastalığı üzerinden örnek verdiğimiz durum için kanser bağımlı bir değişkendir. Kişinin genetik alt yapısı, cinsiyeti, yaşı, vücut kitle indeksi, yaşadığı coğrafi bölge, etnik köken gibi birçok bağımsız değişkenlere bağlı olan kanser için özellik seçecek olmamız demek; bağımsız değişkenlerden seçilecek kanseri en iyi tanımlayan açıklayıcı değişkeni belirlemek özellik seçimi (feature selection) işlemidir. Kanser örneğinde, kanserle ilgili beş tane gen, kişinin yaşı, kilosu ve cinsiyeti model için özellik olarak seçilebilir. Tabi özellik seçiminde kullanılan birden fazla yöntemi ve bazen de bu özelliklerin optimizasyonunun olduğunu bilmemiz gerek. Diğer bir örnek ise; önceden cinsiyetini bilmediğiniz bir hastanın cinsiyetini belirlemek için, hastanın “soyad” sütununu kullanmak yerine “ad” sütununu kullanmak daha anlamlı bir özellik seçimini oluşturacaktır. Çünkü bir kişinin ilk adıyla cinsiyetini söyleyebilmek çoğu zaman mümkündür [1].


Hiperparametre; veri setleri arasında farklılık gösteren, araştırmacının belirlediği sınıfı veya kümeyi etkileyen her bağımsız değişken için en iyi ağırlık oranını bulurken kullanılan öğrenme hızıdır. Eğer öğrenme çok düşük hızda ise eksik öğrenme (underfitting) veya hızlı oranda oluyorsa aşırı uyum (overfitting) ortaya çıkarır. Bu gibi durumlar ortaya çıkabildiği için hipeparametre belirlenmesi bizim için önem kazanmaktadır [1,2].


Bir Makine Öğrenimi Projesi Adımları


Bir makine öğrenimi projesi üzerinde çalışmak istediğimizde veri yükleme, verileri özetleme, değerlendirme gibi temel adımları kapsar [1-3].

  1. Problemi Tanımlama

  2. Verilerin Hazırlanması

  3. Algoritmaları Değerlendirme

  4. Sonuçların İyileştirilmesi

  5. Sonuçları Sunma


Öğrenme Modelleri


Denetimli (supervised) ve denetimsiz (unsupervised) makine öğrenimi yöntemlerinde sınıflandırma, regresyon ve kümeleme gibi algoritmaları içeren modeller mevcuttur [1, 3]. Bazı örnekler ise şu şekildedir:

  • k-Nearest Neighbors

  • Linear – Logistic Regression Models

  • Naive Bayes Classifiers

  • Decision Trees ve Random Forest

  • Support Vector Machines

  • Neural Networks (Deep Learning)

  • k-Means Clustering

  • DCSCAN

  • Hierarchial Cluster Analysis-HCA


Makine Öğrenmesi Teknikleri


Etiketlenmiş verilerin makineyi eğitmesiyle tahmin yapıp karar vermesinin sağlandığı denetimli öğrenme, etiketlememiş veri setinden yola çıkarak makinenin bu veriler arasındaki ilişkileri bulmasıyla gruplaması ile kümelerin ortaya çıktığı denetimsiz öğrenme, yapılan eğitim sonuçlarının da bir insan gibi değerlendirip makineye geri bildirim yapmasıyla (ikinci algoritma, sonuçlardan öğrenerek ve gerçekleştirilecek eylemin kararını verir) gerçekleştirilen pekiştirmeye dayalı öğrenme olarak üç temel kısma ayrılır. Veri setindeki her varlık veya satır, makine öğreniminde bir örnek olarak bilir, sütunlar ise bu varlıkları tanımlayan özellikler olarak adlandırılır [1,2].


Denetimli Öğrenme (Supervised Learning)


En yaygın olarak kullanılan başarılı makine öğrenimi türleri denetimli öğrenme yöntemleridir. Girdi (input) ve çıktı (output) çiftlerinden oluşan örneklerimizle eğitim yapıyoruz ve sonuçta daha önce hiç görülmemiş yeni veriler için doğru tahminler yapmaya çalışıyoruz. Denetimli öğrenmede genellikle veri setini hazırlamak için insan çabası oldukça fazla gereklidir. Kişileri hasta-sağlıklı, fotoğrafı kedi-köpek, e-postaları spam-spam değil olarak etiketlemek gibi. Bu e-posta spam mı? Bu soruya evet/hayır cevabı verilip etiketlenme yapılır. İkili sınıflandırmada bir sınıf pozitif iken diğer sınıf negatif olup, 1 ve 0 olarak sınıf etiketiyle etiketleriz. Bazen ikiden fazla sınıflandırma yapılması gerekebilir. Mesela bir web sitesinin hangi dilde olduğu. Buradaki sınıflar, olası dillerin önceden tanımlanmış bir listesi olacaktır. Gelir tahmini yapacağımız bir veri setinde ise, kişinin geliri regresyon ile tahmin edilebilir. Çünkü gelir kişinin eğitimine, yaşına yaşadığı yere ve hatta kabul etmeyi tercih etmesem de cinsiyetine bağlı olabilir [1,2].



Şekil 1: A. Denetimli öğrenme için etiketlenmiş bir eğitim seti (ör. spam sınıflandırması). B. Denetimsiz öğrenim için etiketsiz bir eğitim seti [3].


Denetimsiz Öğrenme (Unsupervised Learning)


Tahmin edileceği gibi eğitim verileri etiketsizdir. Örneğin, Bezelye Dergi blog ziyaretçilerini hakkında çok fazla verimizin olduğunu varsayalım. Benzer ziyaretçi gruplarını tespit etmeye çalışmak için bir kümeleme algoritması çalıştırmak istediğimizde, algoritmaya hangi ziyaretçinin nasıl bir gruba ait olduğunu söylemeyiz. Bizim yardımımız olmadan algoritma ziyaretçilere ait kaç küme olduğunu ve bu kümelerin neler olduğunu bulur. Analiz sonucunda ziyaretçilerimizin %40’nın biyoinformatik okumayı sevdiğini ve akşamları genellikle okuyucuların kadın olduğunu, %20’sinin hafta sonları sayfayı ziyaret eden ve covid-19 ile ilgilenen genç bilim severler olduğunu, %25’nin ise siteyi en kısa okuma süresinden daha uzun sürede kullandığını fark edebiliriz. Hiyerarşik kümeleme yaparak her grubu daha küçük alt gruplara da bölmemiz mümkün olacaktır. Siteye yeni gelen kullanıcının ise hangi kümeye ait olacağını bir süre sonra otomatik belirleyebiliriz. Belki de eğitim verisinde yaş aralığına bakarak okunacak yazı önerilerini doğrudan sayfada gösterebiliriz [2,3].





Referanslar

  1. Müller, A. C., & Guido, S. (2016). Introduction to machine learning with Python: a guide for data scientists. " O'Reilly Media, Inc.".

  2. Sarker, I. H. (2021). Machine learning: Algorithms, real-world applications and research directions. SN Computer Science, 2(3), 1-21.

  3. Géron, A. (2019). Hands-on machine learning with Scikit-Learn, Keras, and TensorFlow: Concepts, tools, and techniques to build intelligent systems. O'Reilly Media.