Cook, Alexander2014-10-012014-10-012014-10-01https://hdl.handle.net/11299/166529People make and lose vast sums of money every day on stock exchanges around the world. This research focused on developing a computer algorithm to build profitable portfolios, while taking into account transaction costs associated with trading stocks. The theory behind our algorithm is based on a subset of Machine Learning called Online Learning (Cesa-‐Bianchi and Lugosi 2006 ). Online Learning makes updated decisions as new information is provided. For our case, a new decision is made each day on what stocks to buy/sell based on transaction costs and the previous day’s stock performance. The Lazy Update part of our algorithm seeks to minimize the quantity of trading, since this leads to transaction costs being incurred. Our algorithm builds on prior work and dynamically learns which sectors to invest in and takes into account risk, which has not been considered before in the literature. Our Online Lazy Updates algorithm runs at a low level on choosing stocks within a sector, and at a high level on choosing the best sectors to invest in. We successfully establish our ability to be profitable with transaction costs on real-‐ world data.en-USSumma Cum LaudeComputer ScienceCollege of Science and EngineeringStock Portfolio Selection Using Two-Tiered Lazy UpdatesThesis or Dissertation