Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RNN trainr issue #32

Open
vasgupta opened this issue Jun 20, 2018 · 12 comments
Open

RNN trainr issue #32

vasgupta opened this issue Jun 20, 2018 · 12 comments

Comments

@vasgupta
Copy link

Hello, I am getting an error running the trainr command in the package. Here it is:

Error in if (dim(X)[2] != dim(Y)[2] && !seq_to_seq_unsync) { :
missing value where TRUE/FALSE needed

Even though X and Y are the same length. I have copied the R file with my code:

library(rnn)
library(corrplot)
prices <- read.csv('A:\Vasu\Big Data Masters\MRP\Clean Input.csv')

prices$Date <- NULL
prices$Gold.Price <- as.numeric(gsub(",","", as.character(just_prices$Gold.Price), fixed = TRUE))
prices$DJIA <- as.numeric(gsub(",","", as.character(just_prices$DJIA), fixed = TRUE))

matrix <- cor(prices)
corrplot(matrix, method = "circle")
model <- trainr(Y = array(prices$Gold.Price), X = array(prices$US.Dollar.Index) , learningrate = 0.1,
sigmoid = 'logistic', use_bias = T)

@bquast
Copy link
Owner

bquast commented Jun 21, 2018

@DimitriF any thoughts?

@DimitriF
Copy link
Contributor

I think array without the dim argument will return a array with one dimension, it seems you have only one sample, this should work better:

model <- trainr(Y = array(prices$Gold.Price,dim=c(1,nrow(prices)), X = array(prices$US.Dollar.Index,dim=c(1,nrow(prices)) , learningrate = 0.1,
sigmoid = 'logistic', use_bias = T)

@vasgupta
Copy link
Author

Thanks @DimitriF it worked!

@vasgupta
Copy link
Author

But just one more question, what if I wanted to input 3 variables, instead of one?
I tried this, but its not working.

model <- trainr(Y = array(prices$Gold.Price,dim=c(1,nrow(prices))),
X = array(c(prices$US.Dollar.Index, prices$CBOE.Volatility, prices$Silver.Price),
dim=c(3,nrow(prices))) , learningrate = 0.1,
sigmoid = 'logistic', use_bias = T)

@DimitriF
Copy link
Contributor

the first dimension is for the number of samples, the second for the number of elements in the sequence and the optional third dimension for the number of variables (if only 2 dimensions, yu have only one variable), so it should look like this:

model <- trainr(Y = array(prices$Gold.Price,dim=c(1,nrow(prices))),
X = array(c(prices$US.Dollar.Index, prices$CBOE.Volatility, prices$Silver.Price),
dim=c(1,nrow(prices),3)) , learningrate = 0.1,
sigmoid = 'logistic', use_bias = T)

But I am not sure how array fill itself so you may have to use aperm to check

@vasgupta
Copy link
Author

Hey, just wanted to clarify an issue I was getting.
I'm running the RNN with just one variable and I convert all my inputs to binary before training on the RNN. However, in the output I was expecting a binary output, but it gave me a decimal answer. How can I fix this?

Here's my code:

prices <- read.csv('A:\Vasu\Big Data Masters\MRP\Clean Input.csv')

prices$Date <- NULL
prices$Gold.Price <- as.numeric(gsub(",","", as.character(just_prices$Gold.Price), fixed = TRUE))
prices$DJIA <- as.numeric(gsub(",","", as.character(just_prices$DJIA), fixed = TRUE))

matrix <- cor(prices)
corrplot(matrix, method = "circle")

convert integer prices to binary

Y <- int2bin(prices$Gold.Price)
X <- int2bin(prices$US.Dollar.Index)
test <- int2bin(Test_prices$US.Dollar.Index)

model <- trainr(Y = Y,
X = X , learningrate = 0.1,
sigmoid = 'logistic', use_bias = T)

result <- predictr(model, test)

@DimitriF
Copy link
Contributor

round(result) ?

@vasgupta
Copy link
Author

My results look like this:

results table

@bquast
Copy link
Owner

bquast commented Jun 30, 2018

All below 0.5? There must be another problem then

@vasgupta
Copy link
Author

Does the input have to be in binary?

@vasgupta
Copy link
Author

As well the int2bin function doesn't properly convert the integer to binary, it gives a wrong number.

@bquast
Copy link
Owner

bquast commented Jul 2, 2018

Not the input, nor the output has to be binary, the binary stuff is simply an example.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants