Özellik mühendisliği (feature engineering) veri bilimi ve makine öğrenmesi süreçlerinin temel yapı taşlarından birini oluşturan oldukça önemli bir unsurdur. Bir makine öğrenmesi projesinde, özellik mühendisliği kapsamında, projede oluşturulacak modelin performansını artırmak ve verileri model kurulumuna hazırlamak amacıyla çeşitli teknikler kullanılır.
Ham veriden değişken, özellik (feature) türetme işlemi olarak tanımlanan özellik çıkarımı, özellik mühendisliğinin bir alt küme tekniklerinden biridir.
Ham veriden değişken türetmek iki başlıkta düşünülebilir:
Genel anlamda nümerik veriler ve tabular data denilen, Excel tipindeki veriler ile çalışmak daha rahat ve kolaydır. Fakat resim, metin ve ses gibi yapısal olmayan bir veri ile karşılaşıldığında bazı öğrenme algoritmalarını kullanmak için bu yapısal olmayan verinin matematiksel şekilde anlaşılabilecek yapılara, yani nümerik temsillere dönüştürülmesi gerekmektedir. Bu aşamada özellik çıkarımı işlemlerini gerçekleştirebilmek için öncelikle yapısal olmayan veriler algoritmalar tarafından anlaşılabilecek temsillere dönüştürülür ve sonrasında özellik çıkarımı işlemleri uygulanır.
Öncelikle yapısal değişkenlerden özellikler çıkarma ve yeni değişkenler üretme durumlarını gözlemleyelim:
Örnek olarak elimizde yukarıdaki görselde betimlenen bir değişken olduğunu düşünelim. Bu değişkenin bir zaman değişkeni olduğu kolaylıkla gözlemlenebilir. Bu değişkenden yıl, ay, gün ve saat bilgisi verebilecek ayrı değişkenler türetilebilir; günlerin haftanın hangi günlerine denk geldiği bulunabilir ve gün isimleri ayrı bir değişken olarak çıkarılabilir. Yapısal değişkenlerden yeni değişkenler türetmeye örnek olan bu işlem sonucunda veri seti aşağıdaki gibi zenginleşecektir.
Bir başka örnekte metinsel bir ifade olarak, Titanic veri setindeki name değişkeninde bulunan isimleri inceleyelim:
Panula, Mrs. Juha (Maria Emilia Ojala)
Thorneycroft, Mr. Percival
Jensen, Mr. Hans Peder
Sagesser, Mlle. Emma
Skoog, Miss. Margit Elizabeth
Foo, Mr. Choong
Bu değişkenden yeni değişkenler türetilebilmek için gözlemler yapılmak istendiğinde, isimlerin ön kısımlarında Mrs, Miss, Mr, Dr ve benzeri birtakım hitap şekilleri görülebilmektedir. Bu ifadelerden yola çıkarak bir kişinin Mrs. ve Miss. hitaplarına sahip olması ile cinsiyet, medeni durum gibi özelliklerin türetilebileceği gibi Dr. gibi hitaplardan ise eğitim durumu ve benzeri özellikler türetilebilir. Bu özellikler kayda değer bir frekansa sahipse bir değişken olarak da kullanılabilir.
Görülüyor ki yalın halde bağımlı değişken açısından isim bilgisi dışında anlamlı bir bilgi taşımayan bu değişkenden, özellik çıkarımı teknikleri ile yeni ve anlamlı olabilecek değişkenler türetilebilmektedir. Burada anlamlı olabilecekten kasıt, ilgilenilen problemdeki hedef değişken (bağımlı değişken) açısından bir ayırt edicilik oluşturup oluşturmama durumudur.
Bu senaryoda türetilebilecek olası değişkenleri türetme fikri kulağa hoş gelse de, türetilen yeni değişkenlerin bağımlı değişkenle olan durumları hakkında net bir bilgi ilk aşamada mevcut değildir. Buna rağmen olası bütün senaryolarda, üretilebilecek bütün potansiyel değişkenlerin üretilmesi faydalı olacaktır.
Yapısal değişkenlerden sonra yapısal olmayan veriden özellik çıkarma ve yeni değişkenler üretme durumlarını gözlemleyelim:
Yukarıdaki görselde, bir filmin açıklama metni incelendiğinde, doğal dil işleme teknikleri ve tavsiye sistemlerinde kullanılan içerik temelli bazı yöntemlerle film öneri sistemi geliştirilmek istendiğini düşünelim. Bu string ifadenin, algoritmaların anlayabileceği şekilde yeniden düzenlenmesi gerekmektedir.
Bir film açıklamasının (yapısal olmayan bir verinin) bilgisayara anlatılabilmesi için, açıklamanın matematiksel bir temsile dönüştürülmesi gerekmektedir. Bir çözüm örneği olarak açıklaması dönüştürülmek istenen filme benzer yüzlerce filmin açıklamaları incelenir ve bu açıklamalarda yer alan bütün eşsiz kelimeler sütunlara yerleştirilir. İlgili filmin açıklamasında bulunan her kelimeden kaçar adet olduğunu farklı değişkenlerde betimleyerek, kelimeler üzerinden oluşturduğumuz değişkenleri vektörleştirebiliriz. Tüm kelimeler için bir matris formunda istenilen temsil gerçekleştirilir. Metin vektörleştirilerek sayılara dönüştürüldüğünde, kullanılacak yöntem ve algoritmalar kapsamında, üzerinde işlem yapılabilir bir hale gelecektir. Bu örnekte her bir kelimenin ilgili film açıklamasında kaç defa geçtiği bilgisi türetilmiştir. Burada yapılan işlem özellik çıkarımı kapsamında yapılabilecek işlemlere bir örnektir.
Görsel linkteki referanstan esinlenilerek oluşturulmuştur.
Yapısal olmayan veri kapsamında bir grup hayvan görsellerine sahip olunduğunu ve bir sınıflandırma probleminin çözüme kavuşturulmaya çalışıldığını düşünelim. Görseller lineer cebir dünyasında temsil edilebilir bir forma getirilerek, matrisler ve vektörler kullanarak üzerinde çalışılabilir forma dönüştürülmelidir. İlgili görsellerin matematiksel ifadelerle temsil edilmesi adına piksellerin yoğunlukları, belirli bölgelerdeki yoğunluk farklılaşmaları, piksellerdeki renk dağılımları gibi yapılar üzerinden özellik türetilebilmektedir. Bu kapsamda yapılacak çalışmalar ile kulaklar, kafa bölgesi, gövde gibi bölgeler üzerinde özelleştirerek bölgesel özellikler türetilebilir. Görsellere bu şekilde parça parça odaklanıldığında ve bu parçalar özelinde özellikler türetildiğinde, görsellerin bütünü için matematiksel temsiller oluşturulmuş olur. Geliştirilen yaklaşımlar diğer tüm görseller için de uygulanacak olduğunda, türetilen özelliklerin ayırt edicilikleri birçok veri ile beslendiğinde ortaya çıkacaktır. Görsellerin matematiksel temsilleri hakkında daha detaylı bilgi edinmek için evrişimli sinir ağları konu başlıklı yazımıza da göz atabilirsiniz.
Özetle makine öğrenmesinden derin öğrenmeye kadar birçok modelleme sürecinin kritik aşamalarından biri özellik çıkarımıdır. Özellikle kısıtlı veriden tahmin modellemesi yapılmaya çalışıldığı durumlarda, ister bir sınıflandırma isterse bir regresyon problemi olsun, verinin yapısal formuna (yapısal, yapısal olmayan) bakılmaksızın, veriden mümkün olduğunca çok özelliğin çıkarılması tercih edilmektedir.
Özellik mühendisliği hakkında detaylı bilgi edinmek isterseniz Miuul'un Özellik Mühendisliği üzerine oluşturduğu eğitimlere göz atabilir, veri bilimini kariyer yolculuğunuz haline getirmek isterseniz de Miuul’un Veri Bilimci Kariyer Yolculuğu’nu incelemeniz faydalı olacaktır.
Kaynaklar