Özelliklerinizden bazıları, sıralı ilişkide olmayan ayrı değerler olabilir. Köpek türleri, kelimeler veya posta kodları örnek olarak verilebilir. Bu özellikler kategorik olarak bilinir ve her değere kategori adı verilir. Kategorik değerleri dize veya çift sayı olarak temsil edebilirsiniz. Ancak bu sayıları karşılaştıramaz veya birbirlerinden çıkaramazsınız.
Çoğu zaman, sayısal veriler yerine kategorik veriler olarak tam sayı değerleri içeren özellikleri temsil etmeniz gerekir. Örneğin, değerlerin tam sayı olduğu bir posta kodu özelliği düşünün. Bu özelliği yanlışlıkla sayısal olarak temsil ediyorsanız, modelden farklı posta kodları arasında sayısal bir ilişki bulmasını istiyorsunuzdur; örneğin, modelin 20004 posta kodunun, posta kodu olarak sinyalin iki (veya yarısı) katı olduğunu belirlemesini bekliyorsunuzdur. Posta kodlarını kategorik veri olarak temsil ederek, her bir posta kodu için ayrı sinyaller bulabilmenizi sağlarsınız.
Bir veri alanına ait kategori sayısı (ör. haftanın günü veya sınırlı bir renk paleti) küçükse her kategori için benzersiz bir özellik oluşturabilirsiniz. Örneğin:
Şekil 1: Her kategori için benzersiz bir özellik.
Bu işlemden sonra model, her bir renk için ayrı bir ağırlık öğrenebilir. Örneğin, model kırmızı arabaların yeşil arabalardan daha pahalı olduğunu öğrenebilir.
Ardından özellikler dizine eklenebilir.
Şekil 2: Dizine eklenen özellikler.
Bu tür eşlemeye sözlük adı verilir.
Kelime hazinesi
Bir sözlükte her değer benzersiz bir özelliği temsil eder.
Index Number | Category |
---|---|
0 | Red |
1 | Orange |
2 | Blue |
... | ... |
Model, dizini dizeden arayarak özellik vektöründeki ilgili alana 1,0 ve özellik vektöründeki diğer tüm alanlara 0,0 atar.
Şekil 3: Özellikleri öne çıkarmak için uçtan uca işlem.
Seyrek beyanla ilgili not
Kategorileriniz haftanın günleriyse örneğin Cuma gününü [0, 0, 0, 0, 1, 0, 0] özellik vektörü ile temsil edebilirsiniz. Ancak makine öğrenimi sistemlerinin çoğu uygulaması, bu vektörü anı olarak eşit olmayan bir şekilde temsil eder. Yaygın bir temsil, boş olmayan değerlerin ve karşılık gelen dizinlerinin bir listesidir (örneğin, değer için 1,0 ve dizin için [4]). Bu sayede, çok büyük miktarda 0'ı depolayarak daha az bellek harcayabilir ve daha verimli bir matris çarpımıyla elde edebilirsiniz. Temel matematik açısından [4], [0, 0, 0, 0, 1, 0, 0]'a eş değerdir.
Sözsüz (OOV)
Sayısal verilerin aykırı değerler içermesi, kategorik verilerin de tanınmasını sağlar. Örneğin, araba açıklamalarını içeren bir veri kümesini düşünün. Bu veri kümesinin özelliklerinden biri arabanın rengi olabilir. Yaygın kullanılan araba renklerinin (siyah, beyaz, gri vb.) bu veri kümesinde iyi yansıtıldığını ve bu farklı renklerin değeri nasıl etkilediğini öğrenmek için bunların her birini bir kategoriye dönüştürdüğünüzü varsayalım. Bununla birlikte, bu veri kümesinin alışılmışın dışında renklere sahip az sayıda araba (havyar, şal, avokado) içerdiğini varsayalım. Bu renklerin her birine ayrı bir kategori vermek yerine, bunları Vokaniz Dışı (OOV) adlı bir tümünü yakalama kategorisine ekleyebilirsiniz. OOV kullanıldığında sistem, bu nadir renklerin her biri için zaman harcamaz.
Karma oluşturma
Diğer bir seçenek de her dizeye (kategori) mevcut dizin alanınıza hashing uygulamaktır. Karma oluşturma genellikle çakışmalara neden olur ancak aynı dizindeki kategorilerin paylaşılan bir temsilini öğrenmek için kullandığınız modele güvenirsiniz. Bu yöntem, ilgili sorun için iyi sonuç verir.
Önemli terimlerde karmaşa nedeniyle, kelime seçimi bir kelime seçmekten daha kötü olabilir. Öte yandan, karma oluşturma işlemi bir kelime sözlüğü oluşturmanızı gerektirmez. Bu özellik, özellik dağıtımının zaman içinde değişmesi durumunda avantaj sağlar.
Şekil 4: Öğeleri bir sözlük ile eşleştirme.
Karma oluşturma ve kelime hazinesi karması
Karma bir yaklaşım benimseyebilir ve karma oluşturma işlemini bir sözlükle birleştirebilirsiniz. Verilerinizdeki en önemli kategoriler için bir kelime öbeği kullanın, ancak OOV paketini birden çok OOV paketiyle değiştirin ve paketlere kategoriler atamak için karma oluşturma işlemini kullanın.
Karma paketlerdeki kategoriler bir dizin paylaşmalıdır ve model muhtemelen iyi tahminlerde bulunmaz ancak kategorilerimizin sözlüğümüz dışında öğrenmeye çalışmak için bir miktar bellek ayırdık.
Şekil 5: Kelime ve karma oluşturma işlemini bir arada kullanan karma yaklaşım.
Yerleştirme hakkında not
Makine Öğrenimi Kilitlenme Kursu'ndan alınan bir geri bildirim, yerleştirmenin sürekli değerli bir özellik olarak temsil edilen kategorik bir özellik olduğunu hatırlatır. Derin modeller genellikle dizinden dizinleri yerleştirmeye dönüştürür.
Şekil 6: Yerleştirme aracılığıyla az bulunan özellik vektörleri
Görüştüğümüz diğer dönüşümler diskte depolanabilir ancak yerleştirmeler farklıdır. Yerleştirmeler eğitildiğinden, bunlar tipik bir veri dönüşümü değildir ve modelin bir parçasıdır. Bunlar, diğer model ağırlıklarıyla eğitilir ve işlevsel olarak bir ağırlık katmanına eşdeğerdir.
Önceden eğitilmiş yerleştirmelerle ilgili durum nedir? Önceden eğitilmiş yerleştirmeler genellikle eğitim sırasında değiştirilebilir. Dolayısıyla kavramsal olarak modelin bir parçası olmaya devam ederler.