Summary: | This project is the exploration of machine learning techniques on computational finance stock prediction application and the promising of utilizing high-performance computing power to improve the overall performance. On the financial aspect, a stock prediction application is developed using Support Vector Machine (SVM) as the principal methodology. Various techniques on machine learning are studied to improve the accuracy of the learning algorithms. Some of those approaches including data scaling, features selection, kernel functions, will be put into the experiments in order to determine the efficiency and accuracy of SVM. Performance is evaluated against different features in usage that points out open price and Exponential Moving Average (EMA) is a generally good factor for predicting stock price with relatively small Mean Squared Error (MSE) on regression, and high hit ratio on classification. The experiments also present the dependency of predictive output on data, where particular data such as Google’s stock price yields very low result with MSE greater than 20000 and hit ratio less than 60% on average. While Microsoft’s and Starbucks’s stocks prediction results produce much smaller MSE on regression and an average of 76% and 85% hit ratio respectively on classification.
After that, we aim to utilize the performance of massively parallel processing computing with modern Graphics Processing Unit (GPU) technology for general-purpose scientific and engineering applications. NVIDIA Compute Unified Device Architecture (CUDA) is chosen as the principle framework for developing parallel computer programs on GPU. A comparison of performance capability between the CPU and GPU version is carried out to demonstrate the advantages and potentiality of enforcing GPU computing on computational finance applications with speed up from ten to more than hundreds times. A number of available SVM libraries which have been implemented on CUDA platform will also be studied on their performances and capabilities of performing learning tasks.
|