En aquesta primera lliçó respondrem la pregunta fonamental del curs: què és exactament el Machine Learning (aprenentatge automàtic)? Veurem una definició formal i una altra d'intuïtiva, entendrem en què es diferencia de la programació tradicional i coneixerem els conceptes bàsics que farem servir durant tot el curs: model, entrenament, predicció i dades d'entrenament. A més, presentarem MercaFresh, un supermercat en línia fictici els problemes de negoci del qual ens acompanyaran com a fil conductor a totes les lliçons. Entendre bé aquests fonaments és important perquè tota la resta —estadística, preprocessament, algorismes, avaluació— es construeix al damunt.
Contingut
- Una definició intuïtiva
- La definició formal
- Programació tradicional vs. Machine Learning
- Conceptes clau: dades, model, entrenament i predicció
- MercaFresh: el cas que acompanyarà tot el curs
- Què és (i què no és) el Machine Learning
Una definició intuïtiva
Imagina que vols ensenyar un nen a distingir pomes de taronges. No li dones una llista de regles de l'estil "si el diàmetre és superior a 7 cm i la rugositat supera l'índex 0,3, llavors és una taronja". Simplement li ensenyes moltes pomes i moltes taronges, li dius quina és quina, i el seu cervell aprèn dels exemples. Al cap d'un temps, el nen reconeix una fruita que no ha vist mai abans.
El Machine Learning funciona amb la mateixa filosofia:
- En lloc d'escriure regles a mà, mostrem exemples a l'ordinador.
- L'ordinador detecta patrons en aquests exemples.
- Amb aquests patrons, és capaç de generalitzar: donar respostes correctes davant de casos nous que no ha vist mai.
Dit en una frase: el Machine Learning és la disciplina que permet als ordinadors aprendre de les dades sense ser programats explícitament per a cada cas concret.
La definició formal
La definició més citada és la de Tom Mitchell (1997):
"Es diu que un programa aprèn de l'experiència E respecte d'una tasca T i una mesura de rendiment P, si el seu rendiment en T, mesurat per P, millora amb l'experiència E."
Sembla abstracta, però s'entén de seguida amb un exemple aplicat al nostre supermercat en línia:
| Component | Significat | Exemple a MercaFresh |
|---|---|---|
| Tasca (T) | El que volem que faci el programa | Predir quantes unitats de llet es vendran demà |
| Experiència (E) | Les dades de les quals aprèn | Historial de vendes diàries dels darrers 3 anys |
| Rendiment (P) | Com mesurem si ho fa bé | Diferència mitjana entre la predicció i les vendes reals |
Si el programa, a mesura que veu més historial de vendes (E), prediu la demanda (T) amb menys error (P), llavors està aprenent. Així de concret és l'aprenentatge automàtic: no és màgia, és millora mesurable a partir de dades.
Programació tradicional vs. Machine Learning
Aquesta és la distinció més important de tota la lliçó. En la programació tradicional, el programador escriu les regles; en Machine Learning, les regles surten de les dades.
flowchart LR
subgraph Tradicional["Programació tradicional"]
A1[Dades] --> P1[Programa amb regles escrites a mà]
R1[Regles] --> P1
P1 --> S1[Respostes]
end
subgraph ML["Machine Learning"]
A2[Dades] --> P2[Algorisme d'aprenentatge]
S2[Respostes conegudes] --> P2
P2 --> R2[Model: regles apreses]
end
Fixa't en el canvi de flux: en l'enfocament tradicional hi entren dades i regles, i en surten respostes. En Machine Learning hi entren dades i respostes conegudes, i en surt un model (les regles apreses), que després farem servir per respondre casos nous.
Un exemple amb codi: detectar comandes sospitoses
Suposem que MercaFresh vol detectar comandes potencialment fraudulentes. Amb programació tradicional escriuríem regles a mà:
# Enfocament tradicional: regles escrites per una persona
def es_comanda_sospitosa(import_comanda, num_articles, client_nou):
"""Retorna True si la comanda sembla sospitosa, segons regles fixes."""
if import_comanda > 500 and client_nou:
return True # comanda molt gran d'un client acabat de registrar
if num_articles > 100:
return True # quantitat d'articles anormalment alta
return False
print(es_comanda_sospitosa(import_comanda=650, num_articles=12, client_nou=True))
# Sortida: TrueExpliquem el fragment pas a pas:
- Definim una funció que rep tres característiques de la comanda: l'import, el nombre d'articles i si el client és nou.
- Les condicions (
import_comanda > 500,num_articles > 100) són llindars decidits per una persona, basats en la seva intuïció. - El programa no millorarà mai per si sol: si els estafadors canvien de tàctica (per exemple, fan moltes comandes petites), caldrà reescriure les regles a mà.
Amb Machine Learning, en canvi, el plantejament és diferent. Aquest fragment és només il·lustratiu (aprendrem a fer-ho de debò als mòduls 4 i 6), però mostra la idea:
# Enfocament de Machine Learning: les regles s'aprenen d'exemples
from sklearn.tree import DecisionTreeClassifier
# Dades històriques: [import, num_articles, client_nou (1/0)]
comandes = [
[650, 12, 1],
[30, 5, 0],
[420, 80, 1],
[55, 10, 0],
]
# Etiquetes conegudes: 1 = va ser frau, 0 = va ser legítima
etiquetes = [1, 0, 1, 0]
model = DecisionTreeClassifier() # creem un model buit
model.fit(comandes, etiquetes) # ENTRENAMENT: aprèn dels exemples
# PREDICCIÓ sobre una comanda nova que el model no ha vist mai
print(model.predict([[580, 15, 1]]))
# Sortida: [1] -> el model la classifica com a sospitosaAnalitzem les diferències clau:
- No hem escrit cap
ifamb llindars: li hem donat exemples històrics (comandes) juntament amb les respostes correctes (etiquetes). - La crida
model.fit(...)és el moment de l'entrenament: l'algorisme examina els exemples i en dedueix les seves pròpies regles internes. - La crida
model.predict(...)fa servir aquestes regles apreses per respondre davant d'un cas nou. - Si el frau canvia de patró, no reescrivim codi: reentrenem el model amb dades més recents.
Quan surt a compte cada enfocament?
| Situació | Enfocament recomanable |
|---|---|
| Les regles són poques, clares i estables (p. ex., calcular l'IVA d'una comanda) | Programació tradicional |
| Les regles són massa nombroses o impossibles d'enumerar (p. ex., reconèixer una foto d'un tomàquet) | Machine Learning |
| L'entorn canvia constantment (frau, gustos dels clients) | Machine Learning |
| No hi ha dades històriques disponibles | Programació tradicional (de moment) |
Conceptes clau: dades, model, entrenament i predicció
Aquests quatre termes apareixeran a cada lliçó del curs. Convé fixar-los des d'ara:
- Dades d'entrenament: el conjunt d'exemples històrics del qual aprèn l'algorisme. En l'exemple anterior, la llista
comandesamb les sevesetiquetes. Cada fila és un exemple (o instància) i cada columna una característica (o feature): import, nombre d'articles, etc. - Model: el resultat de l'aprenentatge. És una representació matemàtica dels patrons trobats a les dades. Podem imaginar-lo com "les regles apreses", empaquetades en un objecte que sap respondre preguntes.
- Entrenament: el procés pel qual l'algorisme ajusta el model a les dades. A scikit-learn es correspon amb el mètode
fit(). - Predicció (o inferència): l'ús del model ja entrenat per donar una resposta davant de dades noves. A scikit-learn, el mètode
predict().
Una analogia útil: les dades d'entrenament són el temari, l'entrenament és l'estudi, el model és el coneixement adquirit i la predicció és l'examen amb preguntes noves.
flowchart LR
D[Dades d'entrenament] --> E[Entrenament]
E --> M[Model]
N[Dades noves] --> M
M --> P[Prediccions]
Un matís important que desenvoluparem al mòdul 6: el que és valuós d'un model no és que encerti amb les dades que ja va veure, sinó que generalitzi bé a dades noves. Un model que memoritza el passat però falla amb el present no serveix de res al negoci.
MercaFresh: el cas que acompanyarà tot el curs
MercaFresh és un supermercat en línia fictici que opera a diverses ciutats. Cada dia registra milers de comandes, i per tant acumula dades molt valuoses:
- Comandes: data, productes, quantitats, import, franja horària de lliurament.
- Clients: antiguitat, freqüència de compra, tiquet mitjà, ciutat, dispositiu utilitzat.
- Productes: categoria, preu, estoc, caducitat, promocions actives.
Amb aquestes dades, la direcció de MercaFresh es planteja preguntes de negoci que són, exactament, problemes de Machine Learning. Les anirem resolent al llarg del curs:
| Pregunta de negoci | Problema de ML | On el treballarem |
|---|---|---|
| Quants quilos de fruita necessitarem dissabte? | Predicció de demanda | Mòduls 4 i 6 |
| Quins clients estan a punt de deixar de comprar-nos? | Abandonament de clients (churn) | Mòduls 4, 6 i següents |
| Quins grups naturals de clients tenim? | Segmentació de clients | Mòdul 5 |
| Aquesta comanda és anòmala o fraudulenta? | Detecció d'anomalies | Mòduls 5 i 9 |
De moment no cal que entenguis com es resolen; n'hi ha prou que vegis que darrere de cada pregunta de negoci hi ha dades, i darrere de les dades, patrons que es poden aprendre.
Què és (i què no és) el Machine Learning
Per tancar la lliçó, delimitem bé el concepte:
- El ML és una branca de la Intel·ligència Artificial centrada a aprendre de dades. Tota solució de ML és IA, però no tota IA és ML (un sistema de regles expertes escrites a mà també és IA).
- El ML no és màgia: si les dades són dolentes, escasses o esbiaixades, el model serà dolent. Ho resumeix la dita "garbage in, garbage out" (si hi entra brossa, en surt brossa).
- El ML no és només estadística, tot i que s'hi recolza fortament (ho veurem al mòdul 2); posa l'èmfasi en la predicció automàtica i a gran escala.
- Un model no entén el negoci: troba correlacions a les dades. La interpretació i les decisions continuen sent humanes.
Errors Comuns i Consells
- Confondre el model amb l'algorisme. L'algorisme és la recepta d'aprenentatge (per exemple, "arbre de decisió"); el model és el resultat concret després d'entrenar amb les teves dades. Amb el mateix algorisme i dades diferents obtens models diferents.
- Pensar que més regles manuals ho resolen tot. Si et descobreixes escrivint el vintè
ifper cobrir un cas especial, probablement el problema demana un enfocament d'aprenentatge. - Creure que el ML no necessita intervenció humana. Algú ha de definir la tasca, triar les dades, mesurar el rendiment i decidir què fer amb les prediccions.
- Esperar certeses. Un model dona prediccions probables, no veritats. A MercaFresh, "aquest client té un 80 % de probabilitat d'abandonar" és una informació valuosíssima, però no una bola de vidre.
- Consell: quan llegeixis sobre ML, tradueix sempre els termes a la definició de Mitchell: quina és la tasca T?, quina és l'experiència E?, com es mesura P? Aquest hàbit et donarà claredat durant tot el curs.
Exercicis
Exercici 1
Identifica els components T, E i P (segons la definició de Mitchell) per a aquest cas de MercaFresh: "Volem que el sistema suggereixi automàticament productes a cada client a la pàgina d'inici, fent servir el seu historial de compres, i mesurar el percentatge de suggeriments en què el client fa clic".
Exercici 2
Classifica cadascun d'aquests problemes de MercaFresh com a més adequat per a programació tradicional o per a Machine Learning, i justifica-ho en una frase:
- Calcular les despeses d'enviament segons el pes de la comanda i el codi postal (tarifes fixes publicades).
- Estimar quants repartidors caldran el proper pont festiu.
- Validar que una adreça de correu electrònic introduïda al registre té un format correcte.
- Detectar ressenyes de productes escrites per bots.
Exercici 3
En l'exemple de codi de la lliçó, la llista comandes tenia 4 exemples amb 3 característiques cadascun. Respon: (a) què representa cada fila?, (b) què representa cada columna?, (c) quin paper hi juga la llista etiquetes?, (d) quina línia del codi fa l'entrenament i quina la predicció?
Solucions
Solució 1
- T (tasca): suggerir productes rellevants a cada client a la pàgina d'inici.
- E (experiència): l'historial de compres dels clients (i de clients similars).
- P (rendiment): el percentatge de clics sobre els suggeriments mostrats (CTR). Si en veure més historial els suggeriments reben més clics, el sistema està aprenent.
Solució 2
- Tradicional: les tarifes són regles fixes, conegudes i estables; no hi ha res a aprendre.
- Machine Learning: depèn de patrons històrics complexos (festius, clima, tendències); és un problema de predicció a partir de dades.
- Tradicional: el format d'un correu es valida amb una regla clara i estable.
- Machine Learning: no hi ha regles fixes que defineixin una ressenya de bot; els patrons canvien i s'han d'aprendre a partir d'exemples.
Solució 3
- (a) Cada fila és un exemple (una comanda històrica concreta).
- (b) Cada columna és una característica de la comanda: import, nombre d'articles i si el client era nou.
- (c)
etiquetesconté la resposta correcta coneguda de cada exemple (1 = frau, 0 = legítima); és el que permet a l'algorisme aprendre la relació entre característiques i resultat. - (d) L'entrenament el fa
model.fit(comandes, etiquetes); la predicció,model.predict([[580, 15, 1]]).
Conclusió
En aquesta lliçó hem definit el Machine Learning de manera intuïtiva (aprendre d'exemples per generalitzar) i formal (la definició T-E-P de Mitchell), i n'hem vist la diferència essencial amb la programació tradicional: les regles ja no s'escriuen a mà, sinó que emergeixen de les dades durant l'entrenament. També hem fixat el vocabulari bàsic —dades d'entrenament, model, entrenament, predicció— i hem conegut MercaFresh, el supermercat en línia els reptes del qual (demanda, churn, segmentació, anomalies) resoldrem al llarg del curs. A la propera lliçó farem un pas enrere per entendre d'on ve tot això: recorrerem la història i evolució del Machine Learning, des de Turing fins a l'era actual de la IA generativa.
Curs de Machine Learning
Mòdul 1: Introducció al Machine Learning
- Què és el Machine Learning?
- Història i evolució del Machine Learning
- Tipus de Machine Learning
- Aplicacions del Machine Learning
- El flux de treball d'un projecte de Machine Learning
Mòdul 2: Fonaments d'Estadística i Probabilitat
- Conceptes bàsics d'estadística
- Distribucions de probabilitat
- Correlació i covariància
- Inferència estadística
- Teorema de Bayes
Mòdul 3: Preprocessament de Dades
- Neteja de dades
- Gestió de dades mancants
- Transformació de dades
- Codificació de variables categòriques
- Normalització i estandardització
- Enginyeria de característiques
Mòdul 4: Algorismes de Machine Learning Supervisat
- Regressió lineal
- Regressió logística
- Arbres de decisió
- Màquines de suport vectorial (SVM)
- K veïns més propers (K-NN)
- Naive Bayes
- Xarxes neuronals
Mòdul 5: Algorismes de Machine Learning No Supervisat
- Clustering: K-means
- Clustering jeràrquic
- Anàlisi de components principals (PCA)
- Anàlisi d'agrupament DBSCAN
- Visualització de dades amb t-SNE i UMAP
Mòdul 6: Avaluació i Validació de Models
- Divisió de dades: entrenament, validació i prova
- Mètriques d'avaluació
- Validació creuada
- Corba ROC i AUC
- Overfitting i underfitting
Mòdul 7: Tècniques Avançades i Optimització
- Regularització: Ridge, Lasso i Elastic Net
- Ensemble Learning
- Gradient Boosting
- Xarxes neuronals profundes (Deep Learning)
- Optimització d'hiperparàmetres
Mòdul 8: Implementació i Desplegament de Models
- Frameworks i biblioteques populars
- Implementació de models en producció
- Manteniment i monitoratge de models
- Consideracions ètiques i de privadesa
Mòdul 9: Projectes Pràctics
- Projecte 1: Predicció de preus d'habitatges
- Projecte 2: Classificació d'imatges
- Projecte 3: Anàlisi de sentiments a les xarxes socials
- Projecte 4: Detecció de fraus
- Projecte 5: Segmentació de clients
