Hur man rangordnar data snabbt
Av Idego Group

I varje skede av ett projekt är det användbart att dra nytta av metoder som hjälper till att förenkla och påskynda vårt arbete. Vissa av dessa metoder är inte uppenbara. I den här artikeln visar jag min tankeprocess för att lösa ett problem med rangordning och sortering av ett dataset genom att använda matematik till sin fördel.
Detta visade sig vara en ganska snabb lösning. Innan denna lösning implementerades tog rangordningen av ett dataset på 60 000 rader ungefär 1,5 timmar, men efter implementeringen reducerades det till bara 1,5 minuter.
Låt oss föreställa oss en tabell i en databas som heter Car och som innehåller information om specifika bilar och deras parametrar. Användare vill se rangordningen för en bil med poäng från 0 till 100. Parametrarna inkluderar bränsleförbrukning, motortyp och kördynamik.
Den faktiska lösningen på problemet är att flytta alla beräkningar till själva databasen. En fråga och det är klart. Roten till problemet är att generera ett tal i ett godtyckligt intervall baserat på specificerade parametrar. Arctangens-funktionen (atan) är idealisk eftersom den finns tillgänglig i praktiskt taget alla databasmotorer.
Denna funktion är begränsad uppåt, vilket innebär att oavsett X-värdet kommer Y-värdet aldrig att vara större än gränsen. Ekvationen innehåller flera parametrar: A är en divisor där ju större tal, desto långsammare stiger Y-värdena; T är den övre gränsen; B är den nedre gränsen; och X är summan av parametrarna.
För implementering används Django för att visa strukturen för en tabell, med frågan tillgänglig i Django ORM och även i rå SQL. ORM-frågan använder hjälpvariabler för att göra koden renare, och uppdateringsfrågan är okomplicerad och snabb.
Den allmänna gruppen av sådana funktioner kallas aktiveringsfunktioner och innehåller många specifika funktioner som ReLU och andra. Förbättringen i tid är ganska drastisk och går från 1,5 timmar till 1,5 minuter. Matematik och andra domäner har redan löst många problem som orsakar svårigheter dagligen i denna bransch – varför inte använda dem?