Sobes.tech

Data Analyst

Kā jūs izveidotu ģeometrijas bēnčmārku? Aprakstiet ķēdi no idejas līdz galīgajam datu kopumam.

124

val_a, val_b = 0, 0 t = None kad i < a garums vai j < b garums: a_next = a[i][0] ja i < a garums citādi float('inf') b_next = b[j][0] ja j < b garums citādi float('inf') ja 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 citādi: 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

123

Uzrakstiet Python kodu, kas vienā pārejā aprēķina divu RLE saspiestu vektoru skalāro reizinājumu.

123

Afanasy jau 2 nedēļas nodarbojas ar koda rakstīšanu, kas spēj risināt japāņu krustvārdu ar devīnu krāsu atbalstu, kad nākamajā sanāksmē kolēģis viņam paziņoja, ka pats spēj tikt galā ar uzdevumu ātrāk, un programmā jau nav jēgas. Bet Afanasy, kā optimists, nolēma vēl vairāk pievērsties šim uzdevumam un izdarīt sekojošo — aprēķināt, cik labi kolēģis tiek galā ar krustvārdiem. Šim novērtējumam viņš izvēlējās kādu līdzīgu IoU metriku — aprēķins notiks līdzīgi kā klasiskā Intersection Over Union, bet pēc krāsām. Tas darbojas šādi: katrs sakrīt ar oriģināla un risinājuma šūnu pēc krāsas, pievienojot 1 skaitītājam, bet dalītājs tiek palielināts par 1 katrai šūnai, kas ir gan oriģinālā, gan risinājumā (saskaņotās šūnas pievieno tikai vienu). Pēc tam tiek aprēķināts vidējais pēc krāsu skaita oriģinālajā attēlā, noapaļots līdz diviem cipariem aiz komata; nulle nav krāsa, tāpēc šajā aprēķinā nevajadzētu skaitīt šo krāsu. Pirmā rindā ir norādīts, cik rindu n un kolonnu m satur oriģinālais attēls. Tad seko 2n rindiņas, kurās ir pa m skaitļiem, atdalīti ar atstarpēm — pirmie n rindiņas attiecas uz nosūtīto risinājumu, bet nākamie n — uz oriģinālo attēlu. Pieņem, ka katrā rindā, sākot no otras, ir tieši m skaitļi. Kā atbildi izvadiet vienu skaitli, noapaļotu līdz diviem cipariem aiz komata, kā piemēros. Daži piemēri: 1. Pirmais piemērs [phone] -> 1.0 Skaidrojums: sakrītīgo un nesakrītīgo šūnu ieguldījums (1.0 + 1.0 + 1.0 + 1.0) / krāsu skaits (4) 2. Otrais piemērs [phone] -> 0.08 Skaidrojums: sakrītīgo un nesakrītīgo šūnu ieguldījums (0.25 + 0.0 + 0.0) / krāsu skaits (3); nulle netiek skaitīta, ne kā šūna reprezentācijās, ne krāsu skaitā. 3. Trešais piemērs [phone] šeit sākas nosūtītais attēls [phone] -- šeit beidzas nosūtītais attēls 0 1 2 -- šeit sākas oriģinālais attēls [phone] -> 0.47 Skaidrojums: sakrītīgo un nesakrītīgo šūnu ieguldījums (0.4 + 0.5 + 0.5) / krāsu skaits (3); nulle netiek skaitīta, ne kā šūna reprezentācijās, ne krāsu skaitā. 4. Ceturtais piemērs [phone] -> 0.0 Skaidrojums: sakrītīgo un nesakrītīgo šūnu ieguldījums (0.0) / krāsu skaits (1); nulle netiek skaitīta, ne kā šūna reprezentācijās, ne krāsu skaitā.

123

Izskaidrojiet sum_series uzdevuma risinājuma loģiku: kā uzbūvēt divu pakāpienu laika rindu summu?

119

Kāda ir loģiskā izpildes kārtība šajā SQL vaicājumā ar FROM, JOIN, GROUP BY un SELECT?

118

Kā sauc SQL kārtošanas operatoru un kad tas tiek izpildīts? Kur atrodas LIMIT izpildes secībā?

117

Pseidonods 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

117

Kā tu iestatītu A/B testu, lai pārbaudītu jaunu meklēšanas algoritmu? Kā noteikt nepieciešamo parauga lielumu un testa ilgumu?

115

A. Priekšvārdi un Sufiksi Dot ir sakārtots masīvs no n nullēm. Katru soli, jūs varat izvēlēties jebkuru skaitu no šī masīva pirmajiem vai pēdējiem elementiem un pievienot vienu visiem izvēlētajiem elementiem. Vai ir iespējams sasniegt norādīto stāvokli masīvā pēc noteikta skaita šādu operāciju? Ievades formāts Pirmā rinda satur veselu skaitli 1 ≤ n ≤ 100000 — masīva elementu skaitu. Otrā rinda satur n nulle vai pozitīvus veselos skaitļus a1, a2, ..., an, atdalītus ar atstarpēm, kur ai ≤ 10^18 — vēlamie galīgie elementi. Izvades formāts Izdrukājiet "YES", ja tāds stāvoklis ir sasniedzams, un "NO" ja nav. Piemērs Ievade [phone] Izvade YES Piezīme [phone] stāvokļus var sasniegt šādi: pievienojot vienu pirmajiem trim elementiem, iegūstot [phone] pievienojot vienu pēdējiem četriem elementiem, iegūstot [phone] pievienojot vienu pēdējam elementam, iegūstot [phone]

