Sobes.tech

Data Analyst

Geometriği için nasıl bir benchmark oluştururdun? Fikirden son veri setine kadar olan zinciri açıkla.

123

Bir geçişte iki RLE sıkıştırılmış vektörün skalar çarpımını hesaplayan Python kodu yazın.

122

Afanasy, iki hafta boyunca, dokuz renk destekli Japon çapraz bulmacalarını çözebilecek kod yazmakla uğraşıyordu, ancak bir takım toplantısında, bir meslektaşı onun bu görevi kendisinin daha hızlı halledebileceğini söyledi ve programın artık anlamı kalmadı. Ancak Afanasy, iyimser biri olarak, bu görevi devam ettirmeye karar verdi ve şunu yaptı — meslektaşının çapraz bulmacaları ne kadar iyi çözdüğünü tahmin etmeye çalıştı. Bu değerlendirme için, IoU metriğinin bir analogunu seçti — hesaplama, klasik Intersection Over Union’a benzer olacak, ancak renkler bazında. İşleyiş şekli şöyledir: Orijinal ve çözümdeki her eşleşen hücre, renk bazında, payda için 1 ekler, payda ise, orijinal ve çözümdeki her hücre için 1 eklenir (eşleşen hücreler için sadece bir tane eklenir). Daha sonra, orijinal resimdeki renk sayısı üzerinden ortalama alınır ve iki ondalık basamağa yuvarlanır; sıfır renk olarak kabul edilmez, bu yüzden bu renk hücreleri için metrik hesaplanmamalıdır. Giriş, ilk satırda satır sayısı n ve sütun sayısı m (sıralama ile) ile başlar. Sonra, 2n satır gelir, bunlar m sayı içerir, boşlukla ayrılmıştır — ilk n satır, gönderilen çapraz bulmaca ile ilgilidir, sonraki n ise orijinal görüntüdür. Her satırın, ikinci satırdan başlayarak, tam olarak m sayı içerdiği varsayılır. Cevap olarak, örnekte gösterildiği gibi, iki ondalık basamağa yuvarlanmış bir sayı yazdırın. İşte bazı örnekler: 1. Birinci örnek [phone] -> 1.0 Açıklama: eşleşen ve eşleşmeyen hücrelerin katkısı (1.0 + 1.0 + 1.0 + 1.0) / renk sayısı (4) 2. İkinci örnek [phone] -> 0.08 Açıklama: eşleşen ve eşleşmeyen hücrelerin katkısı (0.25 + 0.0 + 0.0) / renk sayısı (3); sıfırlar, ne hücreler olarak ne de renk sayısı olarak sayılmaz. 3. Üçüncü örnek [phone] gönderilen görüntü başlar [phone] — gönderilen görüntü biter 0 1 2 — orijinal görüntü başlar [phone] -> 0.47 Açıklama: eşleşen ve eşleşmeyen hücrelerin katkısı (0.4 + 0.5 + 0.5) / renk sayısı (3); sıfırlar, ne hücreler olarak ne de renk sayısı olarak sayılmaz. 4. Dördüncü örnek [phone] -> 0.0 Açıklama: eşleşen ve eşleşmeyen hücrelerin katkısı (0.0) / renk sayısı (1); sıfırlar, ne hücreler olarak ne de renk sayısı olarak sayılmaz.

121

val_a, val_b = 0, 0 t = None i < len(a) veya j < len(b) olana kadar: a_next = a[i][0] eğer i < len(a) ise float('inf') b_next = b[j][0] eğer j < len(b) ise float('inf') eğer a_next < b_next: val_a = a[i][1] t = a[i][0] i += 1 elif b_next < a_next: val_b = b[j][1] t = b[j][0] j += 1 aksi takdirde: val_a = a[i][1] val_b = b[j][1] t = a[i][0] i += 1 j += 1 result.append((t, val_a + val_b)) return result

120

sum_series probleminin çözüm mantığını açıklayın: iki basamaklı zaman serisinin toplamını nasıl oluşturursunuz?

