Handel met Support Vector Machines (SVM) (Hierdie artikel is die eerste keer gepubliseer op Quintuitive »R. En vriendelik bygedra tot R-bloggers) Ten slotte al die sterre in lyn en ek kan met vertroue wy 'n geruime tyd vir back-toets van nuwe handel stelsels, en ondersteuning Vector Machines (SVM) is die nuwe 8220; toy8221; wat gaan my besig vir 'n rukkie hou. SVMs is 'n bekende instrument uit die gebied van toesig masjien Leer. en hulle word gebruik vir beide klassifikasie en regressie. Vir meer inligting raadpleeg die literatuur. Dit lyk vir my dat die mees intuïtief aansoek vir verhandeling is regressie, so laat begin met die bou van 'n SVM regressiemodel. Na aanleiding van ons ervaring met ARMA + GARCH modelle, sal ons begin deur te probeer om opbrengste te voorspel, in plaas van pryse. Net so, in ons eerste toetse, ons sal net die opbrengs van die vorige 5 dae as die funksies bepaling van die opbrengs van 'n bepaalde dag gebruik. Ons sal begin met 'n geskiedenis van 500 dae as die opleiding stel. In meer wiskundige terme, vir die opleiding stel ons 'N kenmerke, vir elkeen van hulle het ons M monsters. Ons het ook M antwoorde. Gegewe 'n ry van funksie waardes, die verlaat matriks, is die SVM opgelei om die reaksie waarde te produseer. In ons spesifieke voorbeeld, ons het vyf kolomme (funksies), elke kolom wat ooreenstem met die opbrengste met 'n ander lag (1-5). Ons het 500 monsters en die ooreenstemmende antwoorde. Sodra die SVM opgelei oor hierdie stel, kan ons begin voed dit met stelle van vyf eienskappe, wat ooreenstem met die opbrengste vir die vyf vorige dae, en die SVM sal ons die antwoord, wat is die voorspelde terugkeer. Byvoorbeeld, na die opleiding van die SVM op die vorige 500 dae, ons sal die opbrengste vir dae 500, 499, 498, 497 en 496 (dit is ons s'n 2C21 "/% gebruik as die insette om die voorspelde ruil vir dag 501 kry. Van al die beskikbare in R pakkette, het ek besluit om die e1071 pakket kies. 'N beslote tweede keuse was die kernlab pakket, wat ek nog van plan om te probeer om in die toekoms. Dan probeer ek 'n paar strategieë. Eerste iets baie soortgelyk aan die ARMA + GARCH probeer ek die benadering van die uitgesak opbrengste van die vyf vorige dae. Ek was nogal verbaas om hierdie strategie presteer beter as die ARMA + GARCH (dit is die huis land van die ARMA + GARCH en ek sou baie gelukkig gewees het net met vergelykbare prestasie) te sien! Volgende, probeer ek om dieselfde vyf eienskappe, maar probeer om die beste deelversameling kies. Die keuse is gedoen met behulp van 'n gulsige benadering, wat begin met 0 funksies, en interaktief te voeg die funksie wat die fout beste verminder. Hierdie benadering verbeter dinge verder. Ten slotte, ek het probeer om 'n ander benadering met omtrent 'n dosyn funksies. Die funksies wat opbrengste oor verskillende tydperk (1-dag, 2-dag, 5 dae, ens), 'n paar statistieke (gemiddelde, mediaan, SD, ens) en volume. Ek gebruik dieselfde gulsige benadering tot funksies te kies. Hierdie finale stelsel het 'n baie goeie prestasie so goed, maar dit het 'n hel van 'n tyd om te hardloop. Tyd om hierdie pos te beëindig, die rug toets resultate moet wag. Tot dan kan jy speel met die volle bron jouself kode. Hier is 'n voorbeeld van die gebruik daarvan:
No comments:
Post a Comment