-->

Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

Metodi di Campionamento


metodo Probabilistico

Campionamento Probabilistico

Tecniche e Codice Python
Il campionamento probabilistico è una tecnica statistica che permette di selezionare un sottoinsieme rappresentativo di una popolazione, garantendo che ogni elemento abbia una probabilità nota e diversa da zero di essere scelto.
Esistono diverse tecniche di campionamento, tra cui:
- Campionamento casuale semplice (Random Sampling)
- Campionamento sistematico (Systematic Sampling)
- Campionamento stratificato (Stratified Sampling)
- Campionamento a grappolo (Cluster Sampling)

Di seguito, spiegheremo ciascun metodo con un esempio pratico e il relativo codice Python, eseguibile su Google Colab.

Campionamento Casuale Semplice (Random Sampling)

Il campionamento casuale semplice seleziona casualmente gli elementi da un dataset, garantendo che ogni elemento abbia la stessa probabilità di essere scelto.
Esempio Python

import pandas as pd
import numpy as np

# Creiamo un dataset di esempio
df = pd.DataFrame({'ID': range(1, 101), 'Valore': np.random.randint(1, 100, 100)})

# Campionamento casuale di 10 elementi
sample_random = df.sample(n=10, random_state=42)
print(sample_random)

Campionamento Sistematico (Systematic Sampling)

Il campionamento sistematico seleziona elementi a intervalli regolari da un dataset ordinato.
Esempio Python

# Definiamo l'intervallo di selezione
k = 10  # Selezioniamo ogni 10° elemento

# Scegliamo un punto di partenza casuale
start = np.random.randint(0, k)

# Selezioniamo gli elementi sistematicamente
sample_systematic = df.iloc[start::k]
print(sample_systematic)

Campionamento Stratificato (Stratified Sampling)

Nel campionamento stratificato, il dataset viene suddiviso in gruppi omogenei (strati) e poi si estrae casualmente un numero proporzionale di elementi da ciascun gruppo.


from sklearn.model_selection import train_test_split

# Creiamo una colonna "Gruppo" casuale
df['Gruppo'] = np.random.choice(['A', 'B', 'C'], size=len(df))

# Campionamento stratificato
train, sample_stratified = train_test_split(df, test_size=0.1, stratify=df['Gruppo'], random_state=42)
print(sample_stratified)

Campionamento a Grappolo (Cluster Sampling)


Nel campionamento a grappolo, la popolazione viene suddivisa in gruppi (grappoli) e poi si selezionano casualmente alcuni gruppi interi per l'analisi.
Esempio Python


# Creiamo una colonna "Cluster" casuale
df['Cluster'] = np.random.choice(range(1, 6), size=len(df))

# Selezioniamo un cluster casuale
cluster_scelto = np.random.choice(df['Cluster'].unique())
sample_cluster = df[df['Cluster'] == cluster_scelto]
print(sample_cluster)

Conclusione

Il campionamento probabilistico è fondamentale per analisi statistiche accurate.
Scegliere la tecnica giusta dipende dal tipo di dati e dagli obiettivi della ricerca.
Tutti i codici presentati possono essere testati direttamente su Google Colab.