Machine Learing ed il diabete: un aiuto...

di il
3 risposte

Machine Learing ed il diabete: un aiuto...

Ciao a tutti,
ultimamente mi sto documentando sul Machine Learning, in particolar modo attraverso il Python.
Sono diabetico e misuro la glicemia attraverso un sensore ad intervalli regolari (ogni 5 min).
Pensavo di utilizzare il ML e creare un algoritmo che possa prevedere l'andamento glicemico nella giornata, sia in base ai dati elaborati sia in base al valore attuale.

Premetto che sono abbastanza ignorante in materia (nel senso che sto muovendo i primi passi da poco), quindi vorrei realizzare un progetto semplice da implementare mano mano... Per questo pensavo di utilizzare i dati base, cioè solo il valore della glicemia nel tempo, per poi, in un futuro arricchirlo anche con la somministrazione di insulina (dato indispensabile affinchè il tutto sia più veritiero).

Tenete condo che il mio dataset è in continua espansione, riesco ad avere un valore ogni 5 minuti, cioè 288 nuovi valori ogni giorno e 2016 alla settimana.

Come dicevo prima, pensavo di partire con la sola glicemia, quindi i miei dati saranno così strutturati:
DAY TIME UDT_CGMS
19.02.2019 00:02 275
19.02.2019 00:07 277
19.02.2019 00:12 279
19.02.2019 00:17 283
19.02.2019 00:22 289
19.02.2019 00:27 292
19.02.2019 00:32 294
19.02.2019 00:37 296
19.02.2019 00:42 301
19.02.2019 00:47 317
19.02.2019 00:52 310
19.02.2019 00:57 300
19.02.2019 01:02 296
19.02.2019 01:07 290
19.02.2019 01:12 280
19.02.2019 01:17 270
Ora teniamo in considerazione dei presupposti:
  • la glicemia varia gradualmente (cioè non può passare da 50 a 400 nell'intervallo di misurazione)
  • l'andamento glicemico è influenzato dalla quantità di carboidrati assunti (carboidrati = glicemia che sale), l'esercizio fisico (più esercizio = glicemia scende) e l'insulina (insulina = glicemia scende).
Come dicevo prima per ora voglio considerare solo i valori della glicemia, successivamente inserirò anche tutti gli altri dati che comunque sono registrabili.

Ora, quello che volevo sapere da voi è: da dove parto? Come mi consigliate di iniziare?
Mi date qualche suggerimento?

Grazie

3 Risposte

  • Re: Machine Learing ed il diabete: un aiuto...

    Il Machine Learning non e' esattamente un argomento per principianti, e non basta usare una libreria per saperlo usare.

    Tra l'altro forse il modello che meglio potrebbe funzionare nel tuo caso e' una LSTMNN (Long/Short Term Memory Neura Network, un'implementazione la trovi con TensorFlow), quindi non esattamente una libreria di semplice utilizzo, oltre al fatto che la libreria, per poter funzionare, richiede hardware adeguatamente "POMPATO" (core i7 quad core + HT, come minimo ed un bel po' di ram PIU' una schrda grafica NVIDIA di ultima generazione top di gamma, altrimenti le reti neurali te le scordi!)

    La prima cosa che devi considerare e' che il tuo dataset, cosi' come e' (ora/glicemia) e' una banale funzione "y=f(x)", QUINDI non ti serve nulla di complicato, ma un algoritmo di interpolazione (polinomiale, spline, ecc) e' piu' che sufficiente.

    Per fare qualcosa di minimamente intelligente ti serve un dataset decisamente piu' ricco: ti servono PIU' COLONNE, NON SOLO la data.

    Al momento, il computer puo' SOLO fare delle considerazioni: ora->glicemia, perche' non ha altre informazioni su cui lavorare
  • Re: Machine Learing ed il diabete: un aiuto...

    Scusami se non ti ho risposto prima, ci tenevo a ringraziati della risposta.
    Attualmente sto approfondendo l'uso del Python, successivamente mi dedicherò al ML, in particolar modo con TensorFlow e all'algoritmo LSTMNN, come da te suggerito.

    L'unico dubbio è per l'appunto sui dati, oltre all'ora delle misurazioni e alle glicemie, posso inserire anche la somministrazione di insulina (un dosaggio espresso come "unità") e la quantità di carboidrati assunta (espressa in grammi).

    Il problema è che queste nuove "colonne" (per un totale di 4), avranno un timestamp diverso rispetto alle misurazioni e comunque non così frequente.

    Cioè potrei avere 150 valori di misurazioni della sola glicemia, 1 valore di "somministrazione di insulina", seguito da un valore di "assunzione di carboidrati" ed altri 100 valori di misurazione di glicemia...
    non c'è una vera e propria struttura in questi dati....

    Pensi che si possano gestire in qualche modo?

    Grazie.
  • Re: Machine Learing ed il diabete: un aiuto...

    Interpolazione o altri metodi di imputation.
    Al posto di lstm potresti usare le gru che hanno meno parametri e spesso funzionano altrettanto bene.
    Potresti anche usare una CNN come encoder e la RNN solo per il decoder. O persino una CNN bidimensionale che fa sia da encoder che da decoder: https://arxiv.org/pdf/1808.03867.pd
    Se poi non hai le risorse di calcolo neanche per l'ultimo metodo (e al 99% non le hai) usa un hidden markov model, che è quello che si usava per fare queste cose prima del deep learning (o i conditional random field se vuoi complicarti la vita).

    Insomma, documentati sulle tecniche di machine translation o sequence2sequence in generale.
Devi accedere o registrarti per scrivere nel forum
3 risposte