elektrik port üyelik servisleri elektrik port üyelik servisleri

Python İle Makine Öğrenmesi |
Bölüm 1:
Veriler

Yazı serimizin önceki bölümünde python ile makine öğrenmesini giriş yapmış ve serimizde kullanacağımız python kütüphanelerinden bahsetmiştik. Bu bölümde ise veri kavramı üzerinde duracağız.



A- A+
07.05.2022 tarihli yazı 4511 kez okunmuştur.
Makine öğrenmesi sürecinin gerçekleşebilmesi için probleme özgü yeterli miktarda veri gerekmektedir. Bu veriler “veri kümesi” olarak adlandırılır. Veri kümelerinin boyutu çok büyük olabilir. Fazla verilerden oluşan veri kümesi makinenin öğrenebilmesi için çok daha yararlıdır. Bu durumu şöyle özetleyebiliriz. Bir konuda araştırma yapmak istediğinizi düşünün. Çok daha fazla kaynak ile araştırmanızı genişletebilir ve yaptığınız araştırmayı daha çok yüksek doğrulukla tamamlayabilirsiniz. Böylece yaptığınız araştırma daha güvenilir olacaktır. Makinenin öğrenme sürecini de böyle düşünebiliriz. Makinenin bir problem karşısında doğru bir yanıt üretebilmesi için öncesinde çok fazla kaynağa ihtiyaç duyar. Öğrenme sürecini fazla sayıda veri kaynaklarından gerçekleştiren makinenin yaptığı tahminler doğruluğa daha yakın olacaktır.

Sadece Verinin Yüksek Sayılarda Olması Yeterli mi?

Tabiki de hayır. Bu durumda uygunluktan bahsetmemiz olasıdır. Yüksek sayıda örnek içeren veri kümelerinin tahmin sürecinin öncesinde hatalı bir veri bulundurup bulundurmamasına bakılmalıdır. Çünkü yüksek sayıda örnek içeren verilerin bir kısmı makineyi aldatacak yönde olabilir. Aldatmadan kasıt makineye verilecek eğitim verilerinin anlamlı olmamasıdır. Anlamsız veriler bize bir sonuç çıkarmamıza yardımcı olmayacak işimizi güçleştirecektir. Bunca olumsuzluk içinde makineye eğitmek için vereceğimiz verilerimiz nasıl olmalıdır? Biraz bundan bahsedelim.


 

►İlginizi Çekebilir: Python ile Makine Öğrenmesi | Bölüm 0
 

Verilerin Uygunluğu

Bazen problemimiz için uygun veriyi hazırlamak zor olabilir. Hazırlanan veri içerisinde hatalı özellikler, eksik veriler bulunabilir. Her zaman tahmin aşamasından önce bu durumların temizlenmesi, verilerin probleme uyumlu olması gerekmektedir. Bu durumda verilerin probleme uygunluğunu konuşabiliriz. Toplanan veriler düşük kalitede olabilir. Kaliteden kasıt hatalar, istisnalar, eksik veriler örnek verilebilir. Bu veriler makineler için büyük zorluk oluşturacak, sistemin performansını kötü yönde etkileyecektir.


►İlginizi Çekebilir: SMPS Devresi Tasarlama | 1.Bölüm
 
Verilerin çok fazla özellik bulundurması yine sistem için kötü bir etkendir. Özelliklerin de temizlenmesi en uygun olanlarının yani veriyi etkileyenlerinin seçilmesi gerekmektedir. Problem dahilinde alakasız özellikler bulunduran bir veri kümesinin makine tarafından anlaşılması çok zor olacaktır. Özellikler makine öğrenmesinin performansını etkileyen önemli bir bölümdür. Öznitelik olarak da isimlendirilen bu kavram hakkında oldukça geniş çalışma alanı mevcuttur. Hatta “Öznitelik Çıkarımı” olarak isimlendirilen bu çalışma alanı “Özellik Mühendisliği” gibi bir meslek alanı oluşturmuştur. Veriler toplanırken doğru özelliklerin seçilmesi öğrenme sürecinde daha yararlı bir süreç sağlayacaktır.


►İlginizi Çekebilir: Derin Öğrenme |"Nedir?" Serisi 2.Bölüm
 
