The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here
How to build a predictive model to optimize gain
Hi All,
I would like to create and use a predictive model of buy or sell signals for a stock in order to optimize the gain.
For the inputs I created the following table:
Where:
Day is the ID
Variation is the daily price variation. I set its role as Attribute.
Indicators are attributes.
Result is equals to 1 if the previous day price variation was positive else 0.
I have created a process like this:
Where I used:
- Retrieve to load inputs
- Normalize for normalization
- Filter Examples to split input between training inputs and inputs for prediction
- Generate Attributes to derive another attribute with a formula
- Set Role to set ID and Label roles
- Cross Validation to train the model
- Multiply to duplicate the model for the Apply Model component and Store it in a file
In the Cross Validation I put:
- Deep Learning to learning and create the model
- Performance (Binomial classification) to evaluate the model. I set like main creation the "True positive".
Performance result is not great. Further in another process machine learning memorize the result for a input set.
Could you help me to improve the process?
Thanks in advance
Francesco
0
Answers
Hi,
have you tried another learner? E.g. a Random Forest (w/o any (pre)pruning?). I would give this one a try first.
Best,
Martin
Dortmund, Germany
I'm worried that model memorize the training set and it will not be adapt to new examples...
How can avoid it? With a X Validation component?
At the moment I have a lot of indicators, do you advise me to reduce the number of them?
Thanks
Francesco
Hey Francesco,
kind of yes.
Overtraining
Your memorizing of the training set is called overtraining. Most algorithms have options to fight against this. It is a trade of between putting more information in and putting to much information of the training data in (it runs into Bias-Variance Tradeoff). The options for RFs and Decision Trees controlling this are the (pre)pruning options, especially minimal gain. I've posted some more details about the options here: http://community.rapidminer.com/t5/RapidMiner-Studio-Knowledge-Base/My-Decision-Tree-Shows-only-one-Node/ta-p/33259 . The nice thing about Random Forests are, that they are pretty robust against overtraining by themselves. That was one reason why I recommended them.
X-Validation is not preventing you from overtraining, but it is showing you how good you are on unknown data sets. So if you overtrain, you will get worse results. So it is in fact helping to fight against overtraining.
Feature Selection
Feature selection is an important topic and there is no one-size fits them all thing. I've explored some options in the feature weight article: http://community.rapidminer.com/t5/RapidMiner-Studio-Knowledge-Base/Feature-Weighting-Tutorial/ta-p/35281 . The nice thing about a Random Forest is, that it is doing an internal feature selection at each node. It is also a bit more robust than other algorithm to bad features. The option to play with would be is subset_ratio if you do not use guess subset ratio. I would give the plain rf a try, change this setting a bit and then move forward to more feature selection (and generation!).
Best,
Martin
Dortmund, Germany
I come back to this project.
I left it because I didn't reach good results.
Now, I would like change the approach.
I would like create a model where the machine learn from the training set (built by different stock data) and at the end of the day I would apply it to many stocks and it have return a confident rate for the forecast of each stock.
How do you suggest to proceed?
Thanks in advance
Hi @fpaganel
This seems to be quite old thread, but you last question calls for @Thomas_Ott definitely
Vladimir
http://whatthefraud.wtf
@kypexin you rang?
@fpaganel so if you want to use time series in RapidMiner you should install the Value Series extension. There's a Sliding Window Validation operator that does backtesting. From there you can measure forecast performance or RSME, etc.
I go over quite a bit of time series process building (with explainations) in my latest Live Stream here: https://youtu.be/WdYpWAFxzR8