SMOTE

Yapay azlık fazla örnekleme kullanarak bir veri kümesindeki düşük olay örnek sayısını artırır

Kategori: veri dönüştürme/işleme

Not

Uygulama hedefi: Machine Learning Studio (klasik)

Bu içerik yalnızca Studio (klasik) ile ilgilidir. Benzer sürükle ve bırak modülleri Azure Machine Learning tasarımcısına eklenmiştir. Bu makalede iki sürümü karşılaştırandaha fazla bilgi edinin.

Modüle genel bakış

Bu makalede, makine öğrenimi için kullanılan bir veri kümesindeki eksik durum sayısını artırmak üzere Azure Machine Learning Studio (klasik) ' de Smote modülünün nasıl kullanılacağı açıklanır. IÇGÖRÜME, yalnızca mevcut durumları çoğaltmaktan nadir durum sayısını artırmanın daha iyi bir yoludur.

SMOTE modülünü imdengeli bir veri kümesine bağlayabilirsiniz. Bir veri kümesinin dengesizlenebilir olmasının pek çok nedeni vardır: hedeflediğiniz kategori popülasyonun çok nadir olabilir veya verilerin toplanması zor olabilir. Genellikle, analiz etmek istediğiniz sınıf bölümünde temsil edildiğinde Smote kullanırsınız.

Modül, Belirttiğiniz yüzdeye bağlı olarak orijinal örnekleri içeren bir veri kümesi ve ek sayıda yapay azlık örneği döndürür.

SMOTE hakkında daha fazla bilgi

Smote , yapay Azınma fazla örnekleme tekniği için temsil eder. Bu, veri kümenizdeki durum sayısını dengeli bir şekilde artırmak için istatistiksel bir tekniktir. Modül, giriş olarak sağladığınız mevcut minınlık çalışmalarından yeni örnekler oluşturarak işe yarar. Bu duman uygulamasının çoğunluğu büyük/ veya büyük/büyük

Yeni örnekler yalnızca mevcut minlık durumlarının kopyaları değildir; Bunun yerine, algoritma her bir hedef sınıf ve en yakın komşuları için özellik alanının örneklerini alır ve hedef durumunun özelliklerini komşunilerin özellikleriyle birleştiren yeni örnekler oluşturur. Bu yaklaşım her sınıf için kullanılabilen özellikleri artırır ve örnekleri daha genel hale getirir.

DUMAN, tüm veri kümesini giriş olarak alır, ancak yalnızca azlık durumlarının yüzdesini artırır. Örneğin, yalnızca %1 ' in hedef değerine sahip olduğu (minınlık sınıfı) ve servis taleplerinin %99 ' si B değerine sahip olan bir imdengeli veri kümeniz olduğunu varsayalım. Minınlık durumlarının yüzdesini önceki yüzdenin iki katına yükseltmek için, modülün özelliklerindeki Smote yüzdesi olarak 200 girersiniz.

Örnekler

Nasıl çalıştığını görmek için küçük bir veri kümesiyle Smote kullanmayı denemeniz önerilir. Aşağıdaki örnek, Azure Machine Learning Studio (klasik) ' de bulunan kan bağış veri kümesini kullanır.

Veri kümesini bir denemeye ekler ve veri kümesinin çıktısında Görselleştir ' e tıklarsanız, 748 satır veya veri kümesindeki bir durumda, 570 durum (76%) olduğunu görebilirsiniz. Sınıf 0 ve 178 durum (%24) 1. sınıf. Bu, korursız olmasa da, 1. sınıf, kanlı olan kişileri temsil eder ve bu satırlar, modellemek istediğiniz özellik alanını içerir.

Durum sayısını artırmak için, 100 katları kullanarak Smote yüzdesi değerini aşağıdaki gibi ayarlayabilirsiniz:

Sınıf 0 Sınıf 1 toplam
Özgün veri kümesi

( Smote yüzdesine = eşdeğer 0)
570

%76
178

24
748
Smote yüzdesi = 100 570

%62
356

%38
926
Smote yüzdesi = 200 570

%52
534

%48
1104
Smote yüzdesi = 300 570

%44
712

%56
1282

Uyarı

Daha doğru modeller oluşturmak için, SMOTE kullanan servis taleplerinin sayısının artırılması garanti edilmez. Farklı yüzdeleri, farklı özellik kümelerini ve farklı sayılarda en yakın sayıda komşuları deneyerek, servis taleplerinin modelinizi nasıl etkilediğini görebilirsiniz.

SMOTE yapılandırma

  1. Deneme bilgisayarınıza SMOTE modülünü ekleyin. Modül, veri dönüştürme modülleri altında, düzenleme kategorisinde bulunabilir.

  2. Artırmak istediğiniz veri kümesini bağlayın. Yeni durumları oluşturmak için, yalnızca belirli sütunları kullanarak veya bazılarını dışlayarak özellik alanını belirtmek istiyorsanız, Smote'yı kullanmadan önce kullanmak istediğiniz sütunları yalıtmak Için veri kümesinde sütunları seç modülünü kullanın.

    Aksi takdirde, Smote kullanarak yeni durumların oluşturulması, giriş olarak sağladığınız Tüm sütunları temel alır.

  3. Etiketi veya target sınıfını içeren sütunun bu şekilde işaretlendiğinden emin olun.

    Etiket sütunu yoksa, sınıf etiketlerini içeren sütunu seçmek için meta verileri Düzenle modülünü kullanın ve alanlar açılan listesinden etiket ' i seçin.

  4. Smote modülü etiket sütunundaki minınlık sınıfını otomatik olarak tanımlar ve ardından minınlık sınıfı için tüm örnekleri alır.

  5. Smote yüzdesi seçeneğinde, çıkış veri kümesindeki minınlık durumlarının hedef yüzdesini gösteren bir tamsayı yazın. Örnek:

    • 0 (%) yazın. SMOTE modülü, giriş olarak verdiğiniz aynı veri kümesini, yeni bir minpom durumu ekleyerek de döndürür. Bu veri kümesinde, sınıf oranı değişmemiştir.

    • 100 (%) yazın. SMOTE modülü, özgün veri kümesindeki aynı sayıda minınlık durumu ekleyerek yeni minınlık durumları oluşturur. SMOTE, büyük/büyük/büyük/büyük/veya her bir sınıfın servis talebi oranını değiştirmediği için

    • 200 (%) yazın. Modül, özgün veri kümesiyle karşılaştırıldığında minınlık durumlarının yüzdesini iki katına çıkarır. Bu , daha önce olduğu gibi birçok minlık durumuna iki kez sahip olmaya neden olmaz. Bunun yerine, veri kümesinin boyutu çok sayıda artar ve bu da, büyük/küçük bir servis talebi sayısının, istenen yüzde değeri ile eşleşene kadar artar.

    Not

    SMOTE yüzdesi için yalnızca 100 katları kullanın.

  6. Yeni durumlar oluştururken, SMOTE algoritmasının kullandığı özellik alanının boyutunu belirtmek için en yakın komşu sayısı seçeneğini kullanın. En yakın komşu , bazı hedef harflere çok benzeyen bir veri satırıdır (bir durumdur). İki durum arasındaki mesafe, tüm özelliklerin ağırlıklı vektörlerini birleştirerek ölçülür.

    • En yakın komşu sayısını artırarak, daha fazla durumda özellikler alırsınız.
    • En yakın komşuların sayısını düşük tutarak, özgün örnekteki gibi olan özellikleri kullanabilirsiniz.
  7. Aynı denemenin üzerinde aynı sonuçların aynı verilerle aynı şekilde çalışmasını sağlamak istiyorsanız, rastgele çekirdek metin kutusuna bir değer yazın. Aksi takdirde modül, deneme dağıtıldığında işlemci saati değerlerini temel alarak rastgele bir çekirdek üretir, bu, çalıştırmalar üzerinde biraz farklı sonuçlara neden olabilir.

  8. Denemeyi çalıştırın.

    Modülün çıktısı, özgün satırları içeren bir veri kümesidir ve azlık durumlarına sahip bazı eklenmiş satırları içerir.

İpucu

Hangi yeni satırların eklendiğini anlamak istiyorsanız, SQL dönüştürme veya veri ekleme modüllerini kullanın.

Teknik notlar

  • Smote modülünü kullanan bir model yayımlarken, bir Web hizmeti olarak yayınlanmadan önce, tahmine dayalı deneyden Smote 'yı kaldırın. Bunun nedeni, SMOME 'nin eğitim sırasında bir modeli geliştirmesinin amaçlandığı ve Puanlama için tasarlanmamıştır. Yayımlanan bir tahmine dayalı deneme, SMOTE modülünü içeriyorsa bir hata alabilirsiniz.

  • Daha fazla sonuç elde etmek için eksik değer Temizleme veya diğer dönüştürmeleri, SMOTE uygulamadan önce verileri onarmak üzere uygularsanız daha iyi sonuçlar elde edebilirsiniz.

  • Bazı araştırmacılar, SMOTE 'ın metin sınıflandırması veya genomikler veri kümelerinde kullanılanlar gibi yüksek boyutlu veya seyrek veriler üzerinde etkin olup olmadığını araştırmıştır. Bu raporda, bu gibi durumlarda SMOTE uygulamanın teorik ve teorik doğruluğuna ilişkin iyi bir Özet vardır: Blagus ve lusa: yüksek boyutlu sınıf tarafından imlenen veriler IÇIN SMOTE

    SMOTE, veri kümeniz için geçerli değilse, minallık durumlarını fazla örneklemek veya çoğunluk durumlarının temelini oluşturmak için çeşitli yöntemler ve kümeleme, Bama ya da Uyarlamalı yükseltme kullanarak doğrudan öğrenme tekniklerini de göz önünde bulundurmanız gereken diğer yaklaşımlar vardır.

Beklenen giriş

Ad Tür Description
Örnekler Veri tablosu Örnek veri kümesi

Modül parametreleri

Name Aralık Tür Varsayılan Description
SMOTE yüzdesi >= 0 Tamsayı 100 100 katları olarak fazla örnekleme miktarı.
En yakın komşu sayısı >= 1 Tamsayı 1 Yeni durumlar için özelliklerin çizileceği en yakın komşu sayısı
Rastgele çekirdek Herhangi biri Tamsayı 0 Rastgele sayı üreticisi için çekirdek

Çıktı

Ad Tür Description
Tablo Veri tablosu Orijinal örnekleri içeren bir veri tablosu ve ek sayıda yapay azlık sınıfı örneği. Yeni örnek sayısı (smotePercent/100) * T, burada T, minınlık sınıf örneklerinin sayısıdır.

Ayrıca bkz.

Örnek ve bölünmüş
A-Z modül listesi