{"id":25806,"date":"2019-11-20T16:01:00","date_gmt":"2019-11-20T15:01:00","guid":{"rendered":"http:\/\/help.qualiware.it\/qw-help\/?p=25806"},"modified":"2023-08-18T09:47:29","modified_gmt":"2023-08-18T07:47:29","slug":"modellimlform","status":"publish","type":"post","link":"https:\/\/help.qualiware.it\/qw-help\/modellimlform\/","title":{"rendered":"Machine Learning Model Designer"},"content":{"rendered":"<p>Il <strong>Machine Learning Model Designer (MLMD) <\/strong>\u00e8 disponibile dalla versione <strong>2020.00 <\/strong>e consente di creare e classificare con pochi click i modelli dei dati dai quali si vogliono ricavare stime e previsioni.<\/p>\n<p><a href=\"http:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/MLMD.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-25808 aligncenter\" src=\"http:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/MLMD-1024x689.png\" alt=\"\" width=\"640\" height=\"431\" srcset=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/MLMD-1024x689.png 1024w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/MLMD-300x202.png 300w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/MLMD-768x517.png 768w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/MLMD.png 1487w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Le funzionalit\u00e0 principali del modulo sono le seguenti:<\/p>\n<ul>\n<li>Classificazione dei modelli attribuendo un codice, una descrizione breve e una descrizione estesa;<\/li>\n<li>Definizione del tipo di Machine Learning: Classificazione Multiclasse, Regressione, Classificazione Binaria;<\/li>\n<li>Associazione della query che fornisce i dati per il training;<\/li>\n<li>Scelta dei possibili algoritmi da valutare e della metrica di valutazione;<\/li>\n<li>Pianificazione della rigenerazione automatica del modello con relativa periodicit\u00e0 (la rigenerazione verr\u00e0 effettuata da QualiWare Server Daemon);<\/li>\n<li>Possibilit\u00e0 di allegare documenti a ciascun modello.<\/li>\n<\/ul>\n<h2>Tipo di Machine Learning<\/h2>\n<p>Il tipo di Machine Learning pu\u00f2 essere:<\/p>\n<ul>\n<li>Classificazione Multiclasse: si utilizza quando la variabile da stimare \u00e8 scelta fra un numero limitato di valori stringa;<\/li>\n<li>Regressione: si utilizza quando la variabile da stimare \u00e8 un numero (intero o in virgola mobile);<\/li>\n<li>Classificazione Binaria: si utilizza quando la variabile da stimare \u00e8 binaria (0 o 1).<\/li>\n<\/ul>\n<h2>Come realizzare la query<\/h2>\n<p>La query che specifica i dati &#8220;da imparare&#8221; (training) pu\u00f2 essere utilizzata con il <a href=\"http:\/\/help.qualiware.it\/qw-help\/qw_query_designer\/\">Query Designer<\/a> e deve avere una struttura ben precisa: le prime N-1 colonne devono contenere le variabili indipendenti (i cosiddetti &#8220;predittori&#8221;), mentre la N-esima colonna deve contenere la variabile dipendente, quella che verr\u00e0 stimata.<\/p>\n<p>Le variabili indipendenti possono essere di diversi tipi:<\/p>\n<ul>\n<li>testo categorizzato;<\/li>\n<li>testo libero;<\/li>\n<li>numerico, nel qual caso devono obbligatoriamente avere il tipo di dati SQL &#8220;real&#8221;;<\/li>\n<li>logico (0 o 1).<\/li>\n<\/ul>\n<p>Come si pu\u00f2 vedere, le variabili di tipo testo possono essere di due tipi: categorizzato o libero. Il primo tipo corrisponde al caso in cui il valore \u00e8 scelto all&#8217;interno di un insieme limitato di possibili valori. Nel secondo caso, invece, il testo pu\u00f2 essere qualsiasi (ad es. quando la variabile contiene un elenco di codici articolo presi da una distinta base, oppure il testo di una mail). Il sistema \u00e8 in grado di gestire automaticamente in modo appropriato queste due situazioni, che richiedono una modalit\u00e0 di training completamente diversa.<\/p>\n<p>Ovviamente la query non pu\u00f2 contenere parametri, in quanto viene eseguita dal sistema senza la possibilit\u00e0 di interagire con l&#8217;utente.<\/p>\n<h2>Gli algoritmi e la metrica di valutazione<\/h2>\n<p>Il modello ottimale viene scelto applicando una serie di algoritmi dei quali vengono stimati i cosiddetti &#8220;iper-parametri&#8221; (anche pi\u00f9 set di valori per lo stesso algoritmo) e viene stimata l&#8217;affidabilit\u00e0 sulla base di una &#8220;metrica&#8221;. Per ogni tipo di Machine Learning sono disponibili algoritmi diversi, che l&#8217;utente pu\u00f2 selezionare (per saperne di pi\u00f9 vedere <a href=\"https:\/\/learn.microsoft.com\/it-it\/dotnet\/machine-learning\/how-to-choose-an-ml-net-algorithm\" target=\"_blank\" rel=\"noopener noreferrer\">qui<\/a>). Al momento della generazione del modello, ogni algoritmo selezionato verr\u00e0 eseguito con uno o pi\u00f9 set di parametri, sulla base del tempo massimo per il training specificato (pi\u00f9 elevato \u00e8, e pi\u00f9 set di parametri verranno provati). Per il training stesso, il sistema non utilizza tutti i dati restituiti dalla query, ma solo una parte, e con la restante parte prova ad eseguire la stima, misurando poi la differenza fra la stima stessa e il valore reale. L&#8217;insieme delle differenze consente di calcolare una serie di indicatori della bont\u00e0 del modello. Tali indicatori sono anch&#8217;essi differenti a seconda del tipo di Machine Learning utilizzato, e se ne pu\u00f2 trovare una descrizione <a href=\"https:\/\/learn.microsoft.com\/it-it\/dotnet\/machine-learning\/resources\/metrics\" target=\"_blank\" rel=\"noopener noreferrer\">qui<\/a>. Ad esempio, nel caso di &#8220;Regressione&#8221;, l&#8217;indicatore<em> RootMeanSquaredError<\/em> rappresenta la radice quadrata della media dei quadrati degli errori, ed \u00e8 espressa nella stessa unit\u00e0 di misura della variabile da predire. Se si sta predicendo un valore in metri, tale indicatore sar\u00e0 anch&#8217;esso espresso in metri.&nbsp;<\/p>\n<p>In fase di configurazione del modello si dovr\u00e0 scegliere, dall&#8217;apposita tendina <strong>Metrica di ottimizzazione<\/strong>, uno di questi indicatori come metrica di valutazione per stabilire qual \u00e8 il modello migliore, quello che verr\u00e0 memorizzato e poi utilizzato per le previsioni.<\/p>\n<h2>Generazione del modello<\/h2>\n<p>Il processo di valutazione e generazione del modello pu\u00f2 essere attivato sia manualmente che automaticamente. L&#8217;attivazione manuale viene effettuata premendo il pulsante <strong>Genera modello<\/strong>. Durante l&#8217;esecuzione verranno mostrati in tempo reale tutti i passaggi effettuati, e, quindi, gli algoritmi valutati e il valore della metrica.<\/p>\n<p>Al termine dell&#8217;elaborazione verr\u00e0 mostrato un dettaglio riepilogativo del modello migliore in base alla metrica stessa, e verranno riportati i valori di tutti gli indicatori.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-25815 aligncenter\" src=\"http:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/MLMD2-300x239.png\" alt=\"\" width=\"300\" height=\"239\" srcset=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/MLMD2-300x239.png 300w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/MLMD2-768x611.png 768w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/MLMD2.png 778w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Premendo il pulsante <strong>Salva modello<\/strong>, il modello migliore verr\u00e0 salvato e sar\u00e0 utilizzato per le stime. Premendo <strong>Annulla<\/strong> verr\u00e0 mantenuto quello precedentemente salvato.<\/p>\n<p>\u00c8 anche possibile effettuare una rivalutazione automatica periodica, che sar\u00e0 eseguita da <a href=\"http:\/\/help.qualiware.it\/qw-help\/sd-machine-learning\/\">QualiWare Server Daemon<\/a>, attivando il flag <strong>Rigenerazione automatica del modello<\/strong> e specificando, nell&#8217;apposito campo, la frequenza di rivalutazione. \u00c8 anche possibile fare inviare una mail al <strong>Redattore<\/strong> al termine dell&#8217;operazione.<\/p>\n<p>\u00c8 possibile verificare lo storico di tutte le generazioni, anche quelle automatiche, consultando la &#8220;Cronologia&#8221;.<\/p>\n<p>Il pulsante <strong>Test modello&nbsp;<\/strong>apre la scheda di test del modello generato, che consente di specificare i valori dei predittori e di effettuare da essi la stima utilizzando la primitiva QWml.Prediction come spiegato qui sotto.<\/p>\n<p><strong>NOTA<\/strong><br \/>\nData la complessit\u00e0 degli algoritmi, \u00e8 possibile che in fase di &#8220;training&#8221; vengano restituiti errori dovuti al fatto che i dati non sono applicabili al set di dati o a valori degli iper-parametri che il sistema prova ad utilizzare. Per evitare questo problema, provare ad escludere ad uno ad uno gli algoritmi oppure, nel caso in cui l&#8217;errore si verifichi in un passaggio successivo al primo, diminuire il tempo massimo per il training.&nbsp;<\/p>\n<h2>Utilizzo dei modelli e primitiva QWml.Prediction<\/h2>\n<p>Abbiamo detto che il fine ultimo dei modelli \u00e8 quello di effettuare previsioni. Queste possono essere effettuate in qualsiasi script (eventi Form Designer, Task, ecc.) utilizzando la primitiva <a href=\"http:\/\/help.qualiware.it\/qw-help\/primitive-di-sistema\/#ML\"><strong>QWml.Prediction<\/strong><\/a>,<\/p>\n<p>\u00c8 possibile vedere un esempio di applicazione in <a href=\"http:\/\/help.qualiware.it\/qw-help\/stima-di-valori-in-un-task-utilizzando-i-modelli-di-machine-learning-e-la-primitiva-qwml-prediction\/\">questo snippet<\/a>.<\/p>\n<h2>&nbsp;<\/h2>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il Machine Learning Model Designer (MLMD) \u00e8 disponibile dalla versione 2020.00 e consente di creare e classificare con pochi click i modelli dei dati dai quali si vogliono ricavare stime e previsioni. &nbsp; Le funzionalit\u00e0 principali del modulo sono le seguenti: Classificazione dei modelli attribuendo un codice, una descrizione breve e una descrizione estesa; Definizione&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"ngg_post_thumbnail":0,"footnotes":""},"categories":[86],"tags":[],"acf":[],"_links":{"self":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/25806"}],"collection":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/comments?post=25806"}],"version-history":[{"count":4,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/25806\/revisions"}],"predecessor-version":[{"id":32086,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/25806\/revisions\/32086"}],"wp:attachment":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/media?parent=25806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/categories?post=25806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/tags?post=25806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}