Home Machine Learning Coding Games Linux Informatica quantistica Melody Craft Farm in Mind
I prodotti cognitiva sono usati da Scuola_Sisini come tecnologia base per la formazione aziendale e individuale

ToyPs

Toy problems di Machine Learning da risolvere usando Linux, Bash e linguaggio C

ToyP 1: Valutazione dei test di ammissione alla Scuola Superiore di Informatica Italiana

Pubblicato il: 18/3/2020 (Pieno cornavirus...)
Soluzione il : 25/3/2020

Per essere ammessi alla Scuola Superiore di Informatica Italiana (SSII) si devono superare due test: uno pratico di elettronica digitale ed uno teorico di grammatiche e linguaggi formali.
Il buon nome della scuola è dovuto alla percentuale di studenti che dopo essersi diplomati hanno fondato aziende informatiche di successo.

Il rettore ha selezionato personalmente gli studenti per trent'anni valutando unicamente le prove di ammissione che si faceva pervenire in forma anonima in modo da non essere influenzato dal risultato specifico di una delle due prove.
Il rettore non ha mai confidato a nessuno quale fosse il suo algoritmo di scelta, e ora che è andato in pensione il nuovo rettore teme di ammettere alla scuola degli studenti che non ne manterranno altrettanto alto il buon nome.

Al nuovo rettore viene consegnato un file con i punteggi ottenuti dai candidati alla prova di ammissione, ed egli deve decidere chi ammettere e chi no.
Egli vuole selezionare le ammissioni con lo stesso criterio del precedente rettore. Decide di affidare la sua decisione ad un algoritmo di Machine Learning, in particolare vuole usare una rete neurale a due strati.
La rete neurale va addestrata usando i punteggi delle prove e gli esiti di ammissione degli anni passati. Egli possiede un file con i punteggi delle prove degli anni passati e i relativi esiti di ammissione decisi dal precedente rettore.

Se il precedente rettore avesse valutato le prove, questi sarebbero stati gli esiti:

10	4	AMMESSO
11	3	AMMESSO
12	5	AMMESSO
13	4	AMMESSO
14	6	AMMESSO
15	1	NON AMMESSO
16	3	NON AMMESSO
17	4	NON AMMESSO
18	3	NON AMMESSO
19	10	AMMESSO
20	10	AMMESSO
21	6	NON AMMESSO
22	12	AMMESSO
23	12	AMMESSO
24	12	AMMESSO
25	14	AMMESSO
26	11	NON AMMESSO
27	15	AMMESSO
28	14	NON AMMESSO
29	15	NON AMMESSO
30	19	AMMESSO
31	17	NON AMMESSO
32	18	NON AMMESSO
33	20	NON AMMESSO
34	21	NON AMMESSO
35	26	AMMESSO
36	28	AMMESSO
37	25	NON AMMESSO
38	30	AMMESSO
39	28	NON AMMESSO
40	29	NON AMMESSO
41	31	NON AMMESSO
42	33	NON AMMESSO
43	39	AMMESSO
44	40	AMMESSO
45	39	NON AMMESSO
46	40	NON AMMESSO
47	42	NON AMMESSO
48	47	AMMESSO
49	46	NON AMMESSO
                                 

                                  

Consegna

  1. Scaricare, estrarre e compilare secondo le istruzioni del README.md il tool rns (rete neurale shallow) che implementa una applicazione di classificazione basata su una rete di percettroni a due strati.
  2. Addestrare la rete neurale del tool con i punteggi delle prove passate contenuti nel file storico_esiti.csv
  3. Verificare che l'addestramento produca i due file layer1.w e layer2.w che rappresentano il dump dei due strati della rete.
  4. Scrivere una procedura bash che prenda in input i punteggi delle nuove prove da classificare, contenuti nel file nuovi_punteggi_non_valutati.csv e i due file layer1.w e layer2.w e restituisca un output uguale a quello qui sopra.
  5. Sebbene il codice di rns abbia licenza GPL 3, questo ToyP non prevede la modifica del codice.

Feedback

Per confrontarti sui toyps o altri topics inerenti a ML, AI ecc., iscriviti al gruppo Facebook Reti Neurali in linguaggio C

Risorse

Libri
Video

Licenza e responsabilità

The tools are Open Source code distributed under GNU-GPL license. The tools are developed in the Scuola Sisini using GNU-gcc and GNU-Emacs editor only. Please, visit the Free Software Foundation and GNU project for more information about that.