# data[].attributes.body
Machine learning is all about giving computers the ability to learn from data, they can make decisions or predictions without us having to spell everything out for them. Instead of traditional programming, where we tell the computer exactly what to do, machine learning lets the computer find patterns in the data and figure things out for itself. It's like teaching a computer to learn and solve problems independently.

# data[].attributes.body
Content-based filtering suggests items similar to what you've liked before. For example, if you enjoy romance movies, it recommends more romance movies by looking for common features like love stories and actors. It finds things you enjoy and recommends more like them.

Collaborative filtering is a way to get recommendations by looking at people with similar tastes. It finds users who have similar interests to you and suggests things they've enjoyed. By using the combined preferences of these like-minded people, it gives you recommendations that are tailored to your individual taste.

# data[].attributes.body
In the first Colab, the whole class rated the same 23 songs. Each song had different attributes like tempo, lyrics, energy, etc. The purpose of this was so that the program could recognize what attributes we liked and could recommend songs based off our ratings.

# data[].attributes.body
My top 3 attributes were tempo, acousticness, and DurationMs. I chose these attributes because they were most apparent in the songs I rated the highest.

# data[].attributes.body
To determine a good complexity level you must evaluate both the training and testing data. A simple complexity may not fit the training data patterns leading to a high error, but if you have too complex of a model it might learn the training data too well and can lead to a poor performance with the testing data. To find the best fit complexity level you must analyze both training and testing percent errors, you want to find the complexity level that has low error for both but also close together. To do this you should change the complexity one level at a time and check these features to result in the best graphs.

# data[].attributes.body
This is my model with a complexity level of 3 for one attribute. Because there is only one attribute it does not predict how I would rate a song that well. The more attributes added the better it will get.

# data[].attributes.body
This is my model with a complexity level of 3 for two attributes. This model predicted my song rating better than the first model because it had more info and data to work with. As said previously the more data and info provided leads to better predictions.

# data[].attributes.body
Although I can not find Colab 5 so I am unable to get the picture of the class ratings here is what I remember. Caden Lopez had the most similar ratings as me. This means when we rated the songs we have similar answers which would result in our predicted song ratings to be similar.

# data[].attributes.body
Above is a picture of what my model predicted vs. my actual ratings. My actual ratings and my predicted ratings are actually very similar. The program did a really good job at predicting. There are some ratings that are a little surprising and are farther off than others, this may have happened because I rated it differently than all the other songs. This shows me that collaborative filtering is pretty accurate but has its errors. One thing I might change next time is to rate even more songs and maybe even add a 4th attribute to help give the program even more data and info to work with.

# data[].attributes.body
To conclude, I think machine learning is an amazing tool that is incorporated in our daily lives. The general public should really learn more about it, especially because it is used by almost everyone. It is important to know because it affects so many social media apps like Tik Tok, Pinterest, Spotify, YouTube, etc. The general public should know that every click and like affects what those apps will later recommend. Some downsides and biases can be found. For example lets say you have a wide variety of music taste. This could be a problem because if you like listening to calm/sad songs one day and then upbeat/happy songs the next day the program might have trouble recommending you songs. Overall, machine learning has its struggles but it is a very useful tool people should be educated on.