R programlama dilini kullanıyorum. Aşağıdaki verilere sahip olduğumu varsayalım:
set.seed(123)
a = rnorm(100000,10,10)
b = rnorm(100000,10,10)
my_data = data.frame(a,b)
plot(my_data$a, my_data$b)
Bu verilere baktığınızda:
head(my_data)
a b
1 4.395244 12.649934
2 7.698225 28.307475
3 25.587083 9.406217
4 10.705084 9.467906
5 11.292877 14.379042
6 27.150650 23.374490
Sorum Şu: Bu veri kümesinin böyle bir nokta içerip içermediğini öğrenmenin bir yolu var mı
- "a" nın tüm değerleri bu noktanın a koordinatından küçüktür VE
- "b" nin tüm değerleri bu noktanın b koordinatından daha küçüktür
Bu veri kümesinin "genel maksimum nokta" içerip içermediğini öğrenmenin bir yolu var mı?
Örneğin, yukarıdaki kırmızı nokta gibi. Çoğu durumda, en büyük a koordinatına sahip noktanın mutlaka en büyük b koordinatına sahip olmayacağını ve bunun tersini görerek böyle bir nokta bulmanın pek mümkün olmadığını biliyorum:
#row with max value of "a"
which(my_data == max(my_data$a), arr.ind=TRUE)
row col
[1,] 23102 1
#row with max value of "b"
which(my_data == max(my_data$b), arr.ind=TRUE)
row col
[1,] 2071 2
#display row with max value of "a"
> my_data[23102,]
a b
23102 53.22815 4.500006
#display row with max value of "b"
> my_data[2071,]
a b
2071 15.85992 52.0609
Gördüğümüz gibi, "a" nın maksimum değerine sahip satır "b"nin maksimum değerini içermiyor.
Teşekkürler!
Not: Gerçek dünyada, büyük verilerde noktalar "çakıştığı" için "genel maksimum noktaları" bulmak genellikle imkansızdır (farklı satırlar farklı sütunların maksimumlarını içerir). Optimizasyon problemleri bağlamında, birkaç nokta genellikle bu kriterleri karşılayabilir ve hepsi uygun kabul edilir - bu noktalara "baskın olmayan" denir ve "Pareto Sınırında" (yeşil çizgi)bulunduğu söylenir.: