IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

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

 

Všetky články v sekcii
Matematické algoritmy
Program pre vás napísal coells
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity