Andrew Ngin tiimi teki kerran suuren virheen tutkimuspaperissa. Ja se tapahtui, koska dataa jaettiin satunnaisesti. Tässä tarkalleen mitä tapahtui (ratkaisun kanssa):
On yleistä luoda juna- ja validointijoukkoja satunnaisella jakamisella. Monissa tilanteissa se voi kuitenkin olla kohtalokasta mallinrakennukselle. Harkitse mallin rakentamista, joka tuottaa kuvatekstit kuville. Kielen luonteen vuoksi jokaisella kuvalla voi olla monia erilaisia kuvatekstejä. - Kuva-1 → Kuvateksti-1, Kuvateksti-2, Kuvakuva-3 jne. - Kuva-2 → Kuvateksti-1, Kuvateksti-2, Kuvateksti-3 jne. Katso tätä 👇
Jos käytämme satunnaista jakoa, sama datapiste (kuva) on käytettävissä harjoitus- ja validointisarjoissa. Tämän seurauksena päädymme arvioimaan mallia niissä esiintymissä, joihin se on koulutettu. Tämä on esimerkki tietovuodosta (kutsutaan myös ryhmävuodoksi), joka johtaa ylisovitukseen!
Sama tapahtui Andrew Ngin artikkelissa, jossa valmisteltiin lääketieteellinen aineisto keuhkokuumeen havaitsemiseksi. - Kuvien kokonaismäärä = 112k - Potilaita yhteensä = 30 000 Satunnaisen jakamisen vuoksi samojen potilaiden kuvat olivat saatavilla sekä koulutus- että validointisetissä. Tämä johti datavuotoon, ja validointipisteet näyttivät paljon paremmilta kuin niiden olisi pitänyt. Tämä on heidän ensimmäinen artikkelinsa👇
Ryhmäsekoitus ratkaisi tämän. On kaksi vaihetta: 1) Ryhmittele kaikki koulutusinstanssit, jotka vastaavat yhtä kuvaa. 2) Ryhmittelyn jälkeen KOKO RYHMÄ (kaikki yhden kuvan esimerkkejä) on satunnaisesti jaettava junaan tai validointijoukkoon. Tämä estää ryhmävuodon.
Jos käytät Sklearnia, GroupShuffleSplit toteuttaa tämän idean. Esimerkiksi tarkastellaan, että meillä on seuraava aineisto: - x1 ja x2 ovat ominaisuudet. - y on kohdemuuttuja. - ryhmä tarkoittaa ryhmittelykriteerejä. Katso tätä 👇
Ensiksi tuomme GroupShuffleSplitin sklearnista ja instanssimme objektin. Seuraavaksi tämän objektin split()-menetelmä mahdollistaa ryhmän jakamisen. Se palauttaa generaattorin, ja voimme purkaa sen saadaksemme seuraavan tuloksen: - Ryhmien "A" ja "C" tietopisteet ovat yhdessä harjoitusjoukossa. - Ryhmän "B" datapisteet ovat yhdessä validointi-/testijoukossa. Katso tätä 👇
Muutamaa päivää myöhemmin Andrew Ngin tiimi päivitti artikkelin käyttäen samaa ryhmäjakostrategiaa varmistaakseen, etteivät samat potilaat päätyneet sekä koulutus- että validointisetteihin. 👉 Vuorossa sinulle: Oletko kohdannut tämän ongelman aiemmin?
18,52K