Onbinlerce dijital veri ile yapılan sosyal araştırmaların veri sınıflandırması nasıl bu kadar hızlı yapılıyor? Cevabı basit: Makine Öğrenim Modelleri ile. Peki Makine Öğrenim Modeli nedir?
Bu yazı, Verizekalılar İçgörü Kütüphanesi'nin 7. yazısı. Bu yazıya başlamadan önce aşağıdakileri okuduğundan emin ol.
Biliyoruz ki hayatımızdaki her şey dijitalleşti. En basit işlerin bile artık robotlarla, makinelerle yapılmaya başlandığı bu dönemde, veri sınıflandırmasını sadece insan gücü ile yapmanın da oldukça büyük bir kaynak kaybına yol açacağını kabul ediyoruz.
Konvansiyonel araştırmalara göre çok daha hızlı tamamlanan ve dijital veri ile yapılan sosyal araştırmalarda bazen onbinlerce verinin işaretlenmesi gerekebilir. Peki bu kadar veriye rağmen veri sınıflandırması nasıl bu kadar hızlı yapılıyor? Cevabı basit: Makine Öğrenim Modelleri ile.
Makine öğrenimi, kendisine iletilen verilerle öğrenen ya da performansı iyileştiren sistemler oluşturmaya odaklanan bir yapay zeka alt kümesidir. Makine öğreniminin veri sınıflandırmada kullanımı ise, önceden bir kişi tarafından sınıflandırılan belirli sayıda verinin makineye öğretilmesi ve sonrasında makinenin benzer konulu büyük verileri aynı şekilde ve yüksek hızda otomatik olarak sınıflandırması işlemidir.
Eğitim Seti (Training Set) ve Test Seti Hazırlama
Makine öğrenim modeli oluşturmanın ilk adımı, araştırma ihtiyacına göre, veride elle (bir kişinin veri okuyarak yaptığı) sınıflandırma yapılmasıdır.
Sınıflandırma yapılacak kategoriler:
Makine öğrenim modelleri 100-200’lük bir veri setini işaretlemekte de kullanılabilir; ancak bu modeller genellikle insan gücü ile işaretleme yapmanın zaman kaybı olacağı ya da çok uzun zaman alacağı 50.000-100.000 ya da daha fazla verinin otomatik işaretlenmesi için kullanılır.
Örnekle açıklamak gerekirse; diyelim ki elimizde 1.000 veriden oluşan bir veri seti var ve bu veride sınıflandırma yaptıktan sonra gelecek projeler-araştırmalar için benzer verileri otomatik olarak işaretleyen bir makine öğrenim modeli oluşturmak istiyoruz. Bunun için izlememiz gereken birkaç önemli adım var:
Modelin Test Edilmesi
800 paylaşımdan oluşan, her kategorisinde eşit sayıda veri bulunan işaretlenmiş veri setimizi (eğitim seti) makineye öğrettikten sonra, kalan 200’lük veri ile de oluşturduğumuz makine öğrenim modelini test etmeliyiz. 200’lük veri setini de daha önce işaretlemiştik, şimdi modelin ne kadarını bizim gibi yani doğru işaretlediğini kontrol etme vakti. Modelimiz test setinde %80’in üzerindeki veriyi doğru işaretlediyse görece iyi bir model diyebiliriz. Eğer doğruluk oranımız (AR - accuracy rate) %90’ın üzerinde ise gerçekten iyi çalışan bir model oluşturmuşuz demektir. Doğruluk oranının %90'ın üzerinde olması bu makine öğrenim modeli ile yapılan sınıflandırmada her 10 veriden en az 9'unun doğru sınıflandırıldığı anlamına gelir.
Önemli Notlar
Makine öğrenimi modeli oluşturulacak veri setinde olması gereken optimum veri sayısına deneme-yanılma yöntemi ile karar verebiliriz. Bazı modellerin yüksek doğruluk payı ile çalışabilmesi için modelinizde yer alacak her bir etiket için 500 örnek veri bulunan bir eğitim seti (örneğin veride “uygulama” ve “müşteri hizmetleri” kategorilerinde işaretleme yaptırmak istiyoruz, o halde her bir kategoriden 500 içeriğin bulunduğu bir eğitim seti) yeterli olabilirken, daha karmaşık verilerden oluşan ve fazla sayıda kategoride işaretlenmiş (multi-class) bir veri ile model oluşturulmak istendiğinde eğitim setinde daha fazla sayıda veri yani örnek olması gerekir.
Makine öğrenim modelini oluşturduktan sonra ilk aşama toplam veriden ayırdığımız test seti ile modeli test etmektir, ancak tek bir veri seti ile test yapmak bazen yeterli olmayabilir. Bu nedenle çapraz doğrulama (k-fold cross-validation) yapılması yani tek bir veri setinden birden fazla makine öğrenim modeli oluşturulması, bu modellerin farklı test setleri ile kontrol edilmesi ve hepsinin doğruluk payının ortalamasının alınması oldukça önemlidir. Çapraz doğrulamayı daha detaylı anlatmak için bir önceki senaryomuza geri dönelim.
1000’lik veri setimizin bir kısmı ile modelimizi eğitmek, bir kısmı ile eğittiğimiz modelimizin başarısını değerlendirmek istemiştik. Basit yaklaşım ile verinin %80’ini eğitim için, %20’sini de test için ayırmıştık. Ancak burada veri parçalanırken verinin dağılımına bağlı olarak modelin eğitim ve testinde bazı sapmalar (bias) ve hatalar oluşabilir. İşte k-fold cross validation yani çapraz doğrulama, veriyi belirlenen bir k sayısına göre eşit parçalara böler, her bir parçanın hem eğitim hem de test için kullanılmasını sağlar, böylelikle dağılım ve parçalanmadan kaynaklanan sapma ve hataları minimuma indirir. Ancak modeli k kadar eğitmek ve test etmek gibi ilave bir veri işleme yük ve zamanı ister. Bu durum eğitim ve testi kısa süren küçük ve orta hacimli veriler için sorun olmasa da büyük hacimli veri setlerinde hesaplama ve zaman yönünden maliyetli olabilir.