예제 #1
0
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
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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