Doplňovanie postupnosťou
Vstupom do programu je súbor obsahujúci na každom riadku číselnú postupnosť. Program sa pokúsi uhádnuť jej pokračovaní a výstup uloží v rovnakom formáte do súboru.
S voľbou --debug
vypisuje program do konzoly postupnosť, jej
predikciu a získané koeficienty spolu s celkovou chybou odhadu.
Algoritmus
Ako model sa používa lineárna regresia, vstupom sú iba predchádzajúcej
členmi postupnosti. N-tý člen sa predikuje na základe vzorca:
a[n] = [1 a[n-1] ... a[nk]] * w
, kde w
je vektor
váh.
Hľadanie modelu začína vzťahom a[n] = w[0] + w[1]*a[n-1]
a
postupuje k zložitejším modelom, ak stále môžeme získať lepší
predikciu.
Prečo lineárny model funguje?
V prípade algebraických postupností bývajú následné členmi lineárny transformáciou členov predchádzajúcich. To platí dokonca aj v prípade nelineárnych vzťahov. Každý člen potom v sebe obsahuje "ozvenu" informácie získanú z predchádzajúcich členov. Výhodou lineárneho modelu je, že dobre funguje s nízkou informačný kapacitou aj pre zložitejšie vzory.
Príklad: pre postupnosť a[n] = n*n
platí,
a[n+1] = (n+1)^2 = n*n + 2n + 1 a[n-1] = (n-1)^2 = n*n - 2n + 1 a[n+1] = 2*a[n] - a[n-1] + 2
Obvyklý postup by ďalej pokračoval hľadaním modelov s polynomiálním alebo radiálnym jadrom, čo však vyžaduje oveľa väčšie množstvo vstupných dát.
Požiadavky
- Python> = 3.5
Použitie
python predict.py -h usage: predict.py [-h] [--debug] input output positional arguments: input input file output output file optional arguments: -h, --help show this help message and exit --debug print debug info
Spustenie na priloženom príklade s debug výpisom
python predict.py in.txt out.txt --debug
Galéria
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 24x (4.72 kB)
Aplikácia je vrátane zdrojových kódov