Advertisement
Dolledan

Untitled

Nov 23rd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.93 KB | None | 0 0
  1. import keras
  2. from keras import backend as K
  3. from keras.models import Sequential
  4. from keras.layers import Activation
  5. from keras.layers import LSTM
  6. from keras.layers.core import Dense
  7. from keras.optimizers import Adam
  8. from keras.metrics import categorical_crossentropy
  9.  
  10. import numpy as np
  11. from keras.models import Sequential
  12. from sklearn.preprocessing import MinMaxScaler
  13.  
  14.  
  15.  
  16. ACTIONS_DIM = 2
  17. OBSERVATIONS_DIM = 4
  18. MAX_ITERATIONS = 200
  19. LEARNING_RATE = 0.001
  20.  
  21. def data1 ():
  22. data = np.genfromtxt("2.txt", delimiter=",")
  23. print data
  24. return data
  25.  
  26. def samples1(i):
  27. for b in range (5):
  28. print "A"
  29. if (data [b] == ","):
  30. print "A"
  31. return 0
  32. print "B"
  33. return 0
  34.  
  35. def get_model():
  36. model = Sequential([
  37. Dense(16, input_shape=(1,), activation="relu"),
  38. Dense(32, activation="relu"),
  39. Dense(2, activation="softmax"),
  40. ])
  41.  
  42. model.compile(
  43. optimizer=Adam(lr=LEARNING_RATE),
  44. loss='sparse_categorical_crossentropy',
  45. metrics=["accuracy"],
  46. )
  47.  
  48. model.summary()
  49.  
  50. return model
  51.  
  52. def get_model2():
  53.  
  54. model = Sequential()
  55. model.add(LSTM(64, input_shape=(1,64), return_sequences=True))
  56. model.add(Dense(64))
  57. model.compile(loss='mean_absolute_error', optimizer='adam',metrics=['accuracy'])
  58. model.summary()
  59.  
  60. return model
  61.  
  62. def train2(model, scaled_train_samples2, train_labels):
  63. model.fit(scaled_train_samples2, train_labels, nb_epoch=100, batch_size=1, verbose=2)
  64.  
  65.  
  66. def train(model, scaled_train_samples, train_labels):
  67. model.fit(scaled_train_samples, train_labels, batch_size = 100, epochs=10, verbose=2)
  68.  
  69. def predict(model, train_samples):
  70. return model.predict(train_samples)
  71.  
  72. def main():
  73.  
  74.  
  75. SAMPLES = 65
  76. data = []
  77. samples = []
  78. train_samples = []
  79. train_labels = []
  80. predict_samples = []
  81. predict_labels = []
  82.  
  83.  
  84. data = data1()
  85.  
  86. Date =data[:,][:,0]
  87. Open =data[:,][:,1]
  88. High =data[:,][:,2]
  89. Low =data[:,][:,3]
  90. Close =data[:,][:,4]
  91. Volume =data[:,][:,5]
  92. OpenInt =data[:,][:,6]
  93.  
  94.  
  95. print Date
  96. print Open
  97. print High
  98. print Low
  99. print Close
  100. print Volume
  101. print OpenInt
  102.  
  103. for i in range(SAMPLES):
  104. # samples.append(Open[i])
  105. samples.append(High[i])
  106. samples.append(Low[i])
  107. # samples.append(Close[i])
  108.  
  109. print samples
  110.  
  111. for i in range(SAMPLES-1):
  112. if (samples[i+1] >= samples[i]):
  113. a=1
  114. else:
  115. a=0
  116. train_samples.append(samples[i])
  117. train_labels.append(a)
  118.  
  119. train_samples = np.array(train_samples)
  120. train_labels = np.array(train_labels)
  121. train_labels2 = train_labels.reshape((1,1,SAMPLES-1))
  122.  
  123. scaler = MinMaxScaler(feature_range=(0,1))
  124.  
  125. scaled_train_samples = scaler.fit_transform((train_samples).reshape(-1,1))
  126. scaled_train_samples2 = train_samples.reshape((1,1,SAMPLES-1))
  127.  
  128. print scaled_train_samples
  129. print train_labels
  130.  
  131. model = get_model()
  132. model2 = get_model2()
  133.  
  134. train(model, scaled_train_samples, train_labels)
  135. print scaled_train_samples2
  136. train2(model2, scaled_train_samples2, train_labels2)
  137.  
  138. for i in range(100):
  139. if (samples[i+SAMPLES+1] >= samples[i+SAMPLES]):
  140. a=1
  141. else:
  142. a=0
  143. predict_samples.append(samples[i])
  144. predict_labels.append(a)
  145.  
  146. predict_samples = np.array(predict_samples)
  147. predict_labels = np.array(predict_labels)
  148.  
  149. scaler = MinMaxScaler(feature_range=(0,1))
  150.  
  151. scaled_predict_samples = scaler.fit_transform((predict_samples).reshape(-1,1))
  152.  
  153. print predict(model,scaled_predict_samples)
  154.  
  155. print "hallo"
  156. return 0
  157.  
  158. if __name__ == '__main__':
  159. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement