- Els arbres de decisió modelen les decisions com a preguntes encadenades, amb l'entropia i el guany d'informació que guien com es trien les divisions tant per a la classificació com per a la regressió.
- La regressió d'arbre de decisió potenciada, tal com s'implementa amb LightGBM a Azure Machine Learning, crea conjunts de petits arbres que corregeixen iterativament els errors residuals.
- El sobreajustament en arbres es controla mitjançant la poda i paràmetres com la profunditat, la mida de les fulles i la taxa d'aprenentatge, mentre que conjunts com ara boscos aleatoris i el boosting milloren la robustesa.
- Els dissenyadors poden crear prototips d'arbres de decisió interactius en JavaScript estàndard estructurant els nodes com a objectes, gestionant la navegació (incloses les accions inverses) i connectant-se posteriorment a models apresos.
Si ets un dissenyador que ja juga una mica amb HTML, CSS i JavaScript bàsic, construir un arbre de decisió o un model de regressió pot semblar màgia negra al principi. Potser teniu un flux de decisions clar sobre el paper, potser fins i tot un bon prototip de Figma, però quan arriba el moment de convertir aquesta lògica en un component web interactiu o un petit model predictiu, de sobte res sembla tan simple com el diagrama que heu dibuixat.
La bona notícia és que els arbres de decisió són un dels models d'aprenentatge automàtic més intuïtius que podeu implementar i visualitzar en JavaScript, fins i tot amb una experiència limitada en codificació. A més a més, els potents arbres de regressió potenciats que s'utilitzen en eines com Azure Machine Learning o LightGBM segueixen la mateixa idea conceptual: una seqüència de preguntes que milloren gradualment una predicció numèrica. En aquesta guia connectarem els punts entre l'arbre de decisió visual que voleu prototipar, els conceptes subjacents d'aprenentatge automàtic (entropia, guany d'informació, poda, potenciació) i el JavaScript pràctic que podeu escriure avui dia.
Entendre els arbres de decisió abans de tocar JavaScript
A un nivell molt alt, un arbre de decisió és simplement una manera estructurada de fer preguntes, on cada resposta t'envia a una branca diferent fins que arribes a una decisió final. Imagineu-vos entrar a un restaurant: teniu gana? Si és així, voleu alguna cosa lleugera o pesada? Si és lleugera, hi ha amanides a la carta? Si és així, acabeu demanant una amanida. Aquest diagrama de flux mental és literalment un arbre de decisió: cada pregunta és un node, cada resposta és una branca i l'opció final (amanida, hamburguesa, res) és una fulla.
En l'aprenentatge automàtic, codifiquem aquesta mateixa idea mitjançant dades: cada fila d'un conjunt de dades és un exemple, cada columna és un atribut i l'objectiu és allò que volem predir. Un algoritme d'aprenentatge d'arbre descobreix automàticament quines preguntes (divisions per atributs) ajuden més a separar les dades en grups homogenis. Per a la classificació, les fulles emmagatzemen una etiqueta de classe; per a la regressió, les fulles emmagatzemen un valor numèric (per exemple, preu, puntuació o probabilitat).
El que fa que els arbres siguin tan atractius, especialment per a dissenyadors i principiants, és que són naturalment interpretables. Literalment, podeu llegir l'arbre de dalt a baix com una sèrie de regles: "Si l'entorn és baix i no hi ha vent, prediu el joc = sí amb certesa". Aquesta transparència és una cosa que no s'obté de molts altres models com les xarxes neuronals profundes.
Per construir un bon arbre, l'algoritme necessita una manera de decidir quina pregunta fer primer, segon, etc., i aquí és on entren en joc algunes matemàtiques lleugeres. No et preocupis: no cal que derivis fórmules manualment al codi JavaScript, però entendre les idees que hi ha darrere de l'entropia i el guany d'informació t'ajudarà a raonar sobre com es construeix el teu arbre i per què algunes branques apareixen com ho fan.
Entropia i guany d'informació: com els arbres trien la pregunta correcta
L'entropia és una mesura d'incertesa o desordre en un conjunt de dades, i és fonamental per a la manera com els algoritmes clàssics d'arbre de decisió com ID3 o C4.5 decideixen les seves divisions. Si tots els exemples d'un subconjunt pertanyen a la mateixa classe, tenim entropia zero: el node és perfectament pur, no hi ha incertesa. Si les classes estan barrejades uniformement (per exemple, 50% sí, 50% no), l'entropia és màxima, cosa que significa que no estem segurs de quina és l'etiqueta per a un element aleatori.
Formalment, si tenim diverses classes i pi és la fracció d'exemples de la classe i, l'entropia H(S) d'un conjunt S és: H(S) = – ∑ pi * registre2(pi). Quan una classe domina, la seva pi s'acosta a 1, el terme logarítmic es fa petit i l'entropia disminueix. Quan les classes estan equilibrades, més termes contribueixen significativament i l'entropia puja cap a 1 per a un cas binari.
El guany d'informació mesura quant disminueix l'entropia si dividim el conjunt de dades utilitzant un atribut concret, i així és com l'arbre tria la millor pregunta a cada node. Per a un atribut A que pot prendre diferents valors v, considerem els subconjunts Sv que només contenen exemples on A = v. El guany d'informació IG(S, A) és H(S) menys la suma ponderada de les entropies de cada subconjunt. L'atribut amb el guany d'informació més alt us ofereix la separació més neta i es tria com a divisió.
És per això que, en molts exemples basats en el clima, sovint veieu atributs com ara "Medi ambient" o "Perspectives" a l'arrel de l'arbre. En un cas concret, la variable d'entorn podria tenir el guany d'informació més gran (per exemple, al voltant de 0.246), cosa que significa que separa millor les decisions de "reproduir" i "no reproduir". Aleshores, depenent de l'entorn, l'algoritme podria examinar el vent, la humitat o la temperatura per refinar la divisió.
Quan inspeccioneu un arbre entrenat, podeu veure camins com ara: si l'entorn és ≤ 1.5, comproveu el vent; si no hi ha vent, prediu que el joc és sí amb una entropia de 0.0 en cinc mostres. Si hi ha vent, potser el node té una entropia d'1.0 amb dues mostres positives i dues negatives, de manera que la incertesa és més alta i es poden produir més divisions. En altres branques, quan l'entorn és > 1.5, l'arbre pot tenir en compte la humitat, i només si la humitat no és baixa inspeccionarà la temperatura per desambiguar situacions complicades.
D'un arbre de decisió simple a arbres de regressió
Fins ara hem parlat principalment de classificació, però podeu utilitzar exactament la mateixa estructura d'arbre per a la regressió, on la sortida és un valor numèric en lloc d'una etiqueta discreta. En lloc d'emmagatzemar "reprodueix" o "no reprodueix" a cada fulla, els arbres de regressió emmagatzemen un nombre, sovint el valor objectiu mitjà dels exemples d'entrenament que cauen en aquesta fulla.
En els arbres de regressió, el criteri de divisió ja no es basa en l'entropia sinó en mesures com la reducció de la variància o la minimització de l'error quadràtic. Cada divisió intenta crear nodes fills on els valors de l'objectiu siguin el més similars possible, de manera que la predicció per a cada fulla sigui més precisa. En altres paraules, l'algoritme pregunta: "Si divido les dades d'aquest atribut, quant puc reduir la variabilitat de l'objectiu dins de cada subconjunt?"
Aquests arbres de regressió són els components bàsics de molts mètodes avançats, inclosos els marcs de treball d'augment de gradients com ara LightGBM, que s'utilitzen àmpliament en plataformes com Azure Machine Learning. En aquests sistemes, normalment no es construeix un únic arbre monolític, sinó un conjunt d'arbres, cadascun dels quals intenta corregir els errors dels anteriors.
Com a desenvolupador o dissenyador de JavaScript, podeu pensar en cada arbre de regressió com una versió lleugerament més intel·ligent del vostre diagrama de flux dibuixat a mà, on les "respostes" a les fulles són números (com ara preus, puntuacions o probabilitats) en lloc d'etiquetes de text. Encara podeu visualitzar la lògica com un arbre, però el poder prové de com es combinen i s'afinan aquests arbres.
Regressió d'arbre de decisió potenciada: com els conjunts milloren la precisió
El boosting és un mètode clàssic d'ensemble que construeix molts models febles (com ara petits arbres de regressió) i els combina per formar un predictor fort amb una precisió molt més alta. En lloc d'entrenar tots els arbres de forma independent, com en el bagging o els boscos aleatoris, el boosting afegeix arbres un darrere l'altre, on cada arbre nou se centra en els errors residuals deixats pels arbres anteriors.
En la regressió d'arbre de decisió potenciat, que és el que implementa Azure Machine Learning mitjançant algoritmes com LightGBM, cada arbre nou corregeix els errors del conjunt actual aprenent dels residuals. Comences amb un model simple, potser només una predicció constant; després calcules la diferència entre aquesta predicció i els valors reals (els residuals). El següent arbre s'entrena per predir aquests residuals i l'afegeixes al model amb una certa taxa d'aprenentatge. Gradualment, a mesura que repeteixes aquest procés, la predicció general millora cada cop més.
Aquest procés es coneix com a augment de gradient, i MART (arbres de regressió additiva múltiple) és una implementació ben coneguda que Azure Machine Learning utilitza per als arbres augmentats. A cada pas, l'algoritme utilitza una funció de pèrdua diferenciable (per exemple, l'error quadràtic) per calcular el gradient de l'error i decidir com ajustar el següent arbre. A la pràctica, s'acaba amb un conjunt de molts arbres petits, cadascun dels quals contribueix una mica al resultat numèric final.
Tot i que el boost sol millorar la precisió de la predicció, pot reduir la cobertura o la generalització si no es té cura amb els hiperparàmetres com ara el nombre d'arbres, la profunditat màxima o la taxa d'aprenentatge., una situació relacionada amb sobreajustament vs infraajustament. Comences amb un model simple, potser només una predicció constant; després calcules la diferència entre aquesta predicció i els valors reals (els residuals). El següent arbre s'entrena per predir aquests residuals i l'afegeixes al model amb una certa taxa d'aprenentatge. Gradualment, a mesura que repeteixes aquest procés, la predicció general millora cada cop més.
Aquest procés es coneix com a augment de gradient, i MART (arbres de regressió additiva múltiple) és una implementació ben coneguda que Azure Machine Learning utilitza per als arbres augmentats. A cada pas, l'algoritme utilitza una funció de pèrdua diferenciable (per exemple, l'error quadràtic) per calcular el gradient de l'error i decidir com ajustar el següent arbre. A la pràctica, s'acaba amb un conjunt de molts arbres petits, cadascun dels quals contribueix una mica al resultat numèric final.
Tot i que el boost sol millorar la precisió de la predicció, pot reduir la cobertura o la generalització si no es té cura amb els hiperparàmetres com ara el nombre d'arbres, la profunditat màxima o la taxa d'aprenentatge. Massa arbres o arbres molt grans poden sobreajustar les dades d'entrenament, mentre que una taxa d'aprenentatge excessivament petita amb massa pocs arbres pot subajustar-se i no capturar patrons importants.
És important recordar que la regressió d'arbre de decisió potenciat és un mètode d'aprenentatge supervisat, la qual cosa significa que heu de proporcionar un conjunt de dades etiquetat amb una columna de destinació numèrica. Les etiquetes (objectius) han de ser numèriques, perquè l'algoritme optimitza les funcions de pèrdua contínua; si teniu categories, les convertiu en nombres o feu servir una variant de classificació d'arbres potenciats.
Opcions de configuració clau als arbres potenciats d'Azure Machine Learning
Quan feu servir el component de regressió d'arbre de decisió potenciat al dissenyador d'Azure Machine Learning, essencialment esteu configurant com es construirà i entrenarà el vostre conjunt d'arbres. Aquest component inclou una implementació eficient basada en LightGBM, però exposa els botons més importants en una interfície d'usuari amigable per tal que pugueu experimentar fins i tot si no escriviu codi directament en aquest entorn.
La primera opció que teniu és el mode de creació de l'entrenador, que determina si definiu una única configuració o exploreu una gamma d'hiperparàmetres. En el mode "Paràmetre únic", trieu manualment valors per a coses com la taxa d'aprenentatge, el nombre de fulles i el nombre d'arbres: això és útil si ja teniu una bona idea del que voleu. En el mode "Interval de paràmetres", especifiqueu intervals per a cada paràmetre i, a continuació, un component separat, com ara "Ajusta els hiperparàmetres del model", prova automàticament totes les combinacions per trobar les que ofereixen el millor rendiment.
Un altre ajust crucial és el nombre màxim de fulles per arbre, que controla eficaçment la complexitat de cada arbre individual del conjunt. Més fulles signifiquen més nodes terminals i regles més detallades. Això pot augmentar la precisió de les dades d'entrenament, però també augmenta el risc de sobreajustament i el temps d'entrenament. Menys fulles mantenen cada arbre més simple i poden impulsar la generalització, tot i que a costa de la possibilitat de perdre patrons subtils.
També heu de decidir el nombre mínim de mostres necessàries a cada node fulla, cosa que estableix un llindar de granularitat de les regles. Amb el valor per defecte d'1, fins i tot un sol exemple d'entrenament pot formar una nova fulla, cosa que pot fer que el model memoritzi soroll. Augmentar aquest mínim a, per exemple, 5 obliga a cada regla a cobrir almenys cinc exemples amb les mateixes condicions, suavitzant el model i sovint millorant la seva capacitat de generalitzar.
La taxa d'aprenentatge és un valor entre 0 i 1 que especifica el pas que fa cada nou arbre en corregir errors del conjunt anterior. Una taxa d'aprenentatge elevada fa que el model aprengui ràpidament, però corre el risc de sobrepassar la solució òptima; una taxa molt petita fa que l'entrenament sigui més estable, però pot requerir molts més arbres i un temps d'entrenament més llarg. Trobar un bon equilibri és clau per a un model fort.
El nombre d'arbres construïts controla quantes vegades es repeteix el pas de reforç, és a dir, quants aprenents febles es combinen en el model final. Un nombre més alt generalment dóna una millor cobertura, però també augmenta les possibilitats de sobreajustament i augmenta el cost computacional. Establir-ho a 1 essencialment desactiva el boost i et deixa amb un únic arbre de regressió, que pot ser més senzill d'interpretar però normalment menys precís.
L'Azure Machine Learning també permet definir una llavor aleatòria per a la inicialització, cosa que és útil per obtenir resultats reproduïbles en execucions amb les mateixes dades i paràmetres. Si el deixeu al valor per defecte 0, la plataforma deriva la llavor del rellotge del sistema, de manera que cada execució d'entrenament pot produir arbres lleugerament diferents. Amb una llavor fixa, podeu depurar i comparar models més fàcilment.
Un cop hàgiu configurat el component, l'entrenament del model només requereix connectar-lo a un conjunt de dades etiquetat i utilitzar el component "Entrenament de models" o el component d'afinació d'hiperparàmetres, segons el mode escollit. Després de l'entrenament, podeu connectar el model resultant a un component de "Model de puntuació" per fer prediccions sobre noves entrades i podeu registrar el model entrenat a l'arbre de components per reutilitzar-lo en altres pipelines sense haver de tornar a entrenar-lo.
Sobreajustament, poda i per què els arbres poden arribar a ser massa intel·ligents
Un dels grans riscos a l'hora de treballar amb arbres de decisió, ja sigui en forma simple o com a part de conjunts forestals potenciats o aleatoris, és el sobreajustament i la comprensió de la compromís biaix-variància ajuda a explicar per què el model pot créixer tan complex que memoritza les dades d'entrenament en lloc d'aprendre regles generals. En teoria, un arbre pot anar dividint-se fins que cada fulla correspongui a una única mostra d'entrenament, aconseguint una precisió perfecta en dades conegudes però amb un rendiment deficient en exemples no vistos.
La poda és el remei estàndard per al sobreajustament en arbres de decisió, i essencialment significa tallar branques o limitar el creixement dels arbres perquè el model es mantingui raonablement simple. Moltes biblioteques i marcs de treball proporcionen paràmetres com la profunditat màxima, les mostres mínimes per fulla o les mostres mínimes per divisió que controlen com i quan es creen les noves branques. L'augment d'aquests llindars obliga l'arbre a ser més conservador en el seu comportament de divisió.
A scikit-learn de Python, per exemple, sovint veieu paràmetres com ara max_depth, min_samples_leaf i min_samples_split que s'utilitzen per regularitzar arbres. Un valor de max_depth més petit limita el nombre de nivells de preguntes que pot fer l'arbre. Un valor de min_samples_leaf més alt garanteix que cada fulla representi un grup d'exemples prou gran per ser estadísticament significatiu. Un valor de min_samples_split més alt impedeix que el model creï noves branques a partir de nodes amb molt poques mostres.
Tot i que no utilitzeu scikit-learn directament en JavaScript, les mateixes idees s'apliquen si implementeu la vostra pròpia lògica d'arbre o si dissenyeu manualment l'estructura de decisió. Sempre us heu de preguntar si una nova branca realment representa un patró estable o només soroll a les dades. En els arbres de decisió orientats a l'usuari, les branques extremadament profundes o molt específiques també poden confondre els usuaris i fer que la interfície sigui més difícil d'entendre.
Els models potenciats i d'ensemble mitiguen alguns problemes de sobreajustament combinant molts aprenents febles, però encara poden sobreajustar-se si els hiperparàmetres són massa agressius. Controlar el nombre d'arbres, la seva profunditat, la taxa d'aprenentatge i els termes de regularització és fonamental en entorns de producció com l'Azure Machine Learning. Per al disseny d'experiències interactives, com més simple sigui, sol ser millor, tant des del punt de vista de l'experiència d'usuari com des del punt de vista de la robustesa.
D'un únic arbre de decisió a boscos aleatoris
Si un únic arbre de decisió és potent però fràgil, un bosc aleatori és com un comitè d'arbres que voten conjuntament per arribar a una predicció més estable. La idea és simple: s'entrenen molts arbres de decisió, cadascun dels quals veu un subconjunt lleugerament diferent de les dades i els atributs, i després s'agreguen els seus resultats. Per a la classificació, voten la classe més comuna; per a la regressió, es fa la mitjana de les seves prediccions numèriques.
Els boscos aleatoris introdueixen l'aleatorietat de dues maneres principals: mostrejant exemples d'entrenament amb reemplaçament (mostreig bootstrap) i seleccionant un subconjunt aleatori d'atributs per a cada divisió. Aquesta aleatorietat fa que cada arbre sigui una mica diferent, de manera que no tots copien els mateixos errors. Quan es combinen, els errors dels arbres individuals tendeixen a cancel·lar-se, donant lloc a un model més robust.
Des d'una perspectiva de sobreajustament, els boscos aleatoris sovint generalitzen millor que un únic arbre profund perquè cada arbre està limitat en el que veu i com es divideix, i la predicció final és una mitjana en moltes perspectives. En altres paraules, la variància del model es redueix i s'obté un comportament més estable entre diferents conjunts de dades.
Per a algú que prové d'un àmbit del disseny, es pot imaginar un bosc aleatori com un conjunt de mapes de decisió lleugerament diferents creats per diferents dissenyadors, cadascun utilitzant criteris lleugerament diferents, i després un agregador que els examina tots i tria la resposta consensuada. Cap mapa ha de ser perfecte; la saviesa sorgeix del grup.
Tot i que aquest article se centra en els arbres de decisió i la regressió impulsada en termes generals, la intuïció que hi ha darrere dels boscos aleatoris és molt útil quan més endavant exploreu biblioteques de JavaScript o Python més avançades que exposen API de boscos i conjunts. El component bàsic és sempre el mateix: l'arbre de decisió que ara entens.
Arbres de decisió d'aprenentatge: habilitats, distintius i formació estructurada
Diversos itineraris d'aprenentatge i cursos sobre aprenentatge automàtic estructuren el seu contingut explícitament al voltant d'arbres de decisió, sovint atorgant insígnies o certificats quan es completen totes les activitats. Aquests programes solen començar amb una introducció als arbres de decisió i després passen per temes com ara com trobar la millor divisió utilitzant l'entropia, l'índex de Gini o el guany d'informació, com i per què podar els arbres i com es comparen els arbres amb els models lineals.
Al llarg del camí, podeu tractar els arbres de decisió per a la classificació, els arbres de decisió per a la regressió i els compromisos entre la simplicitat del model i la capacitat predictiva. Per a molts aprenents, els arbres són l'algoritme de porta d'entrada a l'aprenentatge automàtic perquè coincideixen amb la manera com la gent pensa naturalment en branques i regles. Visualitzar un arbre entrenat fa evident per què el model va fer una determinada elecció, la qual cosa és una manera excel·lent de desenvolupar la intuïció.
Els cursos de nivell intermedi solen barrejar explicacions conceptuals amb exercicis pràctics de codificació en llenguatges com Python, utilitzant biblioteques com scikit-learn. Podeu implementar un arbre en un petit conjunt de dades meteorològiques, calcular l'entropia i el guany d'informació manualment i, a continuació, deixar que la biblioteca s'encarregui de la feina pesada i visualitzi l'estructura final. Aquestes activitats us ajuden a connectar les matemàtiques amb el comportament real del model.
Fins i tot si el vostre objectiu és implementar finalment la lògica de decisió o els arbres de regressió en JavaScript, fer alguns exercicis en Python pot ser molt aclaridor, perquè la majoria dels recursos d'aprenentatge i les explicacions estan actualment escrites en aquest ecosistema. Un cop t'hi acostumis, portar les idees principals a Vanilla JS (o cridar un servei de backend des del front-end) esdevé molt més fàcil de gestionar.
Completar un curs d'aquest tipus normalment significa que et sents còmode amb l'entropia, l'obtenció d'informació, les estratègies de poda, els arbres de classificació versus regressió i la comprensió de quan els arbres superen els models lineals simples i quan poden no ser la millor opció. Aquestes habilitats fonamentals són exactament el que necessiteu abans de començar a construir conjunts més elaborats com ara arbres potenciats, boscos aleatoris o arbres de decisió potenciats per gradient en entorns de producció.
Construint un arbre de decisions clicable en JavaScript de vanilla
Tornem al vostre problema concret: teniu un arbre de decisió dibuixat i voleu un prototip clicable en JavaScript pla, sense frameworks, idealment alguna cosa com un CodePen que pugueu modificar. Molta gent troba demostracions, com alguns bolígrafs antics que visualitzen arbres i proporcionen funcions d'experiència d'usuari com ara "Mostra els pares" o "Enrere", i es confonen quan en eliminar línies de codi de sobte es fa desaparèixer tot l'arbre.
El motiu principal pel qual un arbre desapareix quan s'eliminen parts aparentment no relacionades és que aquestes parts sovint són les responsables d'inicialitzar, renderitzar o actualitzar la visualització. Per exemple, podeu suprimir el codi que configura els detectors d'esdeveniments o que crida la funció de renderització, suposant que només serveix per a opcions d'IU addicionals, però de fet aquesta funció també crea l'arbre inicial en carregar-se. Quan l'elimineu, ja no es dibuixa el gràfic a la pantalla.
Si només necessiteu un simple botó "Enrere" per moure-us pels nodes, en realitat no necessiteu una biblioteca complexa; només necessiteu una manera neta de representar el vostre arbre en JavaScript i una petita quantitat de manipulació del DOM. Un patró comú és emmagatzemar l'arbre com un objecte imbricat on cada node té una pregunta o títol, una llista de fills i, opcionalment, una referència principal. A continuació, es fa un seguiment del node actual en una variable i es tornen a renderitzar la pregunta i les respostes cada vegada que l'usuari fa clic.
Per implementar "Enrere", podeu emmagatzemar la ruta que l'usuari ha seguit en una matriu (una pila) i mostrar el node anterior quan es fa clic al botó. Alternativament, cada node pot fer referència directament al seu pare, de manera que tornar enrere és tan fàcil com establir currentNode = currentNode.parent i tornar a renderitzar. Aquest enfocament utilitza estructures de dades simples però us ofereix exactament el comportament UX que voleu.
Si esteu modificant un CodePen existent, presteu atenció a qualsevol codi d'inicialització que s'executi quan es carrega la pàgina i a qualsevol controlador d'esdeveniments adjunt a botons o enllaços. Abans de suprimir una funció, cerqueu on s'utilitza: si és l'únic lloc que crida la rutina de dibuix de l'arbre, haureu de conservar-la o substituir-la per una alternativa. També podeu refactoritzar el codi extraient la lògica de renderització pura en una funció separada i cridant-la tant en carregar la pàgina com en esdeveniments de navegació, alhora que elimineu funcions no relacionades com ara "mostrar els pares" de manera segura.
Com que has esmentat que vols alguna cosa minimalista en vanilla JS, considera començar amb un prototip molt petit que només representi nodes de text i botons per a les opcions. Un cop la navegació principal funcioni perfectament i "Enrere" es comporti com s'espera, podeu millorar-la pas a pas: afegiu estils CSS, potser connectors SVG entre nodes i, més tard, exploreu biblioteques per a dissenys més avançats.
Des d'arbres d'IU prototipus fins a models de regressió reals
Hi ha una distinció important entre un arbre de decisions d'IU que es codifica perquè els usuaris hi facin clic i un veritable model d'arbre de regressió que aprèn de les dades, però comparteixen la mateixa estructura conceptual. En ambdós casos teniu nodes amb condicions, branques basades en respostes i fulles que generen algun resultat, ja sigui una recomanació o un número.
Per a una interfície feta a mà, dissenyeu totes les preguntes i els resultats vosaltres mateixos, fent efectivament el paper de l'algoritme d'aprenentatge. En un context d'aprenentatge automàtic, en canvi, un algoritme com el gradient boosting aprèn aquestes divisions d'un conjunt de dades, guiat per criteris com l'entropia, el guany d'informació o la reducció de la variància. No especifiqueu l'arbre directament; en canvi, proporcioneu exemples i deixeu que l'algoritme descobreixi l'estructura.
Un flux de treball pràctic és implementar primer l'arbre d'IU que coincideixi amb la vostra comprensió actual del problema i, més tard, a mesura que recopileu dades del món real, substituir la lògica dissenyada manualment per un model après. Aquest model es pot entrenar en Python o Azure Machine Learning, exportar-lo com a JSON o un altre format portable i, a continuació, carregar-lo l'aplicació JavaScript. Cada arbre o conjunt es pot representar com a objectes imbricats que el front-end recorre per produir prediccions o generar una explicació per a l'usuari.
En alguns productes, els equips combinen ambdós enfocaments: un model après per calcular una puntuació o recomanació numèrica i un arbre separat dissenyat per humans per estructurar com es fan les preguntes a la interfície. Per exemple, el vostre model pot estimar la probabilitat d'èxit, mentre que l'arbre de la interfície d'usuari organitza les preguntes d'una manera que els usuaris els semblin naturals i que coincideixin amb el model mental que heu derivat de la investigació d'usuaris.
Comprendre el costat teòric (entropia, guany d'informació, augment de gradient, sobreajustament i poda) us ajuda a saber quan l'estructura de la vostra interfície d'usuari pot ser enganyosa o quan l'arbre d'un model après és massa complicat i necessita restriccions. Amb aquest coneixement, podeu dissenyar visualitzacions i interaccions que no només tinguin bon aspecte, sinó que també reflecteixin fidelment com el model subjacent pren decisions.
En definitiva, els arbres de decisió ofereixen un pont particularment amigable entre el disseny visual, el raonament intuïtiu i l'aprenentatge automàtic rigorós, motiu pel qual apareixen de manera tan destacada en cursos, acreditacions i plataformes com l'Azure Machine Learning. Un cop hàgiu après els conceptes bàsics i practiqueu amb uns quants prototips senzills de JavaScript, estareu en una posició sòlida per explorar conjunts més avançats com ara arbres de regressió potenciats i boscos aleatoris, i per integrar aquests models en aplicacions web del món real sense sentir-vos perduts.
