Kumaha Yandex.Taxi milarian mobil nalika teu aya

Kumaha Yandex.Taxi milarian mobil nalika teu aya

Palayanan taksi anu saé kedah aman, dipercaya sareng gancang. Pamaké moal balik kana detil: hal anu penting pikeun anjeunna ngaklik tombol "Order" sarta narima mobil gancang-gancang anu bakal mawa anjeunna ti titik A ka titik B. Lamun teu aya mobil caket dieu, jasa kudu. geuwat ngawartosan ngeunaan ieu supados klien teu boga ekspektasi palsu. Tapi lamun tanda "No mobil" némbongan teuing mindeng, éta logis yén hiji jalma ngan saukur bakal eureun ngagunakeun layanan ieu sarta balik ka pesaing.

Dina artikel ieu abdi hoyong ngobrol ngeunaan kumaha, ngagunakeun learning mesin, urang ngajawab masalah neangan mobil di wewengkon low-dénsitas (dina basa sejen, dimana, dina glance kahiji, teu aya mobil). Jeung naon datang ti eta.

prasajarah

Pikeun nelepon taksi, pamaké ngalakukeun sababaraha léngkah basajan, tapi naon anu lumangsung di jero layanan nu?

Пользователь Panggung Backend Yandex.Taxi
Milih titik awal Pin Kami ngaluncurkeun milarian saderhana pikeun calon - pin search. Dumasar drivers kapanggih, waktu datangna diprediksi - ETA dina pin. Koéfisién naékna dina titik anu ditangtukeun diitung.
Milih tujuan, ongkos, syarat nawaran Urang ngawangun rute jeung ngitung harga pikeun sakabéh tariffs, nyokot kana akun ngaronjatna koefisien.
Pencét tombol "Telepon Taksi". Urutan Urang ngajalankeun pilarian pinuh pikeun mobil. Kami milih supir anu paling cocog sareng nawiskeun anjeunna pesenan.

dina ETA di pin, itungan harga и milih supir anu paling cocog urang geus nulis. Sareng ieu mangrupikeun carita ngeunaan milarian supir. Nalika pesenan didamel, pamilarian lumangsung dua kali: dina Pin sareng pesenan. Milarian pesenan lumangsung dina dua tahap: rekrutmen calon sareng réngking. Kahiji, supir calon sadia kapanggih anu pangdeukeutna sapanjang grafik jalan. Lajeng bonus na nyaring diterapkeun. Calon sésa rengking sareng juara nampi tawaran pesenan. Upami anjeunna satuju, anjeunna ditugaskeun kana pesenan sareng angkat ka titik pangiriman. Upami anjeunna nolak, teras tawaran sumping ka anu salajengna. Upami teu aya deui calon, pamilarian dimimitian deui. Ieu lasts teu leuwih ti tilu menit, nu satutasna pesenan dibatalkeun jeung dibeuleum.

Milarian dina Pin sami sareng milarian pesenan, ngan pesenan henteu didamel sareng pamilarian nyalira dilakukeun ngan sakali. Setélan saderhana pikeun jumlah calon sareng radius pamilarian ogé dianggo. Nyederhanakeun sapertos kitu dipikabutuh sabab aya urutan gedéna langkung pin ti pesenan, sareng milarian mangrupikeun operasi anu rada sesah. Titik konci pikeun carita urang: lamun salila pilarian awal euweuh calon cocog kapanggih dina Pin, teras urang teu ngidinan Anjeun pikeun nempatkeun pesenan. Sahenteuna éta kumaha éta baheula.

Ieu anu ditingali ku pangguna dina aplikasi:

Kumaha Yandex.Taxi milarian mobil nalika teu aya

Milarian mobil tanpa mobil

Hiji poé urang datang nepi ka hipotesa a: sugan dina sababaraha kasus urutan masih bisa réngsé, sanajan euweuh mobil dina pin. Barina ogé, sababaraha waktos pas antara pin sareng pesenan, sareng milarian pesenan langkung lengkep sareng kadang-kadang diulang sababaraha kali: salami waktos ieu, supir anu sayogi tiasa muncul. Urang ogé terang sabalikna: lamun drivers kapanggih dina pin, éta lain kanyataan yén maranéhna bakal kapanggih nalika mesen. Kadang aranjeunna ngaleungit atanapi sadayana nampik pesenan.

