Garfield
YZF Admin
Gaussian process modelleri, gözlemler arasındaki benzerliği kullanarak sürekli değer tahmini ve sınıflandırma görevlerinde kullanılır. scikit-learn içinde bunun karşılığı çoğunlukla
Model yalnızca tek bir tahmin üretmez; tahmin ortalamasının yanında standart sapma da verebilir. Standart sapmanın büyümesi, modelin o bölgedeki veriler hakkında daha az bilgi sahibi olduğunu gösterir. Bu değer tahminin kesinlikle doğru olduğunu kanıtlamaz; yalnızca seçilen çekirdek, gürültü modeli ve eğitim verisine göre hesaplanan belirsizliği ifade eder.
Aşağıdaki varsayımsal örnekte amaç, tek bir giriş değişkeninden sürekli bir çıktı tahmin etmektir:
Bu kodda
Bu model, karar sınırının düzgün ve çekirdek tarafından tanımlanan benzerlik yapısına uygun olduğu durumlarda anlamlıdır.
Gaussian process modellerinin önemli kullanım alanlarından biri, yalnızca “en iyi tahmin”i değil, hangi tahminlerin daha fazla bilgi sağlayabileceğini belirlemektir. Örneğin pahalı bir laboratuvar ölçümünde, modelin belirsizliğinin yüksek olduğu yeni bir noktayı seçerek eğitim verisini genişletebilirsiniz. Benzer yaklaşım aktif öğrenme, deney tasarımı ve Bayesian optimization uygulamalarında kullanılır.
scikit-learn modelleri bu tür uygulamalar için tahmin ortalaması ve belirsizlik ölçüsü sağlayabilir; ancak doğrudan tam kapsamlı bir Bayesian optimization sistemi sunmaz. Yeni noktayı nasıl seçeceğinizi ayrıca tasarlamanız gerekir.
Aşağıdaki ayrım, hangi sınıfın uygun olduğunu hızlıca gösterir:
Tablodaki görevlerden biri size uyuyor olsa bile veri boyutunu ayrıca değerlendirin. Klasik Gaussian process hesaplamaları eğitim örneklerinin sayısı arttıkça pahalılaşır; özellikle çok büyük veri kümelerinde eğitim ve bellek maliyeti önemli bir sınırlama olur. Çok yüksek boyutlu girdilerde de uygun çekirdek seçilmezse modelin genellemesi zayıflayabilir.
Milyonlarca eğitim satırınız varsa, hızlı çevrim içi tahmin gerekiyorsa veya özellik sayısı çok yüksekse Gaussian process ilk seçenek olmayabilir. Bu durumda ağaç tabanlı modeller, doğrusal modeller, destek vektör makineleri veya ölçeklenebilir sinir ağı yaklaşımları daha pratik olabilir.
Ayrıca hedef değişken gürültülüyse
Kısaca, scikit-learn Gaussian process modelleri küçük veya orta boyutlu veride, düzgün bir ilişki varsayımının makul olduğu ve tahmin belirsizliğinin karar sürecinde önemli olduğu regresyon ve sınıflandırma görevlerinde kullanılır. Sadece en düşük tahmin hatasını değil, modelin hangi girdilerde güvensiz olduğunu da bilmek istiyorsanız güçlü bir seçenektir; büyük veri kümelerinde ise ölçeklenebilirlik maliyetini baştan hesaba katmalısınız.
GaussianProcessRegressor ve GaussianProcessClassifier sınıflarıdır. Özellikle veri kümesi küçük veya orta boyutluysa, tahminin yanında belirsizlik bilgisini de almak istediğinizde uygundur. Örneğin bir sensör değerini tahmin edip modelin bu tahminden ne kadar emin olduğunu ölçebilirsiniz.Hangi tahmin görevlerine uygundur?
Sürekli bir değeri tahmin etme
GaussianProcessRegressor, hedef değişkenin sayısal ve sürekli olduğu regresyon problemleri içindir. Sıcaklık, enerji tüketimi, basınç, ölçüm sonucu, üretim maliyeti veya bir deneyin çıktısı gibi değerleri tahmin edebilirsiniz.Model yalnızca tek bir tahmin üretmez; tahmin ortalamasının yanında standart sapma da verebilir. Standart sapmanın büyümesi, modelin o bölgedeki veriler hakkında daha az bilgi sahibi olduğunu gösterir. Bu değer tahminin kesinlikle doğru olduğunu kanıtlamaz; yalnızca seçilen çekirdek, gürültü modeli ve eğitim verisine göre hesaplanan belirsizliği ifade eder.
Aşağıdaki varsayımsal örnekte amaç, tek bir giriş değişkeninden sürekli bir çıktı tahmin etmektir:
Python:
import numpy as np
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBF, ConstantKernel
X = np.array([[0.0], [1.0], [2.0], [3.0]])
y = np.array([0.2, 1.1, 1.9, 3.2])
kernel = ConstantKernel(1.0) * RBF(length_scale=1.0)
model = GaussianProcessRegressor(
kernel=kernel,
alpha=0.05,
normalize_y=True,
random_state=0
)
model.fit(X, y)
test_X = np.array([[1.5], [4.0]])
prediction, standard_deviation = model.predict(
test_X,
return_std=True
)
print(prediction)
print(standard_deviation)
Bu kodda
1.5 eğitim verilerinin arasına yakın olduğu için belirsizliğin daha düşük olması beklenir. 4.0 ise eğitim aralığının dışındadır; bu nedenle modelin belirsizliği genellikle daha yüksek olur. Çıktıdaki tahmin değerini tek başına değil, standart sapmayla birlikte değerlendirin.Sınıf tahmini yapma
GaussianProcessClassifier, hedefin sınıf etiketi olduğu problemlerde kullanılır. Örneğin bir örneğin iki sınıftan hangisine ait olduğunu tahmin etmek, bir işlemin normal veya anormal olduğunu sınıflandırmak ya da bir girdinin belirli bir kategoriye ait olma olasılığını hesaplamak için kullanılabilir.Bu model, karar sınırının düzgün ve çekirdek tarafından tanımlanan benzerlik yapısına uygun olduğu durumlarda anlamlıdır.
predict_proba() ile sınıf olasılıkları alınabilir; ancak bu olasılıklar da seçilen model ve verinin temsil gücüne bağlıdır. Yüksek olasılık, gerçek dünyada kesinlik garantisi değildir.Belirsizlik kullanan seçim ve deney tasarımı
Gaussian process modellerinin önemli kullanım alanlarından biri, yalnızca “en iyi tahmin”i değil, hangi tahminlerin daha fazla bilgi sağlayabileceğini belirlemektir. Örneğin pahalı bir laboratuvar ölçümünde, modelin belirsizliğinin yüksek olduğu yeni bir noktayı seçerek eğitim verisini genişletebilirsiniz. Benzer yaklaşım aktif öğrenme, deney tasarımı ve Bayesian optimization uygulamalarında kullanılır.
scikit-learn modelleri bu tür uygulamalar için tahmin ortalaması ve belirsizlik ölçüsü sağlayabilir; ancak doğrudan tam kapsamlı bir Bayesian optimization sistemi sunmaz. Yeni noktayı nasıl seçeceğinizi ayrıca tasarlamanız gerekir.
Görev seçimini nasıl yapmalısınız?
Aşağıdaki ayrım, hangi sınıfın uygun olduğunu hızlıca gösterir:
| Tahmin görevi | Uygun model | Çıktı | Ne zaman anlamlıdır? |
|---|---|---|---|
| Sürekli sayısal değer | GaussianProcessRegressor | Tahmin ve standart sapma | Küçük veya orta boyutlu veri ve belirsizlik ihtiyacı |
| Sınıf etiketi | GaussianProcessClassifier | Sınıf ve olasılık tahmini | Daha düzgün karar sınırları ve olasılıksal çıktı gerektiğinde |
| Yeni ölçüm noktası seçimi | Regressor çıktısı ve özel seçim kuralı | Ortalama-belirsizlik dengesi | Ölçüm maliyeti yüksek ve veri kademeli toplanıyorsa |
Hangi durumlarda başka bir model seçmek daha uygundur?
Milyonlarca eğitim satırınız varsa, hızlı çevrim içi tahmin gerekiyorsa veya özellik sayısı çok yüksekse Gaussian process ilk seçenek olmayabilir. Bu durumda ağaç tabanlı modeller, doğrusal modeller, destek vektör makineleri veya ölçeklenebilir sinir ağı yaklaşımları daha pratik olabilir.
Ayrıca hedef değişken gürültülüyse
alpha değerini ve çekirdek seçimini rastgele belirlemeyin. Çok küçük bir gürültü varsayımı modeli eğitim verisine aşırı uydurabilir; çok büyük bir değer ise gerçek örüntüyü fazla yumuşatabilir. Modeli doğrulama verisiyle karşılaştırın ve regresyonda hata ölçüsünün yanında belirsizlik tahminlerinin de makul davranıp davranmadığını inceleyin.Kısaca, scikit-learn Gaussian process modelleri küçük veya orta boyutlu veride, düzgün bir ilişki varsayımının makul olduğu ve tahmin belirsizliğinin karar sürecinde önemli olduğu regresyon ve sınıflandırma görevlerinde kullanılır. Sadece en düşük tahmin hatasını değil, modelin hangi girdilerde güvensiz olduğunu da bilmek istiyorsanız güçlü bir seçenektir; büyük veri kümelerinde ise ölçeklenebilirlik maliyetini baştan hesaba katmalısınız.