Következő képzések

Data Science Tréningek

Hogyan elemezzünk a chatGPT-vel? ÚJ

Tavaly rendezték Párizsban a nyári olimpiai játékokat, ahol 19 éremmel tértek vissza sportolóink, és jó magyar módra mentek a viták hogy ez sok vagy kevés?

Maga a vita szerintem teljes értelmetlen volt, hisz a 19 érem (köztük 6 arany) után nem hiszem hogy bármit magyarázkodni kellene egy 10milliós ország esetében. De értelmetlen volt olyan tekintetben is, hogy nehéz definiálni mi számít sikeres szereplésnek. Ebben a cikkben egy új aspektusból próbálom megfogni a siker fogalmát. Az ötlet onnan jött, hogy mi magyarok hajlamosak vagyunk „örök vesztesnek” tekinteni magunkra – így azt vizsgáltam meg, mennyire igaz ez az állítás.

ADATOK

DE először a száraz tények. Az elemzést 1996 és 2024 közötti olimpiák adatain végeztem. Ebben az időszakban 206 ország vett részt az olimpiákon, ebből 139 ország szerzett legalább 1 érmet és 104 ország legalább 1 aranyérmet.

Article content
Résztvevő, érmet és aranyat szerző országok száma

Hogy miért 8 olimpia adatait vettem be az elemzés? Nyolc olimpia hosszú időszakot foglal magában, ilyen hosszú időszak alatt kiegyenlítődnek egy-egy ország esetében a kiugróan jó vagy rossz szereplések.

A következő ábra az országok sorrendjét mutatja ezen időszak alatt szerzett érmek száma alapján:

Article content
Országok sorrendje megszerzett érmek alapján

A fenti táblázat szerint USA és Kína dominálta az olimpiákat, és valószínűleg még Oroszország is is közel lenne hozzájuk, de Oroszország több olimpián nem indulhatott különböző okok miatt.

És hol áll Magyarország ezen táblázaton? Nos tényleg nincs okunk panaszra, megszerzett érmek száma alapján a 16.-ik helyen vagyunk, ami nagyon előkelő helyezés az ország létszáma és gazdasági ereje alapján. Sőt ha figyelmesen megnézzük a táblázatot, az is látható hogy aranyérmek száma alapján még jobb helyezésünk lehetne (54 aranyérmünk volt, ami 12.-ik helyre lenne elég).

És akkor térjünk vissza a kiinduló ponthoz? Mi a siker? Siker önmagában az érmek vagy aranyérmek száma – de az is lehet egy sikerfaktor, hogy egy ország az esélyeket hogyan váltotta aranyérmekre. Épp ezért bevezettem egy mutatót („Gold_rate”), ahol az aranyak számát elosztottam az összes érem számával. Ha ez az érték 1, akkor ez azt jelenti hogy az adott ország összes éremesélyét aranyra váltotta, ha 0 az azt jelenti, hogy egyetlen esélyét sem váltotta éremre. Nyilván minél magasabb ezen mutató értéke, annál „ügyesebb” az adott ország.

Nézzük ezen mutató alapján hogyan áll Magyarország?

Article content
Országok sorrendje képzett mutató alapján (azon országok vannak a listán, melyek legalább 10 érmet szereztek a vizsgált 8 olimpián)

Már a Himnuszunk is azt próbálja sugallni, hogy egy vesztes nép vagyunk („Balsors akit régen tép”), ennek ellenére a fenti számok azt mutatják, hogy mi igazi „arany specialisták” vagyunk! Nálunk csak 4 ország váltotta be jobban aranyesélyeit (és ezek közül csak Kína szerzett több érmet nálunk).

És hogy mennyire nem triviális beváltani az éremesélyeket, elég ha a táblázat végére nézünk:

Article content
Országok sorrendje képzett mutató alapján (azon országok vannak a listán, melyek legalább 10 érmet szereztek a vizsgált 8 olimpián összesen)

A táblázat szerint vannak kimondottan „peches” országok, akik aranyesélyeiknek nagyon kis százalékát tudták beváltani. A két „legszerencsétlenebb” ország Malajzia és Kirgizisztán, akiknek normál esetben 3-4 aranyérmet kellett volna szerezniük, ezzel szemben egyetlen egy sem jött össze!

Az alábbi diagram összefoglalja a fenti elemzéseket:

Article content
Országok térkép megszerzett érmek száma és gold rate mutató alapján

 

A fenti diagram egy plot diagram, ahol a pontok egy-egy országot reprezentálnak. Az x-tengely azt mutatja, hogy hány érmet szerzett az adott ország („Total medal number (1996-2024)”), míg az y-tengely azt mutatja, hogy az érmeinek hány százalék volt aranyérem („Gold Rate”).

A színezésért egy kicsit dolgozni kellett. A két tengelyen lévő változó alapján elkészítettem egy K-means klaszterezést (hogy hogyan egy kicsit később), ahol K=4 lett az optimális szám, majd a klasztereket elneveztem. A világos kék klaszterbe olyan országok kerültek, melyek kevesebb mint 200 érmet szereztek, és azokból 20% alatti arányban lett aranyérem. A zöld országok, ahova Magyarország is tartozik, igazi aranyspecialistának számítanak, ezek az országok átlag feletti arányban váltották be esélyeiket aranyéremre. Van egy külön „Big fish” klaszter, ahova akkor került be egy ország, ha legalább 220 érmet szerzett (gold rate nem számít ezen országok körében).

A diagramban kiemeltem néhány országot, míg Magyarország esetében a konkrét értékeket is kiírtam.

MÓDSZERTAN

Na de miért készít valaki 2025 elején egy ilyen elemzést? Ennyire ráér? Azt most hagyjuk, mennyire érek rá vagy sem. Viszont lesznek tréningjeim, ahol a tréning részét képezi, hogyan tudunk a chatGPT segítségével Python kódokat, illetve ezen belül diagramokat készíteni. Ugyanis az a helyzet,

hogy az egész elemzést a chatGPT-vel készítettem, és igen, (szinte) egyáltalán nem kellett kódot írnom!

Az alábbi feladatokat a chatGPT készítette, én „csak” promptokat írtam:

 

  • Adatbázis előállítása: megkértem a chatGPT-t hogy válogassa le az utolsó 8 olimpia éremtáblázatát. Nos ezt nem tette meg, de írt egy Python kódot, amit csak le kellett futtatnom, és máris előállt az alapadatbázis. Érdekesség, hogy amikor megkértem futtassa le Ő a Python scriptet, nem volt hajlandó rá!
  • Diagram készítése:miután egy kicsit átdolgoztam az adatokat (ezt nem volt kedvem chatGPT-vel megcsinálni – de nyilván megtette volna), megkértem hogy rajzolja ki a fenti plot diagramot. Hogy őszinte legyek, nagyon szeretem a Pythont, de a diagram készítés mindig kifog rajtam. Szinte mindent meg lehet valóstani Matplotlib csomagban, de ehhez végtelen sok paraméterezési lehetőséget kell megtanulni. Nos ehelyett promptban leírtam pontosan milyen diagramot szeretnék – lépésről lépésre. Az első diagram nyilván nem így nézett ki, a nyers felirat nélküli verzióból jutottam el idáig. Ehhez persze kellett egy jó klaszterezés!
  • Klaszterek készítése: Tudtam hogy az x és y tengelyre melyik két változót teszem, és ez alapján készítettem egy klaszterezést. Ez egy régi „trükköm”, tudom hogy ha klaszterek alapján színezek, még olvashatóbb lesz a diagram. Azonban itt probléma volt, hogy a két változóban lévő értékek nagyságrendje eltérő volt. Ilyenkor hasznos az adatok standardizálása. Nos az általam leggyakrabban használt StandardScalar() függvénnyel átalakított adatok nem adtak ki igazán jó klasztereket. De hát a chatGPT ebben is tud segíteni, megkértem hogy különböző standardizálási eljárásokkal készítsen K-Means klasztereket ahol K = 4. És máris megkaptam az alábbi diagramot:

 

 

Article content
Kapott klaszterek profilja különböző standardizálás után

A fentiek alapján a MinMaxScaler() standardizálást választottam, és így készült el a végső diagram.

 

ÖSSZEFOGLALÁS

Napjainkban dúl az AI őrület, de a nagy zajban elsikkadt az az apróság, hogy valamire használni is kellene. Cikkemben az AI egy egyszerű alkalmazását szerettem volna bemutatni, azaz hogyan tud segítséget nyújtani diagramok készítésében.

Néhány dolog ami a fenti elemzés közben tanultam:

 

  • Mindig elkértem a forrás kódot, mert vannak olyan finom formázási lépések, amiket direkt programozással már jóval egyszerűbb megcsinálni, mint a chatGPT-vel.
  • MatplotLib csomaggal tud igazán jó diagramokat készíteni, próbálkoztam más csomagokkal (Seaborn, Bokeh), de azokra nem tudott használható kódokat adni (de lehet hogy én nem voltam elég világos).
  • Fel lehet tölteni Excel fájlt, hogy abból készítsen diagramot, de ilyenkor az ingyenes verzióban néhány utasítás után elfogy a napi kredit (én egy fizetős verziót használtam lányomnak köszönhetően). Sokszor elég ha leírod, hogy néz ki a tábla, ez alapján is jó kódot ír, viszont így nem fogy annyira gyorsan a napi „ingyenes” kredited.
  • Egyszerűbb kódokat felesleges chatGPT-vel íratni, sokszor a jó prompt írása tovább tart, mint 5-10 sor megírása Python-ban.
  • Adathalászatra is használható, ismeri a BeautifulSoup csomagot, de érdekes módon, ezeket a kódokat nem hajlandó lefuttatni, szemben a matplotlib kódokkal!

 

 

És a címben feltett kérdésre a válasz: igen, nagyon sikeres olimpiai szereplők vagyunk. Nemcsak sok érmet szerzünk, de ezeket átlag feletti mértékben „váltjuk be” aranyéremre.