Pikeun nguji hipotésis ieu, kami ngaluncurkeun ékspérimén: urang lirén mariksa kasadiaan mobil nalika milarian dina Pin pikeun grup uji pangguna, nyaéta, aranjeunna ngagaduhan kasempetan ngadamel "pesenan tanpa mobil." Hasilna rada teu kaduga: lamun mobil teu on pin, lajeng dina 29% kasus kapanggih engké - nalika néangan on ordo! Leuwih ti éta, pesenan tanpa mobil teu béda signifikan ti pesenan biasa dina watesan ongkos pembatalan, ratings, sarta indikator kualitas lianna. Bookings tanpa mobil accounted pikeun 5% tina sakabéh bookings, tapi ngan leuwih 1% tina sakabeh lalampahan suksés.

Pikeun ngartos ti mana asalna pelaksana pesenan ieu, hayu urang tingali statusna nalika milarian dina Pin:

Kumaha Yandex.Taxi milarian mobil nalika teu aya

  • Aya: éta sadia, tapi pikeun sababaraha alesan teu kaasup dina calon, contona, anjeunna jauh teuing;
  • Dina urutan: éta sibuk, tapi junun ngabebaskeun diri atawa sadia pikeun urutan ranté;
  • Sibuk: kamampuhan pikeun nampa pesenan ditumpurkeun, tapi supir balik deui ka jalur;
  • Henteu sayogi: supir teu online, tapi anjeunna mucunghul.

Hayu urang tambahkeun reliabilitas

Pesenan tambahan hébat, tapi 29% tina pamilarian anu suksés hartosna 71% tina waktos pangguna ngantosan lami sareng tungtungna teu kamana-mana. Sanaos ieu sanés hal anu goréng tina sudut pandang efisiensi sistem, éta leres-leres masihan pangguna harepan palsu sareng nyéépkeun waktos, saatos aranjeunna kesel sareng (jigana) lirén nganggo jasa éta. Pikeun ngajawab masalah ieu, urang diajar pikeun ngaduga kamungkinan yén mobil on urutan bakal kapanggih.

Skemana sapertos kieu:

  • Pamaké nempatkeun pin a.
  • Pilarian dilaksanakeun dina pin.
  • Upami teu aya mobil, kami ngaduga: panginten aranjeunna bakal muncul.
  • Sarta gumantung kana probabiliti, urang ngidinan atawa teu ngidinan Anjeun pikeun nempatkeun pesenan, tapi kami ngingetkeun yén dénsitas mobil di wewengkon ieu dina waktu ieu low.

Dina aplikasi éta kasampak kawas kieu:

Kumaha Yandex.Taxi milarian mobil nalika teu aya

Ngagunakeun modél ngidinan Anjeun pikeun nyieun pesenan anyar leuwih akurat tur teu nengtremkeun ati jalma sia. Nyaéta, pikeun ngatur babandingan reliabilitas sareng jumlah pesenan tanpa mesin nganggo modél precision-recall. Kaandalan jasa mangaruhan kahayang pikeun neraskeun ngagunakeun produk, nyaéta dina tungtungna éta sadayana turun kana jumlah perjalanan.

A saeutik ngeunaan precision-ngelinganSalah sahiji tugas dasar dina machine learning nyaéta tugas klasifikasi: assigning hiji obyék ka salah sahiji dua kelas. Dina hal ieu, hasil tina algoritma mesin learning mindeng jadi assessment numeris kaanggotaan di salah sahiji kelas, contona, hiji assessment probabiliti. Nanging, tindakan anu dilakukeun biasana binér: upami mobilna sayogi, maka kami bakal ngantep anjeun mesen, sareng upami henteu, maka kami henteu. Pikeun jadi husus, hayu urang nelepon hiji algoritma nu ngahasilkeun estimasi numerik model, sarta classifier aturan nu nangtukeun ka salah sahiji dua kelas (1 atawa -1). Pikeun nyieun classifier dumasar kana assessment model, Anjeun kudu milih hiji bangbarung assessment. Kumaha kahayang gumantung pisan kana tugas.

Anggap urang ngalakukeun tés (klasifikasi) pikeun sababaraha panyakit anu jarang sareng bahaya. Dumasar hasil tés, urang ngirim pasien pikeun pamariksaan anu langkung rinci, atanapi nyarios: "Alus, balik ka bumi." Pikeun kami, ngirim jalma gering ka bumi langkung parah tibatan mariksa jalma anu séhat. Nyaéta, urang hoyong tés tiasa dianggo pikeun saloba-lobana jalma anu gering. Nilai ieu disebut ngelingan =Kumaha Yandex.Taxi milarian mobil nalika teu aya. Hiji classifier idéal boga ngelingan 100%. Hiji kaayaan degenerate nyaeta ngirim dulur pikeun ujian, lajeng ngelingan ogé bakal 100%.

