Passa ai contenuti principali

Post

Una storia semplice

C’è un momento preciso, nel lavoro di chi analizza i dati, in cui ci si sente un po’ come il professor Franzò di Sciascia: circondati da una complessità monumentale che, a guardarla bene, nasconde una spiegazione lineare, In questo mio esperimento su Orange Data Mining , l'obiettivo è stato tanto elementare quanto cruciale: dare in pasto a un algoritmo un dataset “sporco” — pieno di variabili fisiche ed ambientali come la temperatura della stanza, l'umidità e persino il codice del colore — per vedere se il sistema fosse in grado di isolare l'unica vera legge geometrica sottostante: l'area di un cilindro ( A = 2 π · r · h + 2 π · r² ). Il verdetto del widget Rank è stato spietato e bellissimo. Nel romanzo di Sciascia, ci cercano piste intricate, complotti e spiegazioni fumose per quello che è, fondamentalmente, un delitto evidente. Così si viene a creare molto “rumore” investigativo. Nel nostro dataset è successa la stessa cosa, ma al contrario. Gli algoritmi di cla...
Post recenti

VADER o DistilBERT?

In questo esperimento ho utilizzato Orange Data Mining per analizzare il sentimento di alcune recensioni di prodotto. Il problema di partenza era semplice: trasformare una recensione testuale in un giudizio automatico, per esempio positivo, negativo o neutro. Il primo approccio è stato quello con VADER, tramite il widget Sentiment Analysis di Orange. Il flusso era: File → Select Columns → Corpus → Sentiment Analysis → Data Table  VADER affronta il problema in modo lessicale: cerca parole positive e negative nel testo, assegna punteggi e produce un valore finale chiamato compound. Per esempio, parole come: excellent good recommend  spingono il risultato verso il positivo, mentre parole come: terrible defective disappointing  lo spingono verso il negativo. Questo metodo è semplice, veloce e abbastanza trasparente. Il suo limite è che non interpreta davvero il contesto complessivo della frase. Una recensione come: Decent, but the value for money could be better....

Prevedere il futuro con PyTorch

Nel mondo della Data Science si tende spesso a dividere i professionisti in due fazioni: chi scrive righe di codice puro dall'alba al tramonto e chi si affida alla velocità delle piattaforme visuali e No-Code (come Orange Data Mining, KNIME o RapidMiner). Ma cosa succede quando si devono analizzare dati complessi come le serie temporali?  Sbloccare il vero potenziale dei modelli predittivi sequenziali richiede un approccio ibrido. Alcuni widget di default per il Machine Learning nei software visuali faticano a gestire la dipendenza temporale dei dati e mancano di architetture nate per la dimensionalità sequenziale.  Se vuoi implementare reti ricorrenti profonde senza rinunciare alla comodità dell'interfaccia grafica, c'è una soluzione nuova. Quale? Il widget Python Script supportato da un Canvas strategico. Invece di abbandonare l'interfaccia visuale, ho costruito un workflow ibrido in cui lascio a Orange il lavoro noioso di manipolazione temporale e indicizz...

Un esperimento no-code

Orange Data Mining Random Forest batte la rete neurale con Orange Data Mining.  Ho realizzato un semplice esperimento di classificazione supervisionata con Orange Data Mining, utilizzando il classico dataset Iris.  L’obiettivo era riconoscere automaticamente la specie di un fiore a partire da quattro misure: lunghezza e larghezza del sepalo, lunghezza e larghezza del petalo. L’aspetto più interessante è che l’intero esperimento è stato costruito in modalità no-code: nessuna riga di Python, nessuno script, nessuna programmazione manuale.  Il flusso di lavoro è stato creato collegando graficamente i widget di Orange: caricamento dati, preprocessing, modello, valutazione e matrice di confusione. In questo modo anche un’attività tipica del machine learning — addestrare e confrontare modelli predittivi — diventa accessibile attraverso un ambiente visuale. Ho confrontato i seguenti due modelli: Random Forest, un algoritmo di machine learning basato su un insieme di alberi decis...

Un RAG su misura

I sistemi RAG ( Retrieval-Augmented Generation ) sono ormai uno standard: un modello linguistico non risponde più “a memoria”, ma recupera i frammenti di testo più pertinenti da una base documentale e li usa come contesto per generare la risposta.  Sulla carta il meccanismo è lineare: si dividono i documenti in chunk , si calcola la similarità vettoriale e si passa tutto al modello.  Nella pratica, costruirne uno da zero — anziché affidarsi a una libreria preconfezionata — è un esercizio che smonta parecchie certezze. La prima smentita riguarda il retrieval : si tende a pensare che sia solo una questione di vettori, distanze e similitudine del coseno. In realtà, il vero collo di bottiglia è quasi sempre a monte, nella segmentazione del testo.  Un chunk troppo corto perde il filo del discorso; uno troppo lungo diluisce la rilevanza metrica e introduce rumore. In un sistema fatto in casa l'impatto di queste scelte è immediato: se il recupero fallisce, quasi mai...

Un partner di peer-review

C'è un modo pigro di usare l'intelligenza artificiale: fare una domanda, leggere la risposta e fidarsi.  E c'è un modo emancipato: condurre un interrogatorio strutturato, in cui ogni prompt ha una funzione precisa e l'ultima parola spetta al tuo senso critico, non al modello. La differenza non è filosofica, è pratica. Un modello linguistico non è un database di fatti: è una mappa probabilistica di relazioni tra concetti .  Con una domanda generica, la risposta tende verso la media divulgativa — quella piena di analogie zoppe e semplificazioni che avete già letto e sentito mille volte.  Con un prompting strutturato, restringete lo spazio di campionamento verso i quadranti più densi e rigorosi di quella mappa. Ho messo alla prova per voi che mi seguite questo approccio su uno dei temi più maltrattati dalla divulgazione: l'entanglement quantistico. Ecco le sei mosse, in ordine, con il perché di ciascuna. Mossa 1 — Prima di costruire, bonifica il terreno Il primo prompt...

Il polo protagonista

Chi non ha visto nella sua vita almeno una volta l'insieme di Mandelbrot: quella figura nera contornata di filamenti psichedelici che è diventata l'icona non ufficiale del caos matematico. E pensare che basta una piccolissina modifica nella formula del frattale per ottenere un risultato visivo completamente diverso — con un comportamento geometrico quasi opposto. Il Mandelbrot classico nasce da una regola semplicissima: z(n+1) = z(n)² + c Si parte da z₀ = 0, si itera, e si guarda se la successione esplode o resta limitata. Punto per punto sul piano complesso, questo produce l'insieme che tutti conoscono. Nella versione che qui vi propongo, il quadrato è finito al denominatore: z(n+1) = 1/z(n)² + c Sembra un dettaglio, ma cambia la natura matematica dell'oggetto: non è più un polinomio ma una funzione razionale, con un polo in z = 0 (dove la formula esplode, essendo una divisione per zero). Per questo la successione non può più partire da z₀ = 0 come nel Mandelbrot origi...