114

Kā vākt ground truth atbildes ģeometrijas benchmarkam?

114

-- Par parādītajiem lietotājiem nosūtītās reklāmas kampaņas: -- 2.1 Uzrakstiet vaicājumu, kas parāda katras kampaņas veiksmīgi saņēmušo lietotāju skaitu. -- 2.2 Mainiet vaicājumu, lai parādītu: kopējo lietotāju skaitu, kuri galīgi nav saņēmuši nevienu veiksmīgu komunikāciju, katrā kampaņā. -- 3. Tablē communications pievienots vēl viens lauks – event_timestamp – komunikācijas piegādes notikuma datums un laiks '%Y-%m-%d %H:%M:%S' formātā. -- Visām kampaņām, ieskaitot tās, kas nav uzsāktas, aprēķiniet metriku: lietotāju daļu, kuriem veiksmīga ziņojuma piegāde notika pirmajā mēģinājumā. -- Var izmantot logu funkcijas vai nē, bet ir svarīgi, lai vaicājums būtu optimāls.

112

Skaidri norādiet kritērijus, kas jāizpilda, lai dati būtu normālā sadalījumā.

111

Vai jums ir jautājumi intervētājam?

110

Pseidonods kods 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

Kas ir benchmark un kā jūs novērtētu daudzmodālo modeļa kvalitāti?

107

-- Mārketinga speciālisti uzsāk reklāmas kampaņas pakalpojuma lietotnē. Ir divas tabulas: -- campaigns – kampaņu saraksts -- - campaign – kampaņas nosaukums -- - action_type – kampaņas veids: "push" vai "banner" -- communications – backend žurnāls ar šo kampaņu sūtījumiem lietotājiem -- - user_id – lietotāja identifikators -- - campaign – kampaņas nosaukums -- - status – notikuma statuss: "success" vai "error" --------------------------------------------------------------------------- -- 1. Sākotnēji, tabulā campaigns ir 4 rindas: -- | campaign | action_type | -- |-------------|-------------| -- | promo_dogs | push | <- nejauši dublēts -- | promo_cats | banner | -- | promo_cats | banner | <- divas rindas -- | promo_rats | push | -- Tāpat ir zināms, ka: -- kampanijas promo_dogs un promo_cats tika veiksmīgi īstenotas 100 lietotājiem, un katrs lietotājs saņēma vienu komunikāciju, -- bet promo_rats ir tikai plānošanas stadijā. -- 1.1 Ko parādīs vaicājums: 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 Kā mainīsies atbilde, ja tipa JOIN vietā izvēlēsies LEFT?

107

Vai [nosaukums] akciju peļņa tiks sadalīta pēc normālas sadalījuma? (Minūtes cenu pieaugumi visā tirdzniecības vēsturē no 2000. līdz 2026. gadam)

101

D. Ķīnas uguņošanas Vladimirs iegādājās 3 ķīniešu uguņošanas komplektu. Tie izskatās pilnīgi vienādi un ir sajaukti kastē, bet saskaņā ar instrukcijām, tiem ir dažāda uzticamība: 1. "Elitārais" — defektu līmenis 10% (panākuma varbūtība 0.9). 2. "Standarta" — defektu līmenis 20% (panākuma varbūtība 0.8). 3. "Ekonomiskais" — defektu līmenis 40% (panākuma varbūtība 0.6). Vladimirs nejauši paņem pirmo uguņošanas ierīci, to aizdedzina, un tas veiksmīgi darbojas. Laimīgs, Vladimirs nolēma palaist atlikušās divas vienu pēc otras. Kāda ir varbūtība, ka arī otrais un trešais uguņošana veiksmīgi darbosies — bez defekta? Noapaļojiet atbildi līdz trim decimāldaļām.

98

-- Kampaņu tabula tika labota: noņemti dublikāti, pievienots atslēgas lauks (PK). -- Tika veiktas vairāk kampaņu, kļūdu dēļ lietotāji sāka saņemt neveiksmīgus komunikāciju piegādes mēģinājumus, un dažiem pat neizdevās parādīt. -- Par lietotājiem nosūtītajām promo kampaņām: -- 2.1 Uzrakstiet vaicājumu, kas parāda veiksmīgi saņēmušo lietotāju skaitu katrai kampaņai. -- 2.2 Mainiet vaicājumu, lai parādītu: lietotāju skaitu, kuri kopumā nav saņēmuši nevienu veiksmīgu komunikāciju, katrai kampaņai. -- Papildus tabulai communications pievienots vēl viens lauks – event_timestamp – komunikācijas piegādes notikuma datums un laiks formātā '%Y-%m-%d %H:%M:%S'. -- Visām kampaņām, ieskaitot neuzsāktās, aprēķiniet metriku: lietotāju daļu, kuriem veiksmīga ziņojuma piegāde tika veikta pirmajā mēģinājumā. -- Var izmantot loga funkcijas vai ne, bet ir svarīgi, lai vaicājums būtu optimāls.

98
/3