Éta ogé lumangsung sabalikna. Contona, urang nyieun sistem nguji pikeun siswa, sarta mibanda detektor curang. Upami ujug-ujug cek henteu tiasa dianggo pikeun sababaraha kasus selingkuh, maka ieu henteu pikaresepeun, tapi henteu kritis. Di sisi anu sanés, éta goréng pisan pikeun sacara teu adil nuduh murid tina hal anu henteu dilakukeun. Hartina, penting pikeun urang yén diantara jawaban positip tina classifier aya saloba mungkin bener, meureun mun detriment jumlah maranéhanana. Ieu ngandung harti yén anjeun kudu ngamaksimalkeun precision = Kumaha Yandex.Taxi milarian mobil nalika teu aya. Mun triggering lumangsung dina sakabéh objék, lajeng precision bakal sarua jeung frékuénsi sahiji kelas diartikeun dina sampel.

Upami algoritma ngahasilkeun nilai probabilitas numerik, teras ku milih ambang anu béda, anjeun tiasa ngahontal nilai precision-recall anu béda.

Dina masalah urang kaayaan ieu kieu. Ngelingan nyaéta jumlah pesenan anu urang tiasa nawiskeun, katepatan nyaéta réliabilitas pesenan ieu. Ieu naon kurva precision-recall model urang kasampak kawas:
Kumaha Yandex.Taxi milarian mobil nalika teu aya
Aya dua kasus ekstrim: ulah ngantep saha waé anu mesen sareng ngantepkeun sadayana mesen. Upami anjeun henteu ngijinkeun saha waé, émut bakal 0: kami henteu nyiptakeun pesenan, tapi teu aya anu bakal gagal. Upami urang ngijinkeun sadayana, teras ngelingan bakal 100% (urang bakal nampi sadaya pesenan anu mungkin), sareng precision bakal 29%, nyaéta 71% pesenan bakal goréng.

Kami nganggo sababaraha parameter tina titik awal salaku tanda:

  • Waktos/tempat.
  • Kaayaan sistem (jumlah mesin anu dijajah sadaya tarif sareng pin di sakurilingna).
  • Parameter pilarian (radius, jumlah calon, larangan).

Langkung seueur ngeunaan tanda

Conceptually, urang hoyong ngabedakeun antara dua kaayaan:

  • "Leuweung jero" - teu aya mobil di dieu ayeuna.
  • "Untung" - aya mobil, tapi dina pilarian teu aya nu cocok.

Salah sahiji conto "Unlucky" nyaéta upami aya seueur paménta di pusat dina malem Jumaah. Aya seueur pesenan, seueur jalma anu daék, sareng henteu cekap supir pikeun sadayana. Éta tiasa janten sapertos kieu: henteu aya supir anu cocog dina pin. Tapi sacara harfiah dina sababaraha detik aranjeunna némbongan, sabab dina waktu ieu aya loba drivers di tempat ieu sarta status maranéhanana terus ngarobah.

Ku alatan éta, rupa-rupa indikator sistem di sabudeureun titik A tétéla fitur alus:

  • Jumlah total mobil.
  • Jumlah mobil dina urutan.
  • Jumlah mobil teu sadia pikeun mesen dina status "Sibuk".
  • Jumlah pamaké.

Barina ogé, beuki loba mobil, beuki dipikaresep éta salah sahijina bakal sadia.
Nyatana, penting pikeun urang henteu ngan ukur mobil, tapi ogé perjalanan anu suksés. Ku alatan éta, ieu mungkin keur prediksi probabiliti lalampahan suksés. Tapi urang mutuskeun teu ngalakukeun ieu, sabab nilai ieu greatly gumantung kana pamaké sarta supir.

Algoritma latihan modél éta CatBoost. Data anu dicandak tina ékspérimén digunakeun pikeun latihan. Saatos palaksanaan, data latihan kedah dikumpulkeun, sakapeung ngamungkinkeun sajumlah leutik pangguna pikeun mesen ngalawan kaputusan modél.

hasil

Hasil percobaan éta saperti nu diharapkeun: ngagunakeun modél ngidinan Anjeun pikeun nyata ngaronjatkeun jumlah perjalanan suksés alatan pesenan tanpa mobil, tapi tanpa compromising reliabilitas.

Ayeuna, mékanisme parantos diluncurkeun di sadaya kota sareng nagara sareng kalayan bantosanana, sakitar 1% tina perjalanan anu suksés lumangsung. Leuwih ti éta, di sababaraha kota kalawan kapadetan low mobil, pangsa perjalanan misalna ngahontal 15%.

Tulisan sanés ngeunaan téknologi Taksi

sumber: www.habr.com

Tambahkeun komentar