Previsione delle transazioni finanziarie

-2

Mi piacerebbe creare software per aiutare le persone con le loro finanze personali. Un'area che vorrei affrontare è cercare di prevedere transazioni future basate su transazioni passate. Ad esempio potresti vedere la bolletta elettrica pagata vicino ad un certo giorno del mese. L'algoritmo sarebbe quindi in grado di creare future transazioni previste in una previsione che mostrerebbe che la fattura è stata pagata in quel giorno. Lo farebbe per tutte le fatture ed essere in grado di organizzare una previsione di flusso di cassa basata su di esso.

Per flusso di cassa intendo un elenco di transazioni che dovrebbero verificarsi nel futuro sulla base di modelli passati. Quindi, come nel mio esempio, tutte le fatture trovate a pagare con determinati modelli continuerebbero a seguire quel modello.

Penso che l'apprendimento automatico (ML) sia lo strumento giusto. Ho fatto un sacco di apprendimenti nell'area ma devo ancora vedere qualcosa che sembra adattarsi a questo tipo di problema. Qualche idea su quali algoritmi sarebbero stati applicati? Sto solo cercando alcuni suggerimenti nella giusta direzione su quale algoritmo ML sarebbe meglio esaminare.

Effettuerò il backup e cercherò di dare più contesto al problema. Quindi oggi se vuoi ottenere il beneficio di qualsiasi tipo di strumento di previsione per le tue finanze personali, generalmente stai inserendo manualmente e poi mantenendo un elenco di fatture. Vorrei eliminare questa necessità. Se guardi un conto corrente, probabilmente ti sarà evidente che alcune fatture pagano su determinati orari, anche se non hai familiarità con l'account. Quindi riconoscere i pattern che gli esseri umani al momento farebbero abbastanza facilmente in casi più semplici. Suona classicamente ML per me. Quindi mi piacerebbe provare ad applicarlo. Il risultato finale desiderato da questo è un flusso di cassa proiettato che mostra come potrebbe apparire il futuro conto corrente se i trend attuali continuassero.

Si noti che il sentimento di non usare ML è ben compreso. Non sono d'accordo e sto cercando aiuto con la ML. Le lezioni generali sulla natura della ML e altri suggerimenti sulle medie semplici non affrontano affatto la questione.

    
posta Jeffrey Vest 05.09.2016 - 00:56
fonte

1 risposta

2

Il principio generale dietro l'apprendimento automatico è che consuma un set di dati composto da input e risultati storici, aggiorna il suo stato interno e, quando viene fornito un nuovo insieme di input, può indovinare un output che rientra nello schema storico come dimostrato nei dati storici. Affinché la macchina possa determinare se un'uscita è valida, ha bisogno di feedback-- ad es. si esegue la macchina su input storici e si vede se è in grado di calcolare i risultati storici.

Se l'output calcolato differisce dall'output effettivo, la differenza è chiamata funzione di costo ... la macchina aggiornerebbe quindi le sue variabili di stato interne (in genere una sorta di pesi o bias) per ridurre al minimo i costi con esposizione ripetuta a più dati .

In una tipica progettazione sperimentale, gli input e gli output utilizzati per l'apprendimento provengono da un set di dati diverso dagli input e dagli output utilizzati per testare la validità. Per esempio. se esponi una macchina agli ingressi e alle uscite di John, verifica se può imparare abbastanza da calcolare le uscite di Bob se gli vengono dati gli input di Bob. Quindi avrai bisogno di molti dati!

Chiediti quali sono gli input e gli output e cosa esattamente vuoi che la tua "macchina" sia in grado di calcolare.

Ad esempio

Input: una serie di transazioni finanziarie, per un determinato periodo di interesse. Ogni elemento dell'array è composto dai seguenti attributi: data, quantità e tipo.

Output: flusso di cassa totale per il periodo di interesse.

Quanto sopra può essere realizzato tramite semplice matematica, ad es. somma il campo importo di tutti gli input - il risultato è l'output.

Questo è quanto.

Ora, se insisti a pensare troppo a questo, suppongo che potresti fare un sacco di problemi per addestrare una rete neurale per capire i giusti valori di gradiente per essere in grado di eseguire aggiunte senza esplicitamente dire che deve fare Inoltre (questo non è banale!) O potresti semplicemente codificare la macchina per eseguire l'aggiunta, perché sai che è ciò che deve essere fatto. In questo caso non hai bisogno di apprendimento automatico .

Immagino che il problema che stai cercando di risolvere non abbia bisogno dell'apprendimento automatico, piuttosto quello di cui hai bisogno è un modello statico, che tu stesso progetteresti piuttosto che la macchina.

Una semplice media mobile potrebbe funzionare. Se vuoi diventare un po 'pazzo, puoi organizzare i tuoi dati in un modello lineare generale che potrebbe prevedere i valori abbastanza bene, assumendo che il meccanismo generale non è non lineare. Finora nella tua domanda non hai dimostrato la necessità di qualcosa di più sofisticato di quello.

    
risposta data 06.09.2016 - 21:14
fonte

Leggi altre domande sui tag