Journal Reflection #2: Insights into your first ML project

Please use your reply to this blog post to detail the following:

  1. Please start with a full description of the nature of your first ML project.
  2. What was your primary motivation to explore the project you completed?
  3. Share some insights into what predictions you were able to make on the dataset you used for your project.
  4. What new skills did you pick up from this project? For example, had you used Jupyter Notebooks before? Did you encounter any weird bugs, twists, or turns in your dataset that caused issues? How did you resolve those issues?
  5. What types of conclusions can you derive from the images/graphs you’ve created with your project? If you didn’t create charts or graphs and instead explored things like Markov Chains, how much work do you think you need to do to further refine your project to make its output more realistic?
  6. Did you create any formulas to examine or rate the data you parsed?

Take the time to look through the project posts of your classmates. You don’t have to comment on the posts of your classmates, but if you want to give them praise or just comment on their project if you found it cool, please do.

This entry was posted in Uncategorized. Bookmark the permalink.

6 Responses to Journal Reflection #2: Insights into your first ML project

  1. Pieter Sauer says:

    1.) My first machine learning project predicted the 2024-2025 Premier League season in terms of where each Premier League team would finish in the 20 team table. I created a model that trained on Premier League matches over the last 25 years, and created feature values based on how important each factor was in determining the outcome of the game. After training, the model took the average team statistics (ex. team_shots, goals_for, goals_against) from a dataset, and simulated the 2024-2025 season for each team. After simulating the first few times, I realized that the best teams were only losing 2-4 games a season, so I included a randomization factor that distributed a teams average value by + or – 1.2 per game.

    P.S. I chose the 2024-2025 season so I could compare the values I generated to what actually happened, and also there was more data on the 2023 season than what had come out for the 2024 season.

    2.) Going into this class I already knew I wanted to have my first project be something related to a soccer predictor. When I took my first steps, I was kicking a ball and it still hasn’t left me. I love playing soccer, and I love watching it every Sunday morning as well. As a result, I thought it would be cool if I could accurately predict who was going to win the Premier League, and who was going to lose, so I did.

    3.) After I added the standard deviation value in my project to simulate the randomness of sports, the accuracy of my project increased a lot. I accurately predicted the 5 teams that would qualify for the Champions league, with Liverpool also winning the league ~80% of the time. I also was able to accurately predict the three teams to be relegated around ~90%. As for the middle places 6-17, the insights my model produced are a little less accurate, but it still got the total points very close to what actually happened in the 2024 season.

    4.) Yes I learned a lot from this project, both with the actual understanding of the content but also as life skills. I learned to have patience with code, and how often it’s a game of trial and error or creating debug methods to analyze what’s going wrong in your code. The biggest issue my dataset caused me was the naming of the teams. For some datasets and individual years within datasets, team names like Manchester United were sometimes “Man U”, “Manchester U”, “Man United”… This caused a lot of issues in the training and predicting side of my project because it thought each unique name was a unique team.

    5.) I created two graphs in my Machine Learning project and both gave me insights to how my model had trained. In the first bar chart, it showed the top 15 most important features that it had analyzed, and also included the numeric value for each of those features. The graph showed me two big things: 1.) In predicting soccer games, there are a lot of features that make an equally important impact. 2.) The offense features (shooting_accuracy and shots_on_target) are the highest features indicating that a stronger offense is more important than the defense. My other graph was a 3×3 grid that on the x-axis side had the results the model predicted (Away Win, Draw, Home Away) and on the y-axis side had the actual results (Away Win, Draw, Home Away). The graph essentially showed how many times it predicted a result right, or if it was wrong, what the actual result was.

    6.) I had to talk with flint for this question because I didn’t really know what it was asking, but it said while I had some formulas to parse data, I never had a formula that actually rated them.

  2. Natalie McWhorter says:

    My first machine learning project predicted formula 1 qualifying times. It used a dataset from kaggle to get historic data and then compared drivers against each other and themselves. I wanted to do this project because I am very interested in formula 1 and I thought it would be cool to predict how people would fare and compare it to what I thought myself. I was able to predict qualifying times pretty accurately. One problem was that the times that it was giving me were a little spread out. For example, the gap betwen 1 and 2o shouldn’t be 5 seconds. It should be 2-3 max. Formula one qualifying times are also so close in general that it may be hard to predict to a high degree of accuracy, but my program fared pretty well with a r^2 of 0.942. I had never used Jupyter notebooks before. I also had to learn how to organize my projects myself because there was no specific guidelines for this project. There were a lot of weird things going on in my project but just reading through my code and talking to flint helped resolve most of them. There were also a lot of python libraries that I had never used before that I had to learn about. My r^2 was pretty similar across learning models so I concluded that the type might not matter, but when i ran each one, the actual outputs were pretty different, which was interesting to look at. My charts helped me see where each model put emphasis and how I could refine my model to be more neutral or more biased. I didn’t really have a formula. My models were trained and they just kinda vibed it out i think.

  3. Emma Bernstein says:

    For my first machine learning project, I built a House Price Predictor using Python and a housing dataset from Kaggle. The goal of my project was to predict the selling price of a house based on its features like total square footage, neighborhood, number of rooms, year built, and overall quality. I made a visual representation to understand which factors have the biggest impact on house prices and created an interactive tool where a user could input a house’s details and instantly see an estimated price.

    I chose this project because I am interested in how data can help us make real-world decisions that people make in everyday life. Housing is something that affects everyone – whether it’s buying, selling, or even just understanding the market. On a more personal level, my old house flooded when I was little and my family had to start looking at other houses and eventually decided to build our own. Throughout this process I remember always hearing so many different terms I hadn’t heard of and so many different things my parents had to consider price wise for buying/building a house. When thinking of projects to do, I thought this would be the perfect opportunity to try and build a tool that makes the whole process easier and more data-driven.

    Using a Random Forest model, my project was able to predict house prices with quite good performance: R² Score: 0.895, RMSE: $28,364, and Prediction Accuracy: ~84.1%. With the interactive prediction tool I built, users can input specific features of a house and instantly get a predicted price range. For example, one test input produced a predicted price of $173,117 with a confidence range between $138,493 and $207,740. This kind of prediction could be useful for buyers, sellers, or real estate agents.

    This project helped me develop several new skills. I learned how to preprocess data, how to one-hot encode data, how to scale numerical features, and how to train a random forest model from scratch. My main challenge was having so many different features influencing a house price. It made the code very overwhelming. I solved this by creating an algorithm that calculated the top 15 features influencing house prices and just used those.

    I visualized the top 15 most important features influencing house prices, and the results showed me valuable insights. Features like Overall Quality, Total Square Footage, Neighborhood, and Year Built had the highest impact. This matches real-world real estate trends — location and building quality are typically the biggest price drivers.

    I did not create any formulas to examine or rate the data I parsed but I can hopefully do something in the future!

  4. Leonardo Colacito says:

    1: I created a ML model which would train itself on a dataset of past airport METAR reports and then use that training data to predict the next 12 hours of weather (flight categories) given the last 24.
    2: I’m very passionate about flying but absolutely hate how bad the available forecasters are, especially for airports without a manmade forecast (TAF). Weather is always going to be a key part of flying, whether I like it or not, so I figured that this project could yield both good results and help me learn more about what exactly makes the weather. Anything that can help forecast with better accuracy than the current systems is always good. Additionally, as I’m now working on my Instrument Rating, I need to look for good IFR days to practice on, and this model could help me with that.
    3: I was able to predict the flight category at the RDU airport for the next 12 hours with an 88%+ accuracy out to the 12-hour mark. My results were also mostly consistent, but sometimes slightly different to professional forecasters or automated forecast models.
    4: The biggest pain I encountered was formatting the data exactly the same way for both training and predicting. Small things, like the fact that the reports aren’t published exactly every hour, sometime’s there’s skipped or extra forecasts, strange encoded data (the whole METAR is itself an encoded string which you need to decode yourself, you can see an example online if you’re curious), and other annoyances. Making a library for data preprocessing ended up being the best solution and in and of itself was a skill I learned.
    5: The results are pretty good, with the hour 1 accuracy is 92.3% and the hour 12 accuracy is 88.3%. The dropoff is actually less than I had expected, only 4%, which is quite good. There’s a few features I could implement, like seasonal systems, implementing actual forecast data, etc, that I went over in my presentation. Overall, I was very happy with the accuracy of the model, considering that it was my first project and weather is notoriously hard to predict.
    6: I did not, instead I used the accuracy_score() function to determine the accuracy of the model.

  5. Valen Moore says:

    Please start with a full description of the nature of your first ML project.
    I predicted the coverage of NFL defenses and predicted what each defensive player would do based on their presnap movement. The project used Tensorflow with neural networks trained for individual player and team predictions.

    What was your primary motivation to explore the project you completed?
    I love football, and I also think defense is really cool (I’ve played defense in every sport I’ve ever played). I wanted to be able to be a more intelligent football fan so I could figure out why Bill Belicheck is so bad, and I thought this could be a cool project in general.

    Share some insights into what predictions you were able to make on the dataset you used for your project.
    I was able to predict offensive and defensive formation with really high accuracy (96-97%), and the offense formation accuracy was especially cool because it could predict the offensive formation without knowing where any of the players are. I was able to find deep safeties with ~92% accuracy and blitzers or man defenders with accuracy in the mid 80s to low 90s, depending on the type of defensive coverage (the model was much better at finding man defenders during cover-1 for some reason).

    What new skills did you pick up from this project? For example, had you used Jupyter Notebooks before? Did you encounter any weird bugs, twists, or turns in your dataset that caused issues? How did you resolve those issues?
    I had never really used Pandas before which was a new thing that was very helpful for storing the huge amounts of data in this dataset. I tried out a new way of defining Tensorflow models by designing a class that inherits from the Model class as well. The dataset was very well put-together and it did not take much data filtering to get bad data out. The only problem I ran into is that sometimes there were only 10 players on the field for some reason but that was easy to fix (just an if statement that skipped plays with invalid numbers of players) and a very small portion of the data. The biggest problem was that the dataset was really big, which I solved by deleting apps on my computer.

    What types of conclusions can you derive from the images/graphs you’ve created with your project? If you didn’t create charts or graphs and instead explored things like Markov Chains, how much work do you think you need to do to further refine your project to make its output more realistic?
    I think it is clear that defensive coverage is relatively easy to predict with machine learning but kind of hard to predict being a human. The blitzing/man defense is the biggest area of improvement for the model, but overall I found that the model was effective in terms of the predictions that it outputs.

    Did you create any formulas to examine or rate the data you parsed?
    I don’t think so. All of the labels were already provided in the dataset.

  6. Lance Hackman says:

    1. Please start with a full description of the nature of your first ML project.
    My project revolves around trying to predict the scansion of a given line of latin poetry. The type of poetry I used in this project was Dactylic Hexameter. How this poem works is that in each line there are 6 feet, and each foot is either a spondee or a dactyl. Spondees have two long syllables( — — ), and dactyls have a long syllable and then two shorts( — u u ). My project was to determine what the scansion was in two ways. The first method was predicting the individual syllables and then putting the pieces together to form a full 6 feet. The second method was to look at the entire line and catagoize it as one of the scansion possiblitiies(Ex: DSDDSS). As a bonus, I tried using this model to automate the answering of a website, Hexameter.co.

    2. What was your primary motivation to explore the project you completed?
    I had to do the rapid scan on Hexameter.co everyday, and my teacher was much better than me. So I thought it would be funny if I could write a program that could automatically answer for me. However when I tried to write a program last year without ML, it was very innacurate in the predictions, so I thought that adding some AI to the mix could help the accuracy. The results were… questionable.

    3. Share some insights into what predictions you were able to make on the dataset you used for your project.
    I realized that the data set I used was not good for making the model I wanted for two reasons. Firstly, the way the dataset split up the sentences and provided data about the syllables was different from how I extracted features from Hexameter.co, so the model didn’t really cross apply to my original purpose(it heavily prefered D over S because of how my Hexameter.co parser was set up). Second, the data did not use an even distrabution of types of patterns(i.e. there were much more DDDDDS as DSSSSD). This led my model to heavily prefer certain patterns over other, to the point that 2-3 patterns had 100% accuracy and the rest were <5%. A good representation of this is that when I used my training data to evaluate the model I would get 80% accuracy (because the porportions fit right), but with the testing data the accuracy dropped to 40% (and then later 15% I still don't know why I think evaluate_model got messed up).

    4. What new skills did you pick up from this project? For example, had you used Jupyter Notebooks before? Did you encounter any weird bugs, twists, or turns in your dataset that caused issues? How did you resolve those issues?
    I have never used python, so I learned a lot about python syntax. Also, because of how little of python and machine learning I knew, I had to use FlintAI a ton. I had to learn how to ask Flint the right questions, proof read Flint's code to ensure consistency, and keep Flitn on track. I also had a ton of issue pushing my project to Github, so I learned extensively about Git lsf, homebrew, and other trouble shooting activities. When it came to problems with my code, I mainly resolved them my plugging into Flint and praying. Most of what I learned was "trickle down learning", where some of the things I read, copy, and pasted stuck in my brain and made a little sense.

    5. What types of conclusions can you derive from the images/graphs you’ve created with your project? If you didn’t create charts or graphs and instead explored things like Markov Chains, how much work do you think you need to do to further refine your project to make its output more realistic?
    I once had visuals at some point, but they weren't very useful. I mainly just printed tables to my console. These were really helpful, because not only did I see my overal accuracy, but I also got to see the accuracy of each pattern, which helped me understand why my model wasn't being very accurate(the skewed data). Adding visuals could have been extremely useful, especially pie graphs for the confidence my model had for each predictions and why. I don't think it shouldn't take more than a few hours at most to implement those. I just spent to much time on my model itself I never had the time to implement the visuals.

    6. Did you create any formulas to examine or rate the data you parsed?
    I don't believe so. The evaluate_model.py was a last minute addition to the project so I would find out the accuracy of the model when I use testing data. I barely contributed to this section, and Flint did most of it. When reading over the generated code, I didn't notice any formulas.

Leave a Reply