Veriler hakkında konuşulması gerekilen diğer bir konuda modeller ile ilgilidir. Oluşturacağımız makine öğrenmesi modelinin veriler ile bir uyumluluğu söz konusudur. Tahmin sürecinin sonunda eğitim verileri ile çıktı üreten sistem değerlendirilirken “test verileri” ile karşılaştırılır. Test verileri ile eğitim verilerinin toplamı veri kümesini oluşturur. Test verileri, sistemin tahmin verileri ile karşılaştırılırken uyumdan söz edilir. Eğer tahmin verileri ile test verileri arasında çok fazla uyum varsa sistem veya model verileri “ezberlemiş” olabilir. Ezber kavramı aşırı derecede birbirine benzeyen tahmin verileri ile test veriler olursa bahsedilebilir. Ama her aşırı uyum durumunda “model ezberlemiş” diye bir kaide yoktur. Model veya sistem gerçekten çok başarılı olabilir. Kullanılan modelin tahmini test verileri ile az uyum içerisinde ise bu model başarısız olarak nitelendirilir. Tabi başarı oranını sizin probleminize göre seçmeniz daha uygun olacaktır. Bazı problemlerde %95 uyum başarı olarak seçilebilecekken bazı problemlerde ise %75 olarak da seçilebilir. Problemin ve verinin büyüklüğüne bağlıdır.

Problem

Problem üzerinde çalışırken, problemi iyi anlamak ve kavramak gerekir. Bunun için ilk başta problemi açıkça tanımlamak ve sonrasında problemin aşağıdaki kategorilerden hangisinde yer aldığını belirlemek gerekir.



1. Değer mi tahmin etmek istiyorsunuz?

2. Veri kümesi içinde “Alışılmadık bir olayı” mı bulmak istiyorsunuz? (Anomali Tespiti)

3. Veriler arasındaki “Örüntüyü” mü keşfetmek istiyorsunuz?

4. Bir kategori (sınıf) mi tahmin etmek istiyorsunuz?

Bunu belirledikten sonra problem için artık kullanacağınız algoritmaları belirleyebilir, bir adım atmaya başlayabilirsiniz.
 

Veri Seçimi

Makine öğrenmesi ile çalışırken uzun süre toplanmış gerçek verileri kullanmak daha sağlıklı olacaktır. Rastgele yapay olarak üretilmiş veri kümelerinin makine öğrenmesinde kullanılması sağlıklı olmayabilir. Bazı durumlarda verileri hazır olarak alabiliriz fakat çoğu zaman verileri toplamak zorunda kalacağız. Verileri veri tabanları gibi çeşitli yerlerden elde edebilir veya kendi veri kümemizi oluşturabiliriz. Bu yazı serisi içerisinde çeşitli veri kümeleri kullanarak makine öğrenmesi gerçekleştirilecektir. Veri kümelerinin yayınlandığı sitelerin bazıları aşağıda verilmiştir. Ayrıca bu sitelere ek olarak TÜBİTAK’ın yayınlamış olduğu bazı verileri de bulabilirsiniz.


UCI Machine Learning Deposu

UCI KDD Arşivi

Kaggle

KAPSARC Veri Portalı

AWS Veri Kümeleri

Data World

Başlangıç olarak seri içerisinde çok basit bir veri kümesi ile çalışacağız. Ardından diğer bölümlerde gerçek veri kümelerini kullanarak çalışmamıza devam edeceğiz. Kaggle sitesinden basit bir veri kümesi seçerek bir başlangıç yapalım.



Bir çalışanın çalışma süresine yani tecrübesine bağlı olarak maaşını tahmin etmeye çalıştığımızı düşünelim. Bu problem dahilinde düşüneceğimiz iki veri bölümü var. Birincisi çalışanın kaç yıl çalıştığı yani tecrübesi ve diğeri ise çalışanın maaşı. Buradaki verilerin bir kısmı “öznitelik” diğer kısmı ise “hedef” olarak nitelendirilir. Hedef olarak isimlendirilen verinin, özniteliklerden ulaşılmaya çalışıldığı durum olarak belirtebiliriz. Öznitelikler ise hedefe ulaşılmaya yarayan, hedefi etkileyen, hedefi niteleyen ve hedef hakkında bilgiler veren verilerdir. Bizim problemimizde ise özniteliğimiz çalışanın çalıştığı süre, hedefimiz ise çalışanın maaşıdır.


Göründüğü üzere çalışanın çalıştığı süre ile aldığı maaşı birlikte değişiklik göstermektedir. Yani süre, maaş durumunu etkiliyor. Bu bölümümüzde veri kümelerinden bahsettik ve başlangıçta çalışacağımız veriyi de seçtik. Diğer bölümümüzde ise Python ile tahmin sürecimize başlıyor olacağız.


Kaynak:

► kaggle.com
► Aurélien Géron - Hands-On Machine Learning with Scikit-Learn and TensorFlow-O’Reilly (2017)


Oğuzhan Çağlar Oğuzhan Çağlar Yazar Hakkında Tüm yazıları Mesaj gönder Yazdır



Aktif etkinlik bulunmamaktadır.
ANKET
Endüstri 4.0 için En Hazır Sektör Hangisidir

Sonuçlar