Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Alikokoistamistekniikat | Näytteistämistekniikat Suurille Tietoaineistoille
Suurten datamäärien käsittely Pythonilla

Alikokoistamistekniikat

Pyyhkäise näyttääksesi valikon

Kun käsitellään suuria ja epätasapainoisia aineistoja, törmätään usein tilanteisiin, joissa yksi luokka (enemmistöluokka) on huomattavasti suurempi kuin toinen (vähemmistöluokka). Tämä epätasapaino voi vaikeuttaa mallien kykyä oppia merkityksellisiä piirteitä vähemmistöluokasta, mikä johtaa heikkoon ennustustarkkuuteen. Alinäytteistys on tekniikka, jolla tätä ongelmaa pyritään ratkaisemaan vähentämällä enemmistöluokan havaintojen määrää, jotta aineistosta tulee tasapainoisempi.

Alinäytteistystä kannattaa harkita, kun aineisto on liian suuri käytännön käsittelyyn tai kun enemmistöluokka hallitsee niin voimakkaasti, että malli jättää vähemmistöluokan huomiotta. Alinäytteistys sopii parhaiten tilanteisiin, joissa aineisto on erittäin suuri ja enemmistöluokan havaintoja voidaan poistaa menettämättä olennaista tietoa. Se ei ole suositeltavaa, jos aineisto on jo valmiiksi pieni tai jos enemmistöluokassa on harvinaisia mutta tärkeitä esimerkkejä.

123456789101112131415161718192021222324
import pandas as pd # Create a sample imbalanced dataset data = { "feature": range(20), "class": ["majority"] * 16 + ["minority"] * 4 } df = pd.DataFrame(data) # Count the number of samples in each class class_counts = df["class"].value_counts() minority_count = class_counts["minority"] # Randomly sample from the majority class to match the minority class count majority_sample = df[df["class"] == "majority"].sample(n=minority_count, random_state=42) minority_sample = df[df["class"] == "minority"] # Combine samples to get a balanced dataset balanced_df = pd.concat([majority_sample, minority_sample]) print("Original class distribution:") print(df["class"].value_counts()) print("\nBalanced class distribution after undersampling:") print(balanced_df["class"].value_counts())
question mark

Mikä on alinäytteistyksen mahdollinen riski?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 2. Luku 5
some-alt