def fit_arima(all_data, col_name, test_lines_num, classification, ord=[2, 1, 2]): data = pd.DataFrame() data["Date"] = pd.date_range(start='1/1/1979', periods=len(all_data), freq='D') data[col_name] = all_data[col_name] data = data.set_index('Date') model = ARIMA(data[:-test_lines_num], order=(ord[0], ord[1], ord[2])) result = model.fit() print(result.summary()) test = data.tail(test_lines_num) test["prediction"] = result.forecast(test_lines_num)[0] if classification: test.to_csv("arima_results.csv") return fe.generate_y(test, "prediction") return test["prediction"]
data = pd.read_csv("data/DJI_1d_10y_signal.csv") data = data.drop(["Date"], axis=1) data = data.ffill(axis=0) print(data) xTrain, xTest, yTrain, yTest = fe.ordered_train_test_split(data, "Signal") results = pd.DataFrame() results["true_y"] = yTest ada = md.fit_ada_boost(xTrain, yTrain, True) results["prediction"] = ada.predict(xTest) print("Adaboost Classifier") print(results["prediction"]) print(md.get_results(results["true_y"], fe.generate_y(results, "prediction"))) svm = md.fit_SVM(xTrain, yTrain) results["prediction"] = svm.predict(xTest) print("SVM Classifier") print(md.get_results(results["true_y"], results["prediction"])) print('Accuracy of the SVM on test set: {:.3f}'.format(svm.score(xTest, yTest))) knn = md.fit_KNN(xTrain, yTrain, True) results["prediction"] = knn.predict(xTest) print("KNN") print(md.get_results(results["true_y"], results["prediction"])) print('Accuracy of the KNN on test set: {:.3f}'.format(knn.score(xTest, yTest)))