def svm_predict(days=10, stock='YHOO'): # Generate sample data lag = 2 offset = 20 closingPrices, stockFeature = stockFeatures(stock, lag) # set training dat size N = len(stockFeature) / 3 * 2 # training data y = closingPrices[lag:(N + lag)] X = stockFeature[0:N] # test data Z = stockFeature[N + offset:(N + days + offset)] # Fit regression model svr_rbf = SVR(kernel='rbf', C=1e2, gamma=0.018) y_rbf = svr_rbf.fit(X, y).predict(Z) a = [round(i, 3) for i in list(y_rbf)] ax = plt.subplot(111) pre = 10 b1 = closingPrices[N + lag + offset - pre:N + lag + offset] b2 = closingPrices[N + lag + offset - pre:N + lag + offset] b1.extend(a) b2.extend(closingPrices[N + lag + offset:N + lag + days + offset]) plt.plot(b1, label='Prediction ' + stock + " " + str(lag)) plt.plot(b2, label='Origin ' + stock + ' ' + str(lag)) plt.legend() plt.show() return a
def mlp_predict(days, stock='YHOO'): # Generate sample data lag = 5 offset = 20 closingPrices, stockFeature = stockFeatures(stock, lag) #set training dat size N = len(stockFeature) / 3 * 2 #training data y = closingPrices[lag:(N + lag)] X = stockFeature[0:N] #test data Z = stockFeature[N + offset:(N + days + offset)] # Fit regression model hidden_layer_sizes mlp = MLPRegressor(solver='lbfgs', activation='identity', verbose=False, max_iter='tol', hidden_layer_sizes=(50, )) mlp.fit(X, y) y_log = mlp.predict(Z) #print np.ndarray.tolist(y_log) a = [round(i, 3) for i in list(y_log)] ax = plt.subplot(111) pre = 10 b1 = closingPrices[N + lag + offset - pre:N + lag + offset] b2 = closingPrices[N + lag + offset - pre:N + lag + offset] b1.extend(a) b2.extend(closingPrices[N + lag + offset:N + lag + days + offset]) plt.plot(b1, label='Prediction ' + stock + " " + str(lag)) plt.plot(b2, label='Origin ' + stock + ' ' + str(lag)) plt.legend() plt.show() return a
def svm_predict(days=10, stock='YHOO'): # Generate sample data lag = 10 closingPrices, stockFeature = stockFeatures(stock, lag) N = len(stockFeature) / 2 y = closingPrices[lag:(N + lag)] X = stockFeature[0:N] Z = stockFeature[N:(N + days)] # Fit regression model svr_rbf = SVR(kernel='rbf', C=1e2, gamma=0.018) y_rbf = svr_rbf.fit(X, y).predict(Z) a = [round(i, 3) for i in list(y_rbf)] ax = plt.subplot(111) plt.plot(a, label='Prediction ' + stock + " " + str(lag)) plt.plot(closingPrices[N + lag:N + lag + days], label='Origin ' + stock + ' ' + str(lag)) plt.legend() plt.show() return a
def mlp_predict(days, stock='YHOO'): # Generate sample data lag = 5 offset = 0 closingPrices, stockFeature = stockFeatures(stock, lag) N = len(stockFeature) / 3 * 2 upDown = [] for i in range(1, len(closingPrices)): upDown.append(-1 if (closingPrices[i - 1] > closingPrices[i]) else 0) trainLable = upDown[lag - 1:(N + lag - 1)] trainData = stockFeature[0:N] testData = stockFeature[N + offset:(N + days + offset)] testLable = upDown[N + lag + offset - 1:N + lag + days + offset - 1] # Fit model mlp = MLPClassifier(solver='lbfgs', activation='relu', verbose=False, max_iter='tol', hidden_layer_sizes=()) mlp.fit(trainData, trainLable) y_pre = mlp.predict(testData).tolist() print mlp.score(testData, testLable) return y_pre