ML.NET'de makine öğrenmesi görevleri
Makine öğrenmesi görev, her ikisini de temel alan bir tahmin veya çıkarım türüdür:
- Sorun veya soru
- Kullanılabilir veriler
Örneğin, sınıflandırma görevi kategorilere veri atar ve kümeleme görevi verileri benzerliğe göre gruplandırr.
Makine öğrenmesi görevleri, açıkça programlanmak yerine verilerdeki desenleri kullanır.
Bu makalede, ML.NET ve bazı yaygın kullanım örneklerinde kullanılabilen farklı makine öğrenmesi görevleri açıklanmaktadır.
Senaryonuz için hangi görevin işe yarayabileceğinize karar verdikten sonra modelinizi eğitmek için en iyi algoritmayı seçmeniz gerekir. Kullanılabilir algoritmalar, her görev için bölümünde listelenir.
Sınıflandırma görevleri
- İkili sınıflandırma
- çok sınıflı sınıflandırma
- Görüntü sınıflandırma
İkili sınıflandırma
İkili sınıflandırma, bir veri örneğinin tam olarak hangi sınıfına (kategoriler) ait olduğunu tahmin etmek için kullanılan denetimli bir makine öğrenmesi görevidir. Sınıflandırma algoritmasının girişi, etiketlenmiş örnekler kümesidir ve her etiket 0 veya 1 tamsayıdır. İkili sınıflandırma algoritmasının çıkışı, etiketlenmemiş yeni örneklerin sınıfını tahmin etmek için kullanabileceğiniz bir sınıflandırıcıdır. İkili sınıflandırma senaryolarına örnek olarak şunlar verilebilir:
- Twitter yorumlarının duygusunu anlama olumlu veya olumsuz.
- Bir hastanın belirli bir hastalığı olup olmadığını teşhis.
- E-postayı istenmeyen posta olarak işaretlemeye karar verme.
- Bir fotoğrafın köpek veya meyve gibi belirli bir öğeyi içerip içermediğini belirleme.
Daha fazla bilgi için Wikipedia'da İkili sınıflandırma makalesine bakın.
İkili sınıflandırma eğitmenleri
Aşağıdaki algoritmaları kullanarak ikili sınıflandırma modelini eğitebilirsiniz:
- AveragedPerceptronTrainer
- SdcaLogisticRegressionBinaryTrainer
- SdcaNonCalibratedBinaryTrainer
- SymbolicSgdLogisticRegressionBinaryTrainer
- LbfgsLogisticRegressionBinaryTrainer
- LightGbmBinaryTrainer
- FastTreeBinaryTrainer
- FastForestBinaryTrainer
- GamBinaryTrainer
- FieldAwareFactorizationMachineTrainer
- PriorTrainer
- LinearSvmTrainer
İkili sınıflandırma girişleri ve çıkışları
İkili sınıflandırma ile ilgili en iyi sonuçlar için eğitim verileri dengelenmelidir (yani, eşit sayıda pozitif ve negatif eğitim verileri). Eksik değerler eğitimden önce işlenmelidir.
Giriş etiket sütunu verileri Booleanolmalıdır. Giriş özellikleri sütun verileri Singlesabit boyutlu bir vektör olmalıdır.
Bu eğitmenler aşağıdaki sütunları oluşturur:
Çıkış Sütunu Adı | Sütun Türü | Açıklama |
---|---|---|
Score |
Single | Modelin hesaplanmış olduğu ham puan. |
PredictedLabel |
Boolean | Skorun işaretine dayanarak tahmin edilen etiket. Negatif bir skor false ile eşleşir ve pozitif bir skor true ile eşleşir. |
Çok sınıflı sınıflandırma
Çok sınıflı sınıflandırma, bir veri örneğini üç veya daha fazla sınıfından (kategoriler) birinde sınıflandırmak için kullanılan
- Uçuşları "erken", "zamanında" veya "geç" olarak kategorilere ayırma.
- Film incelemelerini "pozitif", "nötr" veya "negatif" olarak anlama.
- Örneğin otel incelemelerini "konum", "fiyat" veya "temizlik" olarak kategorilere ayırmak.
Daha fazla bilgi için Wikipedia'da Çok Sınıflı sınıflandırma makalesine bakın.
Not
Çok sınıflı sınıflandırma eğitmenleri
Aşağıdaki eğitim algoritmalarını kullanarak çok sınıflı sınıflandırma modelini eğitebilirsiniz:
- TextClassificationTrainer
- LightGbmMulticlassTrainer
- SdcaMaximumEntropyMulticlassTrainer
- SdcaNonCalibratedMulticlassTrainer
- LbfgsMaximumEntropyMulticlassTrainer
- NaiveBayesMulticlassTrainer
- OneVersusAllTrainer
- PairwiseCouplingTrainer
Çok sınıflı sınıflandırma girişleri ve çıkışları
Giriş etiketi sütun verileri anahtar türünde olmalıdır. Özellik sütunu, Singlesabit boyutlu bir vektör olmalıdır.
Bu eğitmen aşağıdaki sonuçları verir:
Çıkış Adı | Tür | Açıklama |
---|---|---|
Score |
Single vektör | Tüm sınıfların puanları. Daha yüksek değer, ilişkili sınıfa düşme olasılığının yüksek olduğu anlamına gelir.
i -th öğesi en büyük değere sahipse, tahmin edilen etiket dizini i olacaktır.
i sıfır tabanlı dizin olduğunu unutmayın. |
PredictedLabel |
anahtar | Tahmin edilen etiketin dizini. Değeri i ise, gerçek etiket anahtar değerli giriş etiketi türündeki i -th kategorisi olacaktır. |
Metin sınıflandırması
Metin sınıflandırması, özellikle ham metinle ilgilenen çok sınıflı sınıflandırmanın bir alt kategorisidir. Metnin oluştuğu bağlamı ve semantiği hesaba bağlamanız gerektiğinden metin ilginç zorluklar oluşturur. Bu nedenle anlamı ve bağlamı kodlamak zor olabilir.
Derin öğrenme modelleri, doğal dil sorunlarını çözmek için umut verici bir teknik olarak ortaya çıkmıştır. Daha açık belirtmek gerekirse, transformatör olarak bilinen bir sinir ağı türü, metin sınıflandırması, çeviri, özetleme ve soru yanıtlama gibi doğal dil sorunlarını çözmenin baskın yolu haline gelmiştir. Doğal dil görevleri için bazı popüler transformatör mimarileri şunlardır:
- Transformatörlerden çift yönlü kodlayıcı gösterimleri (BERT)
- Sağlam bir şekilde iyileştirilmiş BERT ön eğitim yaklaşımı (RoBERTa)
- Jeneratörlü önceden eğitilmiş transformatör (GPT)
ML.NET metin sınıflandırma API'TorchSharptarafından desteklenir. TorchSharp, PyTorch'ı destekleyen kitaplığa erişim sağlayan bir .NET kitaplığıdır. TorchSharp, .NET'te sinir ağlarını sıfırdan eğitmeye yönelik yapı taşları içerir. ML.NET TorchSharp'ın karmaşıklığından bazılarını senaryo düzeyine soyutlar. NAS-BERT modelinin önceden eğitilmiş bir sürümünü kullanır ve verilerinizle ince ayarlamalar uygular.
Metin sınıflandırma örneği için bkz. Metin sınıflandırma API'sini kullanmaya başlama.
Görüntü sınıflandırması
Görüntü sınıflandırması, bir görüntünün sınıfını (kategorisini) tahmin etmek için kullanılan denetimli makine öğrenmesi görevidir. Giriş, etiketlenmiş örnekler kümesidir. Her etiket normalde metin olarak başlar. Ardından TermTransform aracılığıyla çalıştırılır ve bu da bunu Anahtar (sayısal) türüne dönüştürür. Görüntü sınıflandırma algoritmasının çıkışı, yeni görüntü sınıfını tahmin etmek için kullanabileceğiniz bir sınıflandırıcıdır. Görüntü sınıflandırma görevi, çok sınıflı bir sınıflandırma türüdür. Görüntü sınıflandırma senaryolarına örnek olarak şunlar verilebilir:
- Bir köpeğin cinsini "Sibirya Kurdu", "Golden Retriever", "Kaniş" vb. olarak belirlemek.
- Üretim ürününün arızalı olup olmadığını belirleme.
- Ne tür çiçeklerin "Gül", "Ayçiçeği" vb. olarak belirlenmesi.
Görüntü sınıflandırma eğitmenleri
Aşağıdaki eğitim algoritmalarını kullanarak görüntü sınıflandırma modelini eğitebilirsiniz:
Görüntü sınıflandırma girişleri ve çıkışları
Giriş etiketi sütun verileri anahtar türünde olmalıdır. Özellik sütunu, Bytedeğişken boyutlu bir vektör olmalıdır.
Bu eğitmen aşağıdaki sütunları üretir:
Çıkış Adı | Tür | Açıklama |
---|---|---|
Score |
Single | Tüm sınıfların puanları. Daha yüksek değer, ilişkili sınıfa düşme olasılığının yüksek olduğu anlamına gelir.
i -th öğesi en büyük değere sahipse, tahmin edilen etiket dizini i olacaktır. (i sıfır tabanlı bir dizindir.) |
PredictedLabel |
Anahtar türü | Tahmin edilen etiketin dizini. Değeri i ise, gerçek etiket anahtar değerli giriş etiketi türündeki i -th kategorisi olacaktır. |
Gerileme
Regresyon, bir dizi ilgili özellikten etiketin değerini tahmin etmek için kullanılan denetimli makine öğrenmesi görevidir. Etiket herhangi bir gerçek değere sahip olabilir ve sınıflandırma görevlerinde olduğu gibi sonlu bir değer kümesinden değildir. Regresyon algoritmaları, özelliklerin değerleri değiştikçe etiketin nasıl değişeceğini belirlemek için etiketin ilgili özelliklerine bağımlılığını modeller. Regresyon algoritmasının girişi, bilinen değerlerin etiketlerini içeren bir dizi örnektir. Regresyon algoritmasının çıkışı, yeni giriş özellikleri kümesinin etiket değerini tahmin etmek için kullanabileceğiniz bir işlevdir. Regresyon senaryolarına örnek olarak şunlar verilebilir:
- Yatak odası sayısı, konum veya boyut gibi ev özniteliklerine göre ev fiyatlarını tahmin etme.
- Geçmiş verilere ve güncel piyasa eğilimlerine göre gelecekteki hisse senedi fiyatlarını tahmin etme.
- Reklam bütçelerine göre bir ürünün satışını tahmin etme.
- Yayındaki ilgili makaleleri bulma (cümle benzerliği).
Regresyon eğitmenleri
Aşağıdaki algoritmaları kullanarak regresyon modelini eğitebilirsiniz:
- SentenceSimilarityTrainer
- LbfgsPoissonRegressionTrainer
- LightGbmRegressionTrainer
- SdcaRegressionTrainer
- OlsTrainer
- OnlineGradientDescentTrainer
- FastTreeRegressionTrainer
- FastTreeTweedieTrainer
- FastForestRegressionTrainer
- GamRegressionTrainer
Regresyon girişleri ve çıkışları
Giriş etiket sütunu verileri Singleolmalıdır.
Bu görevin eğitmenleri aşağıdaki çıktıları oluşturur.
Çıkış Adı | Tür | Açıklama |
---|---|---|
Score |
Single | Model tarafından tahmin edilen ham puan |
Kümeleme
Kümeleme, veri örneklerini benzer özelliklere sahip kümeler halinde gruplandırmak için kullanılan denetimsiz bir makine öğrenmesi görevidir. Kümeleme, gözatma veya basit gözlemle mantıksal olarak türetmeyebileceğiniz bir veri kümesindeki ilişkileri tanımlamak için de kullanılabilir. Kümeleme algoritmasının girişleri ve çıkışları, seçilen metodolojiye bağlıdır. Dağıtım, merkezroid, bağlantı veya yoğunluk tabanlı bir yaklaşım benimseyebilirsiniz. ML.NET şu anda K-Means kümeleme kullanarak centroid tabanlı bir yaklaşımı desteklemektedir. Kümeleme senaryolarına örnek olarak şunlar verilebilir:
- Otel seçeneklerinin alışkanlıklarına ve özelliklerine göre otel konuklarının segmentlerini anlama.
- Hedefli reklam kampanyaları oluşturmaya yardımcı olmak için müşteri segmentlerini ve demografik bilgilerini tanımlama.
- Stokları üretim ölçümlerine göre kategorilere ayırma.
Kümeleme eğitmeni
Aşağıdaki algoritmayı kullanarak kümeleme modelini eğitebilirsiniz:
Kümeleme girişleri ve çıkışları
Giriş özellikleri verileri Singleolmalıdır. Etiket gerekmez.
Bu eğitmen aşağıdaki sonuçları verir:
Çıkış Adı | Tür | Açıklama |
---|---|---|
Score |
Single vektör | Verilen veri noktasının tüm kümelerin merkez noktalarına olan uzaklıkları. |
PredictedLabel |
anahtar türü | Modelin tahmin ettiği en yakın kümenin indeksi. |
Anomali algılama
Anomali algılama görevi, asıl bileşen analizini (PCA) kullanarak bir anomali algılama modeli oluşturur. PCA tabanlı anomali algılama, geçerli işlemler gibi tek bir sınıftan eğitim verileri almanın kolay olduğu ancak hedeflenen anomalilerin yeterli örneklerinin elde edilemediği senaryolarda bir model oluşturmanıza yardımcı olur.
Makine öğrenmesinde yerleşik bir teknik olan PCA, verilerin iç yapısını ortaya çıkardığından ve verilerdeki varyansı açıkladığı için keşif veri analizinde sıklıkla kullanılır. PCA, birden çok değişken içeren verileri analiz ederek çalışır. Değişkenler arasındaki bağıntıları arar ve sonuçlardaki farkları en iyi yakalayan değerlerin birleşimini belirler. Bu birleştirilmiş özellik değerleri, asıl bileşenler olarak adlandırılan daha kompakt bir özellik alanı oluşturmak için kullanılır.
Anomali algılama, makine öğrenmesindeki birçok önemli görevi kapsar:
- Sahte olabilecek işlemleri tanımlama.
- Bir ağ izinsiz girişi oluştuğuna işaret eden öğrenme desenleri.
- Anormal hasta kümelerini bulma.
- Sisteme girilen değerler denetleniyor.
Anomaliler tanım gereği nadir olaylar olduğundan, modelleme için kullanılacak temsili bir veri örneği toplamak zor olabilir. Bu kategoriye dahil edilen algoritmalar özellikle dengesiz veri kümelerini kullanarak model oluşturma ve eğitmeye yönelik temel zorlukları ele almak için tasarlanmıştır.
Anomali algılama eğitmeni
Aşağıdaki algoritmayı kullanarak anomali algılama modelini eğitebilirsiniz:
Anomali algılama girişleri ve çıkışları
Giriş özellikleri Singlesabit boyutlu bir vektör olmalıdır.
Bu eğitmen aşağıdaki sonuçları verir:
Çıkış Adı | Tür | Açıklama |
---|---|---|
Score |
Single | Anomali algılama modeli tarafından hesaplanan negatif olmayan, ilişkisiz puan. |
PredictedLabel |
Boolean | Giriş anomali ise true , değilse false . |
Sıralama
Derecelendirme görevi, etiketlenmiş örnekler kümesinden bir dereceleyici oluşturur. Bu örnek kümesi, belirli bir ölçütle puanlanabilir örnek gruplarından oluşur. Derecelendirme etiketleri her örnek için { 0, 1, 2, 3, 4 } şeklindedir. Dereceleyici, her örnek için bilinmeyen puanlara sahip yeni örnek gruplarını derecelendirecek şekilde eğitilir. ML.NET derecelendirme öğrenenler makine öğrenmesi derecelendirme tabanlıdır.
Eğitim algoritmalarını derecelendirme
Aşağıdaki algoritmalarla bir derecelendirme modeli eğitebilirsiniz:
Girdi ve çıktıların sıralanması
Giriş etiketi veri türü, anahtarı türü veya Singleolmalıdır. Etiketin değeri, daha yüksek değerlerin daha yüksek alakayı gösterdiği durumu belirler. Etiket bir türünde anahtarsa, anahtar dizini ilgi değeridir; burada en küçük dizin en az ilgilidir. Etiket bir Singleise, daha büyük değerler daha yüksek ilgi gösterir.
Özellik verileri Single sabit boyutlu bir vektör olmalı ve giriş satırı grubu sütunu anahtar türünde olmalıdır.
Bu eğitmen aşağıdaki sonuçları verir:
Çıkış Adı | Tür | Açıklama |
---|---|---|
Score |
Single | Tahmini belirlemek için model tarafından hesaplanan sınırsız puan. |
Tavsiye
Öneri görevi, önerilen ürün veya hizmetlerin listesinin üretilmesine olanak tanır. ML.NET, kataloğunuzda geçmiş ürün derecelendirme verileri olduğunda öneriler için bir işbirliğine dayalı filtreleme algoritması olan Matris faktörizasyonu (MF)kullanır. Örneğin, kullanıcılarınız için geçmiş film derecelendirme verileriniz var ve daha sonra izleme olasılığı olan diğer filmleri önermek istiyorsunuz.
Öneri eğitim algoritmaları
Aşağıdaki algoritmayla bir öneri modelini eğitebilirsiniz:
Tahmin
Tahmin görevi, gelecekteki davranışlarla ilgili tahminlerde bulunmak için geçmiş zaman serisi verilerini kullanır. Tahmin için geçerli senaryolar arasında hava durumu tahmini, mevsimsel satış tahminleri ve tahmine dayalı bakım sayılabilir.
Tahmin eğitmenleri
Tahmin modelini aşağıdaki algoritmayla eğitebilirsiniz:
Nesne algılama
Nesne algılama, bir görüntünün sınıfını (kategorisini) tahmin etmek için kullanılan ancak aynı zamanda bu kategorinin görüntü içinde bulunduğu yere sınırlayıcı bir kutu sağlayan denetimli makine öğrenmesi görevidir. Nesne algılama, görüntüdeki tek bir nesneyi sınıflandırmak yerine bir görüntüdeki birden çok nesneyi algılayabilir. Nesne algılama örnekleri şunlardır:
- Bir yol görüntüsündeki arabaları, işaretleri veya kişileri algılama.
- Ürünlerin görüntülerindeki hataları algılama.
- X-Ray görüntüleriyle ilgili endişe alanlarını algılama.
Nesne algılama modeli eğitimi şu anda yalnızca Azure Machine Learning kullanılarak Model Builder kullanılabilir.