119

Bu SQL sorgusunda FROM, JOIN, GROUP BY ve SELECT'in mantıksal yürütme sırası nedir?

118

Pseudo kod sum_series(a={{1, 2}, {5, 1}}, b={{2, 4}, {3, 6}, {9, 7}}) -> {{1, 2}, {2, 6}, {3, 8}, {5, 7}, {9, 8}} def sum_series(a, b): result = [] i , j = 0, 0 val_a, val_b = 0, 0 while i < len(a) or j < len(b): a_next = a[i][0] if i < len(a) else float('inf') b_next = b[j][0] if j < len(b) else float('inf') if a_next <= b_next: val_a = a[i][1] t = a[i][0] i += 1 else: val_b = b[j][1] t = b[j][0] j += 1 result.append((t, val_a + val_b)) return result

115

Geometri benchmark'u için ground truth cevaplarını nasıl toplayabilirsiniz?

114

SQL'de sıralama operatörünün adı nedir ve ne zaman çalıştırılır? LIMIT sıralama sırasındaki konumu nedir?

113

-- Kullanıcılara gönderilen promosyon kampanyaları hakkında: -- 2.1 Her kampanya için iletişimin başarıyla alınan kullanıcı sayısını gösteren sorgu yazın. -- 2.2 Sorguyu değiştirerek: toplamda hiç başarılı iletişim almayan kullanıcı sayısını her kampanya için gösterin. -- 3. communications tablosuna bir alan daha eklendi – event_timestamp – iletişim teslimatı olayının tarihi ve saati, '%Y-%m-%d %H:%M:%S' formatında. -- Tüm kampanyalar için, başlatılmamış olanlar da dahil olmak üzere, metriği hesaplayın: başarılı mesaj teslimatının ilk denemede gerçekleştiği kullanıcıların oranı. -- Pencere fonksiyonları kullanılabilir veya kullanılmayabilir, ancak sorgunun optimize edilmesi önemlidir.

112

Verilerin normal dağılıma sahip olması için yerine getirilmesi gereken kriterleri açıkça listeleyin.

111

Yeni arama algoritmasını test etmek için A/B testi nasıl ayarlardın? Gerekli örneklem büyüklüğü ve test süresini nasıl belirlersin?

111

B. Önekler ve Sonekler N adet sıralanmış sıfırdan oluşan bir dizi verildiğinde, her adımda bu dizinin ilk veya son birkaç elemanını rastgele seçip, seçilen tüm elemanlara bir ekleyebilirsiniz. Belirtilen dizinin durumuna ulaşmak mümkün müdür? Giriş formatı İlk satırda 1 ≤ n ≤ 100000 olan bir tamsayı bulunur — dizinin eleman sayısı. İkinci satırda, boşlukla ayrılmış n adet sıfır olmayan tamsayı a1, a2, ..., an bulunur, burada ai ≤ 10^18 — istenen son elemanlar. Çıkış formatı Eğer böyle bir durum ulaşılabiliyorsa "YES" yazdırın, aksi takdirde "NO" yazdırın. Örnek Giriş [phone] Çıkış YES Not [phone] durumu aşağıdaki şekilde ulaşılabilir: İlk üç elemana bir ekleyerek [phone] elde edilir Son dört elemana bir ekleyerek [phone] elde edilir Son elemana bir ekleyerek [phone] elde edilir

110

Mülakat yapan kişiye sorularınız var mı?

110

Pseudo kod sum_series(a={{1, 2}, {5, 1}}, b={{2, 4}, {3, 6}, {9, 7}}) -> {{1, 2}, {2, 6}, {3, 8}, {5, 7}, {9, 8}} def sum_series(a, b): result = [] i , j = 0, 0 val_a, val_b = 0, 0 while i < len(a) or j < len(b): a_next = a[i][0] if i < len(a) else float('inf') b_next = b[j][0] if j < len(b) else float('inf') if a_next < b_next: val_a = a[i][1] t = a[i][0] i += 1 else: val_b = b[j][1] t = b[j][0] j += 1 result.append((t, val_a + val_b)) return result

