Exemplo n.º 1
0
def main():
    # create feature extractor for Google
    extractor = fe.featureExtractor(0)

    # get features, label and corresponding date
    x, y, date = extractor.getFeature(1, 1)

    ts = tester.Tester(5)
    ts.test(regressionModel(0, gradient_type=0, zscore=True), x, y, 0)
Exemplo n.º 2
0
def main():
    # create feature extractor for Google
    extractor = fe.featureExtractor(0)

    # get features, label and corresponding date
    x, y, date = extractor.getFeature(1, 1)
    # y = tools.sign(y)

    ts = tester.Tester(5)
    ts.test(MLNN(hidden_layers=(2, 2), zscore=False), x, y, 0)
Exemplo n.º 3
0
def main():
    # create feature extractor for Google
    extractor = fe.featureExtractor(0)

    # get features, label and corresponding date
    x, y, date = extractor.getFeature(1, 1)
    y = tools.sign(y)

    ts = tester.Tester(5)
    ts.test(SVM(1, zscore=True), x, y, 1)
Exemplo n.º 4
0
    def testSingleModel(self, fluc=5, sentiment=1, data_set_size=0):
        sentimentals = {
            0: 'positive/negative',
            1: 'multiple moods',
            2: '2d term frequency',
            3: '4d term frequency',
        }
        print("-" * 60)
        print("{}-day fluctuation, sentimental analysis mathod: {}".format(
            fluc, sentimentals[sentiment]))

        # linear regression model
        model = TensorFlowNN(0.01, tf.tanh, 2, 2)

        for i in range(0, len(TEST_COMPANY)):
            # create feature extractor for current company
            extractor = fe.featureExtractor(i)

            # get features, label and corresponding date
            x, y, date = extractor.getFeature(fluc, sentiment)

            # set dataset size
            data_set_size = min(data_set_size,
                                x.shape[0]) if data_set_size else x.shape[0]
            x = x[:data_set_size]
            y = y[:data_set_size]

            # Test TensorFlow Neural Network
            print("# TensorFlow Neural Network Tester with " + TEST_COMPANY[i])

            model.train(x, y)
            # predicted_y: [y1, y2, y3, ..., yn]
            predicted_y = model.predict(x)

            # plot the result
            msg = "Fluctuation: " + str(fluc) + "-day, Sentiment: " + \
                str(sentiment) + ", Dataset: " + str(data_set_size)
            # tools.plot(predicted_y, y.values.ravel(), msg)

            # computeMSE need input params in excatly same dimension
            # Here both predicted_y and test_y.values.ravel() is a
            # n-dimension vector [y1, y2, ..., yn]
            mse = tools.computeMSE(predicted_y, y.values.ravel())
            print("MSE:", mse)
Exemplo n.º 5
0
 def testTensorFlow(self,
                    stepSize,
                    hiddenLayers,
                    layerNodes,
                    activation_function,
                    fluc=5,
                    sentiment=0):
     print('########## tesing tensorflow regression ##########')
     print('stepSize: ' + str(stepSize))
     print('hiddenLayers: ' + str(hiddenLayers))
     print('layerNodes: ' + str(layerNodes))
     print('activation_function: ' + str(activation_function))
     nn = TensorFlowNN(stepSize, activation_function, hiddenLayers,
                       layerNodes)
     for i in range(0, len(TEST_COMPANY)):
         print("# TensorFlowNN Tester with " + TEST_COMPANY[i])
         extractor = fe.featureExtractor(i)
         x, y, date = extractor.getFeature(fluc, sentiment)
         self.test(nn, x, y, 0)
Exemplo n.º 6
0
    def testAllModels(self, fluc=5, sentiment=1, data_set_size=0):
        # linear regression model
        model_lreg = reg.regressionModel(0, gradient_type=0, zscore=True)
        model_svm = svm.SVM(1, zscore=True)
        model_nn = mlnn.MLNN(hidden_layers=(5, ), zscore=True)
        model_tfnn = TensorFlowNN(0.01, tf.tanh, 2, 2)

        for i in range(0, len(TEST_COMPANY)):
            # create feature extractor for current company
            extractor = fe.featureExtractor(i)

            # get features, label and corresponding date
            x, y, date = extractor.getFeature(fluc, sentiment)

            # set dataset size
            data_set_size = min(data_set_size,
                                x.shape[0]) if data_set_size else x.shape[0]
            x = x[:data_set_size]
            y = y[:data_set_size]

            # convert numerical label into discrete value for classifier
            discrete_y = tools.sign(y)

            # Test Linear Regression
            print("# Linear Regression Tester with " + TEST_COMPANY[i])
            self.test(model_lreg, x, y, 0, "Linear Regression")
            print("-" * 60)

            # Test TensorFlow Neural Network
            print("# TensorFlow Neural Network Tester with " + TEST_COMPANY[i])
            self.test(model_tfnn, x, y, 0, "TensorFlow Neural Network")
            print("-" * 60)

            # Test SVM
            print("# SVM Tester with " + TEST_COMPANY[i])
            self.test(model_svm, x, discrete_y, 1)
            print("-" * 60)

            # Test multi-layer nueral network
            print("# Neural Network Tester with " + TEST_COMPANY[i])
            self.test(model_nn, x, discrete_y, 1)
            print("-" * 60)