Makine Öğreniminde Özellik Çıkarımı: Kapsamlı Rehber
Görüntü, ses ve zaman serisi verileri için uygulamalı Python örnekleriyle özellik çıkarım tekniklerini öğrenin. Ham veriyi anlamlı özelliklere dönüştürmeyi ve makine öğrenimi uygulamalarındaki yaygın zorlukların üstesinden gelmeyi keşfedin.
Makine öğreniminde özellik çıkarımı, ham veriyi anlamlı özellikler kümesine dönüştürerek temel bilgiyi yakalarken fazlalığı azaltır. Boyut indirgeme tekniklerini ve mevcut veriden yeni özellikler oluşturan yöntemleri içerebilir.
Bir pazarda meyveleri tanımlamaya çalıştığınızı hayal edin. Sayısız özelliği (ağırlık, renk, doku, şekil, koku vb.) dikkate alabileceğiniz gibi, elma ile portakalı ayırt etmek için yalnızca birkaç temel özelliğin, örneğin renk ve boyutun, yeterli olduğunu fark edebilirsiniz. Özellik çıkarımı tam olarak bunu yapar. Verinizin en bilgilendirici özelliklerine odaklanmanıza yardımcı olur.
Özellik çıkarımı yapılırken, özgün veriler matematiksel olarak yeni bir özellik kümesine dönüştürülür. Bu yeni özellikler, verinin en önemli yönlerini yakalayacak ve muhtemelen karmaşıklığını azaltacak şekilde tasarlanır. Çıkarılan özellikler çoğu zaman, özgün veride hemen göze çarpmayabilecek altta yatan örüntüleri veya yapıları temsil eder.
Özellik Çıkarımı
Sıradaki bölümlerde, özellik çıkarımının makine öğreniminde neden bu kadar önemli olduğunu inceleyecek ve farklı veri türlerinden özellik çıkarmaya yönelik çeşitli yöntemlere ve bunların kodlarına bakacağız. Uygulamalı örnekler isterseniz, özellik çıkarımına ayrılmış bir bölümü bulunan Python ile Boyut İndirgeme kursumuza göz atın.
Makine Öğreniminde Özellik Çıkarımı neden önemlidir?
Özellik çıkarımı, makine öğreniminde önemli bir rol oynar. Başarısız olan bir model ile başarılı olan bir model arasındaki farkı yaratabilir. Etkili makine öğrenimi modelleri kurmak için bunun neden temel olduğunu görelim.
Model doğruluğunu ve verimliliğini artırma
Ham verilerle çalışırken, makine öğrenimi modelleri çoğunlukla anlamlı örüntülerle gürültüyü ayırt etmekte zorlanır. Özellik çıkarımı, modellerinizin öğrenme ve performansını önemli ölçüde iyileştirebilecek bir veri ön işleme adımıdır.
Model Performansı ve Eğitim Süresi
Örneğin, bir model ham veriyle %85 doğruluk elde ederken, aynı model özenle çıkarılmış özelliklerle eğitildiğinde %95 doğruluğa ulaşabilir. Bu iyileşme modelin değiştirilmesinden değil, modele öğrenmesi için daha kaliteli girdi verilmesinden kaynaklanır.
Yüksek boyutlu veri kümelerini yönetme
Modern veri kümeleri sıklıkla yüzlerce hatta binlerce özellikle gelir. Özellik çıkarımı, bu durumun doğurduğu çeşitli zorlukları ele almaya yardımcı olur.
Boyutlanma laneti: Özellik sayısı arttıkça, veri özellik uzayında giderek seyrekleşir. Bu da modellerin anlamlı örüntüler bulmasını zorlaştırır. Özellik çıkarımı, önemli ilişkileri korurken boyutu azaltan daha kompakt bir temsil oluşturur.
Yüksek bellek kullanımı: Yüksek boyutlu veriler işleme sırasında daha fazla depolama ve belleğe ihtiyaç duyar. Yalnızca en ilgili özellikleri çıkararak, veri kümelerimizin bellek ayak izini, bilgilendirici değerlerini korurken önemli ölçüde azaltabiliriz.
Veri görselleştirme: Üçten fazla boyutu doğrudan görselleştirmek imkânsızdır. Özellik çıkarımı, boyutu iki veya üç özelliğe indirerek veriyi çizilebilir ve yapısı görsel olarak anlaşılabilir hâle getirir.
Özellik çıkarımı, temel bilgiyi korurken boyutu azaltarak bu zorlukları ele alır. Bu azalma, geniş, yüksek boyutlu verileri daha kompakt ve yönetilebilir bir forma dönüştürür; bu da model performansını artırır.
Hesaplama karmaşıklığını azaltma ve aşırı uyumu önleme
Özellik çıkarımı, makine öğrenimi modelleri için iki kritik fayda sağlar:
Daha düşük hesaplama gereksinimleri
Daha az özellik daha hızlı eğitim süreleri demektir
Model dağıtımı sırasında azaltılmış bellek kullanımı
Daha verimli tahmin üretimi
Daha iyi genelleme
Daha basit özellik uzayları aşırı uyumu önlemeye yardımcı olur
Modeller daha sağlam örüntüler öğrenir
Yeni, görülmemiş verilerde iyileştirilmiş performans
Özellik Çıkarımı Olan ve Olmayan Durumların Karşılaştırması
Yukarıdaki görselleştirme, özellik çıkarımının nasıl daha basit ve daha sağlam modellere yol açabileceğini gösterir. Soldaki grafikte gürültülü, yüksek boyutlu veriye uymaya çalışan karmaşık bir model; sağdaki grafikte ise özellik çıkarımının nasıl daha net ve genellenebilir bir örüntü ortaya koyduğu görülüyor.
Ham veri yerine çıkarılmış özelliklerle çalışmak, modele öğrenmesi gereken bilginin berrak ve damıtılmış bir hâlini sunmak gibidir. Bu, öğrenme sürecini yalnızca daha verimli kılmakla kalmaz; gerçek dünya uygulamalarında daha iyi performans gösterme olasılığı yüksek modeller üretir.
Şimdi farklı özellik çıkarımı yöntemlerine bakalım.
Özellik Çıkarımı Yöntemleri
Özellik çıkarımı yöntemleri genel olarak iki yaklaşıma ayrılır: manuel özellik mühendisliği ve otomatik özellik çıkarımı. Ham veriyi anlamlı özelliklere dönüştürmede her iki yöntemin de nasıl yardımcı olduğuna bakalım.
Manuel özellik mühendisliği
Manuel özellik mühendisliği, alan bilgisini kullanarak ham veriden ilgili özellikleri belirlemeyi ve oluşturmayı içerir. Bu uygulamalı yaklaşım, anlamlı özellikler oluşturmak için probleme ve veriye dair anlayışımıza dayanır.
Görüntü işlemeye gelince, manuel özellik mühendisliği; nesne sınırlarını belirlemek için kenar tespiti, renk dağılımını yakalamak için renk histogramları, örüntüleri nicemlemek için doku analizi ve nesne geometrisini tanımlamak için şekil betimleyicileri gibi teknikleri içerebilir.
Görüntü Özellik Çıkarımı
Tablo verileri için manuel özellik mühendisliği; mevcut özellikler arasında etkileşim terimleri oluşturmayı, değişkenleri logaritmik veya polinom fonksiyonlarla dönüştürmeyi, veri noktalarını anlamlı istatistiklere toplulaştırmayı ve kategorik değişkenleri kodlamayı içerir.
Tablo verilerinde özellik çıkarımı
Bu teknikler, alan bilgisinin rehberliğinde veri temsilinin kalitesini artırır ve model performansını önemli ölçüde iyileştirebilir.
Otomatik özellik çıkarımı
Otomatik özellik çıkarımı, açık insan yönlendirmesi olmadan özellikleri keşfetmek ve oluşturmak için algoritmalar kullanır. Manuel özellik mühendisliğinin pratik olmayabileceği veya verimsiz kalabileceği karmaşık veri kümeleriyle çalışırken özellikle kullanışlıdır.
Yaygın otomatik yaklaşımlar şunlardır:
Temel Bileşenler Analizi (PCA): Veriyi, her bileşenin kalan maksimum varyansı yakaladığı, birbiriyle ilişkisiz bileşenler kümesine dönüştürür. Bu yaklaşım, verideki temel bilgiyi korurken yapısını basitleştirdiği için boyut indirgeme için özellikle kullanışlıdır.
Temel Bileşenler Analizi (PCA)
Otoenkoderler: Verinin sıkıştırılmış temsillerini öğrenerek doğrusal olmayan ilişkileri yakalayan sinir ağlarıdır. Geleneksel doğrusal yöntemlerin yetersiz kalabileceği yüksek boyutlu veri kümelerinde özellikle etkilidirler.
Özellik mühendisliği görevlerini basitleştirmek için çeşitli araç ve kütüphaneler ortaya çıkmıştır. Örneğin, Scikit-learn'ün decomposition modülü çeşitli boyut indirgeme yöntemleri sunar; PyCaret ise otomatik özellik seçimi yetenekleri sağlar.
Hem manuel hem de otomatik yaklaşımların güçlü yanları vardır. Her bir yaklaşımın güçlü yönlerine bakalım.
Manuel Mühendislik
Otomatik Çıkarım
Alan bilgisi entegrasyonu
Ölçeklenebilirlik
Yorumlanabilir özellikler
Karmaşık örüntüleri işler
İnce ayarlı kontrol
İnsan önyargısını azaltır
Özgül ihtiyaçlara uyarlanır
Gizli ilişkileri keşfeder
Manuel ve otomatik yöntemler arasındaki seçim genellikle veri kümesi karmaşıklığı, alan bilgisinin mevcudiyeti, yorumlanabilirlik gereksinimleri, hesaplama kaynakları ve zaman kısıtları gibi faktörlere bağlıdır.
Çok karmaşık veri kümeleri için veya zaman ve kaynakların sınırlı olduğu durumlarda, otomatik yöntemler hızla faydalı özellikler üretebilir. Buna karşılık, alan bilgisinin mevcut olduğu ve yorumlanabilirliğin öncelik taşıdığı durumlarda, eldeki problemle yakından uyumlu, özel özellik mühendisliğine imkân tanıdığı için manuel yöntemler tercih edilebilir.
Uygulamada, başarılı birçok makine öğrenimi projesi her iki yaklaşımı da birleştirir: alan bilgisini özellik mühendisliğine yön vermek için kullanırken, insan uzmanlara hemen görünmeyebilecek ek örüntüleri keşfetmek üzere otomatik yöntemlerden yararlanır.
Bir sonraki bölümde, çeşitli alanlarda birkaç özellik çıkarımı tekniğine bakacağız.
Özellik Çıkarımı Teknikleri
Her veri türü, kendine özgü özellikleri için optimize edilmiş belirli özellik çıkarımı teknikleri gerektirir. Farklı veri türleri için en yaygın tekniklere bakalım.
Özellik Çıkarımı Teknikleri
Görüntü özellik çıkarımı
Görüntü özellik çıkarımı, ham piksel verilerini temel görsel bilgileri yakalayan anlamlı temsillere dönüştürür. Modern bilgisayarla görmede kullanılan üç ana teknik kategorisi vardır: geleneksel yöntemler, derin öğrenme tabanlı yöntemler ve istatistiksel yöntemler.
Görüntü Özellik Çıkarma Yöntemleri
Her bir yönteme bakalım.
Geleneksel bilgisayarla görme yöntemleri
Ölçekten Bağımsız Özellik Dönüşümü (SIFT), görüntülerde ayırt edici yerel özellikleri tespit eden sağlam bir yöntemdir. İlgi noktalarını belirleyerek ve şu özelliklere sahip betimleyiciler oluşturarak çalışır:
Görüntü ölçekleme ve döndürmeye karşı değişmezlik
Aydınlatma değişimlerine kısmi dayanıklılık
Yerel geometrik bozulmaya karşı sağlamlık
SIFT algoritması, görüntüleri birkaç aşamada işler. Ölçeğe karşı değişmez ilgi noktalarını belirlemek için ölçek-uzayı uç değer tespiti ile başlar. Ardından, ilgi noktası yerelleştirme bu adayları kesin konumlarını belirleyerek iyileştirir ve kararsız noktaları eler.
Bunu, her ilgi noktası için tutarlı bir yönelim belirleyerek dönmeye karşı değişmezliği sağlayan yönelim ataması izler. Son olarak, ilgi noktası betimleyici oluşturma, yerel görüntü gradyanlarına dayalı ayırt edici betimleyiciler üretir ve görüntüler arasında sağlam eşleşmeyi kolaylaştırır.
Bir diğer yöntem ise Yönlendirilmiş Gradyanlar Histogramı (HOG). Görüntü boyunca gradyan örüntülerini analiz ederek yerel şekil bilgisini yakalar. Süreç, kenar detaylarını vurgulamak için görüntü genelinde gradyanların hesaplanmasıyla başlar.
Daha sonra görüntü küçük hücrelere bölünür ve her hücre için yerel yapıyı özetlemek üzere gradyan yönelimlerinin histogramı oluşturulur. Son olarak, bu histogramlar aydınlatma ve kontrasttaki değişimlere karşı dayanıklılığı sağlamak için daha büyük bloklar üzerinde normalize edilir; böylece nesne tespiti ve tanıma gibi görevler için sağlam bir özellik betimleyici elde edilir.
Derin öğrenme yöntemleri
Evrişimsel Sinir Ağları (CNN'ler), hiyerarşik temsilleri otomatik olarak öğrenerek özellik çıkarımına bakışımızı değiştirdi.
CNN ile Özellik Çıkarımı
CNN'ler özellikleri hiyerarşik yapıları aracılığıyla öğrenir. Erken katmanlarda kenarlar ve renkler gibi temel görsel öğeleri tespit ederler. Orta katmanlar bu öğeleri birleştirerek desenleri ve şekilleri tanır; daha derin katmanlar ise karmaşık nesneleri yakalar ve sahne anlayışını mümkün kılar.
Transfer öğrenimi, büyük veri kümeleri üzerinde eğitilmiş modellerden bu önceden öğrenilmiş özellikleri kullanmamıza olanak tanır; sınırlı veriyle çalışırken özellikle değerlidir.
İstatistiksel yöntemler
İstatistiksel yöntemler, görüntülerden hem küresel hem de yerel örüntüleri çıkararak sağlam görüntü analizi ve yorumlamayı kolaylaştırır.
Örneğin, renk histogramları bir görüntü içindeki renk dağılımını temsil eder ve dönme ile ölçeğe karşı değişmez özellikler sunar; bu da onları görüntü sınıflandırma ve geri getirme gibi görevler için özellikle faydalı kılar.
Doku analizi, Gri Seviye Birliktelik Matrisleri (GLCM) gibi tekniklerle tekrarlayan örüntüleri ve yüzey özelliklerini yakalar; malzeme tanıma ve sahne sınıflandırma gibi uygulamalarda etkilidir.
Kenar tespiti ise Sobel, Canny ve Laplacian operatörleri gibi yöntemlerle sınırları ve önemli yoğunluk değişimlerini belirler; nesne tespiti ve şekil analizinde kritik rol oynar.
Özellik çıkarımı yönteminin seçimi birkaç faktöre bağlıdır. Görevinizin özgül gereksinimleriyle uyumlu olmalı, mevcut hesaplama kaynaklarını dikkate almalı ve yorumlanabilirlik ihtiyacını gözetmelidir.
Ayrıca, veri kümenizin boyutu, gürültü düzeyi ve karmaşıklığı gibi özellikler ile ölçek, dönme ve aydınlatma gibi istenen değişmezlik özellikleri de kritik öneme sahiptir.
Ses özellik çıkarımı
Bir bilgisayarı, insanların yaptığı gibi konuşmayı anlaması için eğitmeye çalıştığınızı düşünün. İşte burada Mel-Frekans Kepstrum Katsayıları (MFCC) devreye girer.
MFCC'ler, sesi kulaklarımızın işlediğine benzer bir şekilde ayrıştıran özel ses özellikleridir. Özellikle etkilidirler çünkü insanların en duyarlı olduğu frekanslara odaklanırlar. Onları, sesi hem bilgisayarların hem de insan işitmesinin anlamlı bulacağı bir formata çeviren bir araç gibi düşünebilirsiniz.
Mel-Frekans Kepstrum Katsayıları
Süreç, ses sinyalini tipik olarak 20-40 milisaniye uzunluğunda kısa parçalara bölerek başlar. Her parça için, ham ses dalgalarını frekans bileşenlerine dönüştüren bir dizi matematiksel dönüşüm uygularız. İşin ilginç kısmı burada başlar. Tüm frekansları eşit şekilde ele almak yerine, Mel ölçeği denilen bir şey kullanırız.
Bu formül karmaşık görünebilir, ancak yalnızca frekansları, insanların sesi algılayış biçimine uyacak şekilde eşler. Kulaklarımız düşük frekanslardaki farkları yüksek frekanslardakinden daha iyi algılar ve Mel ölçeği bu doğal eğilimi hesaba katar.
Ses tanımada, MFCC'ler kimin konuştuğunu ve ne söylediğini anlamanın temelini oluşturur. Telefonunuzun sanal asistanıyla konuştuğunuzda, sesinizi işlemek için muhtemelen MFCC'leri kullanır. Bu katsayılar, her bir kişinin sesinin benzersiz özelliklerini yakalamaya yardımcı olur; bu da onları konuşmacı tanıma sistemleri için çok değerli kılar.
Konuşmada duygu analizi için MFCC'ler, duyguları gösteren seste ince değişimleri tespit etmeye yardımcı olur. Birinin mutlu, üzgün, kızgın veya nötr olduğunu gösterebilecek perde, ton ve konuşma hızındaki değişimleri yakalayabilirler. Örneğin, müşteri hizmetleri çağrılarını analiz ederken MFCC'ler, yalnızca ne söylediklerine değil nasıl konuştuklarına bakarak müşteri memnuniyet düzeylerini belirlemeye yardımcı olabilir.
Zaman serisi özellik çıkarımı
Zaman serisi verileriyle çalışırken, anlamlı özelliklerin çıkarılması zaman içinde evrilen örüntü ve eğilimleri yakalamamıza yardımcı olur. Ham zaman serisi verisini yararlı özelliklere dönüştürmek için kullanılan bazı temel tekniklere bakalım.
Zaman Serisi Özellik Çıkarma Yöntemleri
Fourier Dönüşümü, zaman serisi verilerini frekans bileşenlerine ayrıştırarak gizli periyodik örüntüleri ortaya çıkarır. Formül şöyledir:
İstatistiksel yöntemler, zamansal özellikleri yakalayarak frekans analizini tamamlar. Yaygın özellikler arasında hareketli ortalamalar, standart sapmalar ve trend bileşenleri bulunur. Bu teknikler özellikle finansal tahminlemede güçlüdür; piyasa eğilimlerini ve aykırı değerleri belirlemeye yardımcı olurlar.
Örneğin, hisse senedi piyasası analizinde Fourier özelliklerini istatistiksel ölçülerle birleştirmek hem uzun vadeli eğilimleri hem de döngüsel örüntüleri ortaya çıkarabilir. Benzer şekilde, endüstriyel ortamlarda bu yöntemler, zaman içinde sensör verisi örüntülerini analiz ederek ekipman anormalliklerini tespit etmeye yardımcı olur.
Özellik Çıkarımı için Araçlar ve Kütüphaneler
Bu özellik çıkarımı yöntemlerini uygulamayı kolay ve verimli kılan bazı temel araçlara bakalım.
Özellik Çıkarımı için Araçlar ve Kütüphaneler
Görüntü işleme için OpenCV ve scikit-image, çeşitli özellik çıkarımı tekniklerini uygulamaya yönelik kapsamlı araçlar sunar. Bu kütüphaneler, SIFT, HOG ve önceki bölümlerde ele aldığımız diğer algoritmaların verimli uygulamalarını sağlar. Derin öğrenme yaklaşımlarıyla çalışırken TensorFlow ve PyTorch gibi çerçeveler paha biçilmezdir. Daha fazla bilgi edinmek için OpenCV eğitimimize başlayabilirsiniz.
Ses işleme görevleri, MFCC ve diğer akustik özellikleri çıkarmada başarılı olan LibROSA gibi kütüphanelerle basitleştirilir. PyAudioAnalysis ise ses analizi görevleri için üst düzey arayüzlerle bu yetenekleri genişletir.
Zaman serisi verileri için tsfresh ve Featuretools özellik çıkarım sürecini otomatikleştirir. Bu kütüphaneler, zamansal verinizden ilgili özellikleri otomatik olarak üretebilir ve seçebilir; böylece özellik mühendisliği yerine model geliştirmeye odaklanmayı kolaylaştırır.
Özellik Çıkarımı Örneği
Bilgimizi bazı uygulamalı örneklerle pratiğe dökelim. Bilgisayarla görmenin en yaygın uygulamalarından biri olan görüntü özellik çıkarımıyla başlayacağız.
OpenCV kullanarak görüntü özellik çıkarımı
Önce gerekli kütüphaneleri içe aktaralım
# Import required librariesimport cv2
import numpy as np
import matplotlib.pyplot as pltAltyapı:
Şimdi, ilgili özellikleri çıkarmak için bir görüntü yükleyelim. Bu örnekte, internetten indirilen bir Godzilla görselini kullanacağız.
# Load the image
image = cv2.imread('godzilla.jpg')# Convert BGR to RGB (OpenCV loads in BGR format)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)# Display the original image
plt.imshow(image_rgb)
plt.title('Original Image')
plt.axis('off')
plt.show()Altyapı:
Çıktı:
Kenar tespiti uygulamadan önce görüntümüzü ön işlemden geçirmemiz gerekir. Bunu şu şekilde yapıyoruz:
# Convert the image to grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# Apply Gaussian blur to reduce noise
blurred = cv2.GaussianBlur(gray_image,(5,5),0)Altyapı:
Son olarak, Canny kenar tespiti algoritmasını uygulayalım ve sonuçları görselleştirelim:
Canny kenar algılayıcı, görüntümüzdeki önemli sınırları ve özellikleri belirlemeye yardımcı olur; bu da daha ileri analizler veya makine öğrenimi modellerine girdi olarak kullanılabilir.
LibROSA ile sesten MFCC çıkarımı
Ses dosyalarını işlemeye başlamadan önce gerekli kütüphaneleri kurmamız gerekir. LibROSA Python'un standart kütüphanesine dahil olmadığından, pip ile kuracağız:
# Install required libraries# Run these commands in your terminal or command prompt
pip install librosa
pip install numpy
pip install matplotlibAltyapı:
LibROSA, müzik ve ses analizi için tasarlanmış güçlü bir kütüphanedir; bu nedenle onu ve diğer gerekli kütüphaneleri içe aktararak başlayalım:
# Import required librariesimport librosa
import librosa.display
import numpy as np
import matplotlib.pyplot as pltAltyapı:
Ses dosyaları dalga formu formatında çok miktarda bilgi içerir. Bu verilerle çalışmak için önce programımıza yüklememiz gerekir. LibROSA, ses dosyasını analiz edebileceğimiz bir formata dönüştürerek bunu yapmamıza yardımcı olur:
# Load the audio file# Duration is limited to 10 seconds for this example
audio_path ='audio_sample.wav'
y, sr = librosa.load(audio_path, duration=10)# Display the waveform
plt.figure(figsize=(10,4))
plt.plot(y)
plt.title('Audio Waveform')
plt.show()Altyapı:
Çıktı:
Artık sesimizi yüklediğimize göre, ondan anlamlı özellikler çıkarmamız gerekiyor. Kulaklarımız sesleri doğal olarak farklı frekans bileşenlerine ayırır ve MFCC bu süreci taklit eder. Bu katsayıları hesaplamak için librosa'nın özellik çıkarım işlevini kullanırız:
# Extract MFCC features
mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13)# Display the MFCC
plt.figure(figsize=(10,4))
librosa.display.specshow(mfccs, x_axis='time')
plt.colorbar(format='%+2.0f dB')
plt.title('MFCC')
plt.show()Altyapı:
Çıktı:
Burada n_mfcc=13 olarak ayarladık; çünkü ilk 13 katsayı genellikle konuşma tanıma gibi görevlerde yardımcı olan sesin en önemli yönlerini yakalar. Ortaya çıkan görselleştirme, bu özelliklerin zaman içinde nasıl değiştiğini gösterir; daha parlak renkler daha yüksek değerleri temsil eder.
tsfresh ile zaman serisi verilerinden özellik çıkarımı
Önce gerekli kütüphaneleri kuralım. Finansal verileri almak için yfinance kullanacağız; özellik çıkarımı için de tsfresh kullanacağız:
# Install required libraries# Run these commands in your terminal or command prompt
pip install tsfresh
pip install pandas
pip install numpy
pip install matplotlib
pip install yfinanceAltyapı:
Şimdi kütüphanelerimizi içe aktaralım ve gerçek finansal veriler çekelim:
# Import required librariesimport pandas as pd
import numpy as np
from tsfresh import extract_features
from tsfresh.feature_extraction import MinimalFCParameters
import matplotlib.pyplot as plt
import yfinance as yfAltyapı:
Gerçek hisse senedi verisi alalım. Örnek olarak Apple'ın hisse verilerini kullanacağız:
# Download Apple's stock data for the last 2 years
aapl = yf.Ticker("AAPL")
df = aapl.history(period="2y")# Prepare the data in the format tsfresh expects
df_tsfresh = pd.DataFrame({'id':[0]*len(df),# Each time series needs an ID'time':range(len(df)),'closing_price': df['Close']# We'll use closing prices})# Display first few rows of our dataprint("Original stock data shape:", df_tsfresh.shape)print("\nFirst few rows:")print(df_tsfresh.head())Altyapı:
Çıktı:
Şimdi finansal zaman serisi verilerimizden özellikler çıkaralım:
# Set up the feature extraction parameters
extraction_settings = MinimalFCParameters()# Extract features automatically
extracted_features = extract_features(df_tsfresh,
column_id='id',
column_sort='time',
column_value='values',
default_fc_parameters=extraction_settings)# Display the extracted featuresprint("\nExtracted features shape:", extracted_features.shape)print("\nExtracted features:")print(extracted_features.head())Altyapı:
Çıktı:
Burada, hangi özelliklerin çıkarılacağını belirtmek için MinimalFCParameters() kullanıyoruz. Bu, ortalama, varyans ve trend özellikleri gibi verimizdeki örüntüleri anlamak için gerekli temel zaman serisi özelliklerini verir.
Özellik Çıkarımındaki Zorluklar
Özellik çıkarımıyla çalışırken sık sık zorluklarla karşılaşırız.
Yüksek boyutluluk ve hesaplama kısıtları, büyük veri kümeleriyle uğraşırken sıklıkla ortaya çıkar. Örneğin, yüksek çözünürlüklü görüntülerden veya uzun ses dosyalarından özellik çıkarmak önemli miktarda bellek ve işlem gücü tüketebilir.
Alakasız veya yinelenen özellikler nedeniyle aşırı uyum da yaygın bir sorundur. Çok fazla özellik çıkarıldığında, modeller anlamlı örüntüler yerine gürültüyü öğrenebilir. Bu durum, binlerce özelliğin üretilebildiği görüntü ve ses işlemede özellikle yaygındır.
Bu zorlukların üstesinden gelmek için şu stratejileri göz önünde bulundurun:
İlgili özellikleri seçmek için alan bilgisini kullanın
Boyutu azaltmak için özellik seçimi yöntemlerini uygulayın
Veri türünüze uygun uygun özellik mühendisliği tekniklerini uygulayın
Bu zorluklar, özellik zenginliği ile hesaplama verimliliği arasında dikkatli bir değerlendirme ve denge gerektirir.
Sonuç
Özellik çıkarımı, ham veriyi anlamlı temsillere dönüştüren, makine öğreniminde temel bir beceridir. OpenCV, LibROSA ve tsfresh ile yaptığımız uygulamalı örneklerde, farklı veri türlerinden nasıl özellik çıkarılacağını gördük. Bu teknikleri ve zorluklarını anlayarak etkili makine öğrenimi modelleri kurabiliriz.
Daha derine inmeye hazır mısınız? Şu kaynaklara göz atın:
Ben bir veri bilimi içerik yazarıyım. YZ/ML/DS konuları etrafında içerik üretmeyi seviyorum. Ayrıca yeni YZ araçlarını keşfediyor ve onlar hakkında yazıyorum.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Makine öğreniminde özellik çıkarımı, ham veriyi anlamlı özellikler kümesine dönüştürerek temel bilgiyi yakalarken fazlalığı azaltır. Boyut indirgeme tekniklerini ve mevcut veriden yeni özellikler oluşturan yöntemleri içerebilir.
Bir pazarda meyveleri tanımlamaya çalıştığınızı hayal edin. Sayısız özelliği (ağırlık, renk, doku, şekil, koku vb.) dikkate alabileceğiniz gibi, elma ile portakalı ayırt etmek için yalnızca birkaç temel özelliğin, örneğin renk ve boyutun, yeterli olduğunu fark edebilirsiniz. Özellik çıkarımı tam olarak bunu yapar. Verinizin en bilgilendirici özelliklerine odaklanmanıza yardımcı olur.
Özellik çıkarımı yapılırken, özgün veriler matematiksel olarak yeni bir özellik kümesine dönüştürülür. Bu yeni özellikler, verinin en önemli yönlerini yakalayacak ve muhtemelen karmaşıklığını azaltacak şekilde tasarlanır. Çıkarılan özellikler çoğu zaman, özgün veride hemen göze çarpmayabilecek altta yatan örüntüleri veya yapıları temsil eder.
Özellik Çıkarımı
Sıradaki bölümlerde, özellik çıkarımının makine öğreniminde neden bu kadar önemli olduğunu inceleyecek ve farklı veri türlerinden özellik çıkarmaya yönelik çeşitli yöntemlere ve bunların kodlarına bakacağız. Uygulamalı örnekler isterseniz, özellik çıkarımına ayrılmış bir bölümü bulunan Python ile Boyut İndirgeme kursumuza göz atın.
Makine Öğreniminde Özellik Çıkarımı neden önemlidir?
Özellik çıkarımı, makine öğreniminde önemli bir rol oynar. Başarısız olan bir model ile başarılı olan bir model arasındaki farkı yaratabilir. Etkili makine öğrenimi modelleri kurmak için bunun neden temel olduğunu görelim.
Model doğruluğunu ve verimliliğini artırma
Ham verilerle çalışırken, makine öğrenimi modelleri çoğunlukla anlamlı örüntülerle gürültüyü ayırt etmekte zorlanır. Özellik çıkarımı, modellerinizin öğrenme ve performansını önemli ölçüde iyileştirebilecek bir veri ön işleme adımıdır.
Model Performansı ve Eğitim Süresi
Örneğin, bir model ham veriyle %85 doğruluk elde ederken, aynı model özenle çıkarılmış özelliklerle eğitildiğinde %95 doğruluğa ulaşabilir. Bu iyileşme modelin değiştirilmesinden değil, modele öğrenmesi için daha kaliteli girdi verilmesinden kaynaklanır.
Yüksek boyutlu veri kümelerini yönetme
Modern veri kümeleri sıklıkla yüzlerce hatta binlerce özellikle gelir. Özellik çıkarımı, bu durumun doğurduğu çeşitli zorlukları ele almaya yardımcı olur.
Özellik çıkarımı, temel bilgiyi korurken boyutu azaltarak bu zorlukları ele alır. Bu azalma, geniş, yüksek boyutlu verileri daha kompakt ve yönetilebilir bir forma dönüştürür; bu da model performansını artırır.
Hesaplama karmaşıklığını azaltma ve aşırı uyumu önleme
Özellik çıkarımı, makine öğrenimi modelleri için iki kritik fayda sağlar:
Özellik Çıkarımı Olan ve Olmayan Durumların Karşılaştırması
Yukarıdaki görselleştirme, özellik çıkarımının nasıl daha basit ve daha sağlam modellere yol açabileceğini gösterir. Soldaki grafikte gürültülü, yüksek boyutlu veriye uymaya çalışan karmaşık bir model; sağdaki grafikte ise özellik çıkarımının nasıl daha net ve genellenebilir bir örüntü ortaya koyduğu görülüyor.
Ham veri yerine çıkarılmış özelliklerle çalışmak, modele öğrenmesi gereken bilginin berrak ve damıtılmış bir hâlini sunmak gibidir. Bu, öğrenme sürecini yalnızca daha verimli kılmakla kalmaz; gerçek dünya uygulamalarında daha iyi performans gösterme olasılığı yüksek modeller üretir.
Şimdi farklı özellik çıkarımı yöntemlerine bakalım.
Özellik Çıkarımı Yöntemleri
Özellik çıkarımı yöntemleri genel olarak iki yaklaşıma ayrılır: manuel özellik mühendisliği ve otomatik özellik çıkarımı. Ham veriyi anlamlı özelliklere dönüştürmede her iki yöntemin de nasıl yardımcı olduğuna bakalım.
Manuel özellik mühendisliği
Manuel özellik mühendisliği, alan bilgisini kullanarak ham veriden ilgili özellikleri belirlemeyi ve oluşturmayı içerir. Bu uygulamalı yaklaşım, anlamlı özellikler oluşturmak için probleme ve veriye dair anlayışımıza dayanır.
Görüntü işlemeye gelince, manuel özellik mühendisliği; nesne sınırlarını belirlemek için kenar tespiti, renk dağılımını yakalamak için renk histogramları, örüntüleri nicemlemek için doku analizi ve nesne geometrisini tanımlamak için şekil betimleyicileri gibi teknikleri içerebilir.
Görüntü Özellik Çıkarımı
Tablo verileri için manuel özellik mühendisliği; mevcut özellikler arasında etkileşim terimleri oluşturmayı, değişkenleri logaritmik veya polinom fonksiyonlarla dönüştürmeyi, veri noktalarını anlamlı istatistiklere toplulaştırmayı ve kategorik değişkenleri kodlamayı içerir.
Tablo verilerinde özellik çıkarımı
Bu teknikler, alan bilgisinin rehberliğinde veri temsilinin kalitesini artırır ve model performansını önemli ölçüde iyileştirebilir.
Otomatik özellik çıkarımı
Otomatik özellik çıkarımı, açık insan yönlendirmesi olmadan özellikleri keşfetmek ve oluşturmak için algoritmalar kullanır. Manuel özellik mühendisliğinin pratik olmayabileceği veya verimsiz kalabileceği karmaşık veri kümeleriyle çalışırken özellikle kullanışlıdır.
Yaygın otomatik yaklaşımlar şunlardır:
Temel Bileşenler Analizi (PCA): Veriyi, her bileşenin kalan maksimum varyansı yakaladığı, birbiriyle ilişkisiz bileşenler kümesine dönüştürür. Bu yaklaşım, verideki temel bilgiyi korurken yapısını basitleştirdiği için boyut indirgeme için özellikle kullanışlıdır.
Temel Bileşenler Analizi (PCA)
Otoenkoderler: Verinin sıkıştırılmış temsillerini öğrenerek doğrusal olmayan ilişkileri yakalayan sinir ağlarıdır. Geleneksel doğrusal yöntemlerin yetersiz kalabileceği yüksek boyutlu veri kümelerinde özellikle etkilidirler.
Özellik mühendisliği görevlerini basitleştirmek için çeşitli araç ve kütüphaneler ortaya çıkmıştır. Örneğin, Scikit-learn'ün decomposition modülü çeşitli boyut indirgeme yöntemleri sunar; PyCaret ise otomatik özellik seçimi yetenekleri sağlar.
Hem manuel hem de otomatik yaklaşımların güçlü yanları vardır. Her bir yaklaşımın güçlü yönlerine bakalım.
Manuel Mühendislik
Otomatik Çıkarım
Alan bilgisi entegrasyonu
Ölçeklenebilirlik
Yorumlanabilir özellikler
Karmaşık örüntüleri işler
İnce ayarlı kontrol
İnsan önyargısını azaltır
Özgül ihtiyaçlara uyarlanır
Gizli ilişkileri keşfeder
Manuel ve otomatik yöntemler arasındaki seçim genellikle veri kümesi karmaşıklığı, alan bilgisinin mevcudiyeti, yorumlanabilirlik gereksinimleri, hesaplama kaynakları ve zaman kısıtları gibi faktörlere bağlıdır.
Çok karmaşık veri kümeleri için veya zaman ve kaynakların sınırlı olduğu durumlarda, otomatik yöntemler hızla faydalı özellikler üretebilir. Buna karşılık, alan bilgisinin mevcut olduğu ve yorumlanabilirliğin öncelik taşıdığı durumlarda, eldeki problemle yakından uyumlu, özel özellik mühendisliğine imkân tanıdığı için manuel yöntemler tercih edilebilir.
Uygulamada, başarılı birçok makine öğrenimi projesi her iki yaklaşımı da birleştirir: alan bilgisini özellik mühendisliğine yön vermek için kullanırken, insan uzmanlara hemen görünmeyebilecek ek örüntüleri keşfetmek üzere otomatik yöntemlerden yararlanır.
Bir sonraki bölümde, çeşitli alanlarda birkaç özellik çıkarımı tekniğine bakacağız.
Özellik Çıkarımı Teknikleri
Her veri türü, kendine özgü özellikleri için optimize edilmiş belirli özellik çıkarımı teknikleri gerektirir. Farklı veri türleri için en yaygın tekniklere bakalım.
Özellik Çıkarımı Teknikleri
Görüntü özellik çıkarımı
Görüntü özellik çıkarımı, ham piksel verilerini temel görsel bilgileri yakalayan anlamlı temsillere dönüştürür. Modern bilgisayarla görmede kullanılan üç ana teknik kategorisi vardır: geleneksel yöntemler, derin öğrenme tabanlı yöntemler ve istatistiksel yöntemler.
Görüntü Özellik Çıkarma Yöntemleri
Her bir yönteme bakalım.
Geleneksel bilgisayarla görme yöntemleri
Ölçekten Bağımsız Özellik Dönüşümü (SIFT), görüntülerde ayırt edici yerel özellikleri tespit eden sağlam bir yöntemdir. İlgi noktalarını belirleyerek ve şu özelliklere sahip betimleyiciler oluşturarak çalışır:
SIFT algoritması, görüntüleri birkaç aşamada işler. Ölçeğe karşı değişmez ilgi noktalarını belirlemek için ölçek-uzayı uç değer tespiti ile başlar. Ardından, ilgi noktası yerelleştirme bu adayları kesin konumlarını belirleyerek iyileştirir ve kararsız noktaları eler.
Bunu, her ilgi noktası için tutarlı bir yönelim belirleyerek dönmeye karşı değişmezliği sağlayan yönelim ataması izler. Son olarak, ilgi noktası betimleyici oluşturma, yerel görüntü gradyanlarına dayalı ayırt edici betimleyiciler üretir ve görüntüler arasında sağlam eşleşmeyi kolaylaştırır.
Bir diğer yöntem ise Yönlendirilmiş Gradyanlar Histogramı (HOG). Görüntü boyunca gradyan örüntülerini analiz ederek yerel şekil bilgisini yakalar. Süreç, kenar detaylarını vurgulamak için görüntü genelinde gradyanların hesaplanmasıyla başlar.
Daha sonra görüntü küçük hücrelere bölünür ve her hücre için yerel yapıyı özetlemek üzere gradyan yönelimlerinin histogramı oluşturulur. Son olarak, bu histogramlar aydınlatma ve kontrasttaki değişimlere karşı dayanıklılığı sağlamak için daha büyük bloklar üzerinde normalize edilir; böylece nesne tespiti ve tanıma gibi görevler için sağlam bir özellik betimleyici elde edilir.
Derin öğrenme yöntemleri
Evrişimsel Sinir Ağları (CNN'ler), hiyerarşik temsilleri otomatik olarak öğrenerek özellik çıkarımına bakışımızı değiştirdi.
CNN ile Özellik Çıkarımı
CNN'ler özellikleri hiyerarşik yapıları aracılığıyla öğrenir. Erken katmanlarda kenarlar ve renkler gibi temel görsel öğeleri tespit ederler. Orta katmanlar bu öğeleri birleştirerek desenleri ve şekilleri tanır; daha derin katmanlar ise karmaşık nesneleri yakalar ve sahne anlayışını mümkün kılar.
Transfer öğrenimi, büyük veri kümeleri üzerinde eğitilmiş modellerden bu önceden öğrenilmiş özellikleri kullanmamıza olanak tanır; sınırlı veriyle çalışırken özellikle değerlidir.
İstatistiksel yöntemler
İstatistiksel yöntemler, görüntülerden hem küresel hem de yerel örüntüleri çıkararak sağlam görüntü analizi ve yorumlamayı kolaylaştırır.
Örneğin, renk histogramları bir görüntü içindeki renk dağılımını temsil eder ve dönme ile ölçeğe karşı değişmez özellikler sunar; bu da onları görüntü sınıflandırma ve geri getirme gibi görevler için özellikle faydalı kılar.
Doku analizi, Gri Seviye Birliktelik Matrisleri (GLCM) gibi tekniklerle tekrarlayan örüntüleri ve yüzey özelliklerini yakalar; malzeme tanıma ve sahne sınıflandırma gibi uygulamalarda etkilidir.
Kenar tespiti ise Sobel, Canny ve Laplacian operatörleri gibi yöntemlerle sınırları ve önemli yoğunluk değişimlerini belirler; nesne tespiti ve şekil analizinde kritik rol oynar.
Özellik çıkarımı yönteminin seçimi birkaç faktöre bağlıdır. Görevinizin özgül gereksinimleriyle uyumlu olmalı, mevcut hesaplama kaynaklarını dikkate almalı ve yorumlanabilirlik ihtiyacını gözetmelidir.
Ayrıca, veri kümenizin boyutu, gürültü düzeyi ve karmaşıklığı gibi özellikler ile ölçek, dönme ve aydınlatma gibi istenen değişmezlik özellikleri de kritik öneme sahiptir.
Ses özellik çıkarımı
Bir bilgisayarı, insanların yaptığı gibi konuşmayı anlaması için eğitmeye çalıştığınızı düşünün. İşte burada Mel-Frekans Kepstrum Katsayıları (MFCC) devreye girer.
MFCC'ler, sesi kulaklarımızın işlediğine benzer bir şekilde ayrıştıran özel ses özellikleridir. Özellikle etkilidirler çünkü insanların en duyarlı olduğu frekanslara odaklanırlar. Onları, sesi hem bilgisayarların hem de insan işitmesinin anlamlı bulacağı bir formata çeviren bir araç gibi düşünebilirsiniz.
Mel-Frekans Kepstrum Katsayıları
Süreç, ses sinyalini tipik olarak 20-40 milisaniye uzunluğunda kısa parçalara bölerek başlar. Her parça için, ham ses dalgalarını frekans bileşenlerine dönüştüren bir dizi matematiksel dönüşüm uygularız. İşin ilginç kısmı burada başlar. Tüm frekansları eşit şekilde ele almak yerine, Mel ölçeği denilen bir şey kullanırız.
Bu formül karmaşık görünebilir, ancak yalnızca frekansları, insanların sesi algılayış biçimine uyacak şekilde eşler. Kulaklarımız düşük frekanslardaki farkları yüksek frekanslardakinden daha iyi algılar ve Mel ölçeği bu doğal eğilimi hesaba katar.
Ses tanımada, MFCC'ler kimin konuştuğunu ve ne söylediğini anlamanın temelini oluşturur. Telefonunuzun sanal asistanıyla konuştuğunuzda, sesinizi işlemek için muhtemelen MFCC'leri kullanır. Bu katsayılar, her bir kişinin sesinin benzersiz özelliklerini yakalamaya yardımcı olur; bu da onları konuşmacı tanıma sistemleri için çok değerli kılar.
Konuşmada duygu analizi için MFCC'ler, duyguları gösteren seste ince değişimleri tespit etmeye yardımcı olur. Birinin mutlu, üzgün, kızgın veya nötr olduğunu gösterebilecek perde, ton ve konuşma hızındaki değişimleri yakalayabilirler. Örneğin, müşteri hizmetleri çağrılarını analiz ederken MFCC'ler, yalnızca ne söylediklerine değil nasıl konuştuklarına bakarak müşteri memnuniyet düzeylerini belirlemeye yardımcı olabilir.
Zaman serisi özellik çıkarımı
Zaman serisi verileriyle çalışırken, anlamlı özelliklerin çıkarılması zaman içinde evrilen örüntü ve eğilimleri yakalamamıza yardımcı olur. Ham zaman serisi verisini yararlı özelliklere dönüştürmek için kullanılan bazı temel tekniklere bakalım.
Zaman Serisi Özellik Çıkarma Yöntemleri
Fourier Dönüşümü, zaman serisi verilerini frekans bileşenlerine ayrıştırarak gizli periyodik örüntüleri ortaya çıkarır. Formül şöyledir:
İstatistiksel yöntemler, zamansal özellikleri yakalayarak frekans analizini tamamlar. Yaygın özellikler arasında hareketli ortalamalar, standart sapmalar ve trend bileşenleri bulunur. Bu teknikler özellikle finansal tahminlemede güçlüdür; piyasa eğilimlerini ve aykırı değerleri belirlemeye yardımcı olurlar.
Örneğin, hisse senedi piyasası analizinde Fourier özelliklerini istatistiksel ölçülerle birleştirmek hem uzun vadeli eğilimleri hem de döngüsel örüntüleri ortaya çıkarabilir. Benzer şekilde, endüstriyel ortamlarda bu yöntemler, zaman içinde sensör verisi örüntülerini analiz ederek ekipman anormalliklerini tespit etmeye yardımcı olur.
Özellik Çıkarımı için Araçlar ve Kütüphaneler
Bu özellik çıkarımı yöntemlerini uygulamayı kolay ve verimli kılan bazı temel araçlara bakalım.
Özellik Çıkarımı için Araçlar ve Kütüphaneler
Görüntü işleme için OpenCV ve scikit-image, çeşitli özellik çıkarımı tekniklerini uygulamaya yönelik kapsamlı araçlar sunar. Bu kütüphaneler, SIFT, HOG ve önceki bölümlerde ele aldığımız diğer algoritmaların verimli uygulamalarını sağlar. Derin öğrenme yaklaşımlarıyla çalışırken TensorFlow ve PyTorch gibi çerçeveler paha biçilmezdir. Daha fazla bilgi edinmek için OpenCV eğitimimize başlayabilirsiniz.
Ses işleme görevleri, MFCC ve diğer akustik özellikleri çıkarmada başarılı olan LibROSA gibi kütüphanelerle basitleştirilir. PyAudioAnalysis ise ses analizi görevleri için üst düzey arayüzlerle bu yetenekleri genişletir.
Zaman serisi verileri için tsfresh ve Featuretools özellik çıkarım sürecini otomatikleştirir. Bu kütüphaneler, zamansal verinizden ilgili özellikleri otomatik olarak üretebilir ve seçebilir; böylece özellik mühendisliği yerine model geliştirmeye odaklanmayı kolaylaştırır.
Özellik Çıkarımı Örneği
Bilgimizi bazı uygulamalı örneklerle pratiğe dökelim. Bilgisayarla görmenin en yaygın uygulamalarından biri olan görüntü özellik çıkarımıyla başlayacağız.
OpenCV kullanarak görüntü özellik çıkarımı
Önce gerekli kütüphaneleri içe aktaralım
Şimdi, ilgili özellikleri çıkarmak için bir görüntü yükleyelim. Bu örnekte, internetten indirilen bir Godzilla görselini kullanacağız.
Çıktı:
Kenar tespiti uygulamadan önce görüntümüzü ön işlemden geçirmemiz gerekir. Bunu şu şekilde yapıyoruz:
Son olarak, Canny kenar tespiti algoritmasını uygulayalım ve sonuçları görselleştirelim:
Çıktı:
Canny kenar algılayıcı, görüntümüzdeki önemli sınırları ve özellikleri belirlemeye yardımcı olur; bu da daha ileri analizler veya makine öğrenimi modellerine girdi olarak kullanılabilir.
LibROSA ile sesten MFCC çıkarımı
Ses dosyalarını işlemeye başlamadan önce gerekli kütüphaneleri kurmamız gerekir. LibROSA Python'un standart kütüphanesine dahil olmadığından, pip ile kuracağız:
LibROSA, müzik ve ses analizi için tasarlanmış güçlü bir kütüphanedir; bu nedenle onu ve diğer gerekli kütüphaneleri içe aktararak başlayalım:
Ses dosyaları dalga formu formatında çok miktarda bilgi içerir. Bu verilerle çalışmak için önce programımıza yüklememiz gerekir. LibROSA, ses dosyasını analiz edebileceğimiz bir formata dönüştürerek bunu yapmamıza yardımcı olur:
Çıktı:
Artık sesimizi yüklediğimize göre, ondan anlamlı özellikler çıkarmamız gerekiyor. Kulaklarımız sesleri doğal olarak farklı frekans bileşenlerine ayırır ve MFCC bu süreci taklit eder. Bu katsayıları hesaplamak için librosa'nın özellik çıkarım işlevini kullanırız:
Çıktı:
Burada
n_mfcc=13olarak ayarladık; çünkü ilk 13 katsayı genellikle konuşma tanıma gibi görevlerde yardımcı olan sesin en önemli yönlerini yakalar. Ortaya çıkan görselleştirme, bu özelliklerin zaman içinde nasıl değiştiğini gösterir; daha parlak renkler daha yüksek değerleri temsil eder.tsfresh ile zaman serisi verilerinden özellik çıkarımı
Önce gerekli kütüphaneleri kuralım. Finansal verileri almak için
yfinancekullanacağız; özellik çıkarımı için detsfreshkullanacağız:Şimdi kütüphanelerimizi içe aktaralım ve gerçek finansal veriler çekelim:
Gerçek hisse senedi verisi alalım. Örnek olarak Apple'ın hisse verilerini kullanacağız:
Çıktı:
Şimdi finansal zaman serisi verilerimizden özellikler çıkaralım:
Çıktı:
Burada, hangi özelliklerin çıkarılacağını belirtmek için
MinimalFCParameters()kullanıyoruz. Bu, ortalama, varyans ve trend özellikleri gibi verimizdeki örüntüleri anlamak için gerekli temel zaman serisi özelliklerini verir.Özellik Çıkarımındaki Zorluklar
Özellik çıkarımıyla çalışırken sık sık zorluklarla karşılaşırız.
Yüksek boyutluluk ve hesaplama kısıtları, büyük veri kümeleriyle uğraşırken sıklıkla ortaya çıkar. Örneğin, yüksek çözünürlüklü görüntülerden veya uzun ses dosyalarından özellik çıkarmak önemli miktarda bellek ve işlem gücü tüketebilir.
Alakasız veya yinelenen özellikler nedeniyle aşırı uyum da yaygın bir sorundur. Çok fazla özellik çıkarıldığında, modeller anlamlı örüntüler yerine gürültüyü öğrenebilir. Bu durum, binlerce özelliğin üretilebildiği görüntü ve ses işlemede özellikle yaygındır.
Bu zorlukların üstesinden gelmek için şu stratejileri göz önünde bulundurun:
Bu zorluklar, özellik zenginliği ile hesaplama verimliliği arasında dikkatli bir değerlendirme ve denge gerektirir.
Sonuç
Özellik çıkarımı, ham veriyi anlamlı temsillere dönüştüren, makine öğreniminde temel bir beceridir. OpenCV, LibROSA ve tsfresh ile yaptığımız uygulamalı örneklerde, farklı veri türlerinden nasıl özellik çıkarılacağını gördük. Bu teknikleri ve zorluklarını anlayarak etkili makine öğrenimi modelleri kurabiliriz.
Daha derine inmeye hazır mısınız? Şu kaynaklara göz atın: