Reviews

 

Grad School Duy Truong Grad School Duy Truong

CS-7646 | Machine Learning for Trading (ML4T) | Summer 2022

August marks the end of my second semester at Georgia Tech. I decided to take CS-7646 Machine Learning for Trading (ML4T) for my Summer 2022 course due to it’s positive reviews and to get experience with Machine Learning. The course was created by Professor Tucker Balch, and instructed by Professor David Joyner.

CS-7646 is a mix of lessons related to investment trading topics, as well as machine learning algorithms. The course is project heavy, and includes a multiple choice midterm and final. Since summer is a condensed semester, a project was due every week, which put constant strain on completing the assignments on time. Overall, the topics of finance and how we could use machine learning concepts to determine investment strategies were interesting and were good primers to introductory topics in both fields.

Finance topics include stock market analysis (technical analysis vs fundamental analysis), market indicator evaluations(bollinger bands, simple moving average, rate of change, etc), market theory and concepts (efficient market hypothesis), and more. Machine Learning topics included linear regression and categorical learners, optimizing, implementing, and evaluation of learners such as decision trees, random forests, and bagging.

The course projects were written in Python, with heavy use of NumPy and Pandas libraries to deal with large datasets of financial stock data.

Below are brief summaries of the 8 projects we completed in this course.

Projects

Project 1: Martingale

Conduct probabilistic experiments and write code to analyze the Martingale betting strategy involving an American Roulette Wheel.

Project 2: Optimize Something

Use python to optimize a theoretical financial investment portfolio. Find the most optimal allocation of investments to maximize gains, and evaluate portfolio metrics including mean, standard deviation, cumulative returns, sharpe ratio, and more.

Project 3: Assess Learners

Implement and evaluate a decision tree learner, random tree learner, and ensemble learner using bagging.

Project 4: Defeat Learners

Create a dataset that is optimized for linear regression learner, and a decision tree learner.

Project 5: Marketsim

Simulate market trades and return portfolio values and metrics over time.

Project 6: Manual Strategy

Create a strategy manually without learners that would give an optimally max portfolio returns. Develop and research technical indicators that can be used along with a learner to make buying decisions.

Project 7: Q Learning Robot

Implement a model free reinforcement learning algorithm called Q-Learning. Implement a Q-Learner with model based Dyna Q to solve a robot navigation problem.

Project 8: Strategy Learner

Use indicators along with learner of choice to create a trading strategy, and evaluate portfolio performance against a manually traded strategy.

Summary

In summary, ML4T at times felt like a grind, with a project or test due every week. Some projects had a Report component which added additional time outside of coding. In terms of learning opportunities, I came out of the class with financial and machine learning literacy I did not have going into the class. I have a stronger understanding of common market terms, and an introductory understanding of regression and categorical learners, how to implement them, and how to evaluate their performance. I do not feel as if I can implement my current knowledge of the stock market into a productive strategy that would maximize gains, as learning these new topics exposed the nuances necessary to understand the market and the multitude of indicators investors track in order to make business decisions.

I am happy to have had more opportunities to practice coding in Python, and using NumPy and Pandas.

Read More
Grad School Duy Truong Grad School Duy Truong

Georgia Institute of Technology

 

Why grad school?

Navigating my early career after undergrad has been a relentless and confusing journey. The beginning of my professional career was met with uncertainty and anxious thoughts of whether my degree in Bioengineering was the right choice. I spent the time exploring various professions that I thought my degree prepared me for, only to realize I didn’t enjoy working in research (molecular biology) laboratories very much. I had to reevaluate my career trajectory and examine why it wasn’t aligned with the opportunities I had hoped my Bioengineering degree would provide. After learning and gaining working experience in web development, I have come to the conclusion that I enjoy using my creativity to program solutions with code. Though I took courses in computer science as part of my undergraduate program, I still have a lot to learn. I decided to pursue a master’s degree in computer science to satisfy my curiosity to learn more about this field and to pick up useful tools along the way. I matriculated at Georgia Tech in Spring 2022.

Why Georgia Tech?

Online Distributed Learning

Aside from being a renown university for Computer Science, I heavily considered Georgia Institute of Technology for being a leader in online distributed learning. One of the criteria I had when considering graduate schools was the possibility of online learning. I wanted an accredited program where I could pursue a degree without halting my industry growth. I also have bills to pay 🙃. In the past, online distributed learning has been met with jokes of being ‘less than’ when compared to on campus learning. This view is a misconception, but may have been propagated by the proliferation of for-profit, unaccredited institutions. With the pandemic and the widespread roll out of ‘Zoom’ school, I hope people could see the utility and legitimacy of online distributed learning. Since 2014, the online master's of computer science program at Georgia Tech has grown a positive reputation with excellent reviews. I appreciate that the online course selection is expansive, and is a direct equivalent of on-campus courses, taught by the same campus faculty.

Cost

Another big factor in my decision was cost. I had also considered Johns Hopkins University’s program, as well as University of Pennsylvania’s program, but in addition to poor reviews, the price for tuition was shocking. After being scarred from paying off my undergraduate tuition, I was in no hurry to put myself back in debt with student loans. Johns Hopkins and UPenn’s programs can run you $40,000 - $60,000, roughly $4,000 - $5,000 per course. This value is ridiculous compared to Georgia Tech’s tuition of $7,000 - $8,000 for the entire program!

Community

Finally, the last factor I heavily considered when choosing a graduate program was community and resources. Georgia Tech has a large and growing network of alumni who have completed the online master’s program, as well as an active reddit community and slack channel. Since this program is online, having a sense of community and camaraderie among my peers was important. After finishing my first semester, I am happy to have chosen Georgia Tech. The support from TA’s and my peers on Slack / reddit have been a large component of my success and motivation to continue.

Application Process

The application was a straight forward process. I gathered all required documents, letters, and statements to submit with my application by the deadline. No GRE was required. The decision was returned a few weeks after the deadline.

Requirements

  • Undergraduate degree in computer science or related field

  • Cumulative GPA of 3.0 or higher

  • Transcripts

  • Three letters of recommendation

  • Statement of Purpose

  • Supplemental Objectives Statement

Closing Thoughts

The program requires completion of 10 courses of your choosing with specializations offered for Computational Perception & Robotics, Computing Systems, Interactive Intelligence, and Machine Learning. I have completed my first semester taking CS 7638 - Robotics: AI Techniques and have had a wonderful time. I have thoroughly enjoyed my first semester and am excited to continue through the Computing Systems specialization. Individual course reviews and summary posts will come.

 

Go Yellow Jackets! 😁

Read More