108

-- Pazarlamacılar, uygulama hizmetinde promosyon kampanyaları başlatıyor. İki tablo var: -- campaigns – kampanya listesi -- - campaign – kampanya adı -- - action_type – kampanya tipi: "push" veya "banner" -- communications – bu kampanyaların kullanıcılara gönderimlerinin backend kaydı -- - user_id – kullanıcı kimliği -- - campaign – kampanya adı -- - status – olay durumu: "success" veya "error" --------------------------------------------------------------------------- -- 1. Başlangıçta, campaigns tablosunda 4 satır var: -- | campaign | action_type | -- |-------------|-------------| -- | promo_dogs | push | <- rastgele çoğaltılmış -- | promo_cats | banner | -- | promo_cats | banner | <- iki satır -- | promo_rats | push | -- Ayrıca biliniyor ki: -- promo_dogs ve promo_cats kampanyaları 100 kullanıcıyla başarıyla gerçekleştirildi ve her kullanıcıya bir ileti gönderildi, -- promo_rats ise sadece planlama aşamasında. -- 1.1 Sorgu ne gösterecek: SELECT campaign, COUNT(*) as rows, COUNT(DISTINCT co.user_id) AS users FROM campaigns AS ca INNER JOIN communications AS co ON ca.campaign = co.campaign GROUP BY ca.campaign AS campaign -- 1.2 JOIN türü LEFT olarak değiştirilirse cevap nasıl değişir?

107

Bir kıyaslama nedir ve çok modlu bir modelin kalitesini nasıl değerlendirirdin?

105

[İsim] hisse senedi getirisi normal dağılıma mı sahip olacak? (2000'den 2026'ya kadar tüm işlem tarihi boyunca dakika başına fiyat artışları)

99

-- campaigns tablosu düzeltildi: tekrarlar kaldırıldı, anahtar (PK) eklendi. -- Daha fazla kampanya gerçekleştirildi, hatalar nedeniyle kullanıcılar başarısız teslim denemeleri yaşadı ve bazılarına hiç gösterilmedi. -- Kullanıcılara gönderilen promosyon kampanyaları hakkında: -- 2.1 Her kampanya için iletişimi başarıyla alan kullanıcı sayısını gösteren sorgu yazın. -- 2.2 Sorguyu değiştirerek: toplamda hiç başarılı iletişim almayan kullanıcı sayısını her kampanya için gösterin. -- 3. communications tablosuna bir alan daha eklendi – event_timestamp – iletişim teslimatı olayının tarihi ve saati, '%Y-%m-%d %H:%M:%S' formatında. -- Tüm kampanyalar için, başlatılmamış olanlar da dahil olmak üzere, metriği hesaplayın: başarılı mesaj teslimatının ilk denemede gerçekleştiği kullanıcıların oranı. -- Pencere fonksiyonları kullanılabilir veya kullanılmayabilir, ancak sorgunun optimize edilmesi önemlidir.

98

D. Çin havai fişekleri Vladimir, 3 adet Çin havai fişek seti aldı. Hepsi tam olarak aynı görünüyor ve kutuda karışık halde, ancak talimatlara göre farklı güvenilirliklere sahipler: 1. "Elit" — arıza oranı %10 (başarı olasılığı 0.9). 2. "Standart" — arıza oranı %20 (başarı olasılığı 0.8). 3. "Ekonomi" — arıza oranı %40 (başarı olasılığı 0.6). Vladimir rastgele ilk havai fişeği alır, yakar ve başarılı olur. Mutlu olan Vladimir, kalan iki havai fişeği peş peşe ateşlemeye karar verir. İkinci ve üçüncü havai fişeklerin de başarıyla ateşlenme olasılığı nedir — arızasız? Cevabı üç ondalık basamağa yuvarlayın.

98
/3