Git Product home page Git Product logo

genre_classification's People

Contributors

jimmychen623 avatar sz244 avatar yangdanny97 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

yangdanny97

genre_classification's Issues

Final Report Review (lz469)

The team aims to train a classifier to predict the genre of a song given the musical data. The data they used include a 300GB unlabeled dataset as well as the labeled Allmusic Top Genre Dataset.

Three good things:

  1. By looking at the MAGD labels distribution, your team noticed the imbalance in the dataset. You solved the problem by taking 4000 songs from each genre class to create a balanced dataset.
  2. You provided detailed explanations on how you made your decisions (eg. like how to choose the dataset to run the exploratory visualizations), it made the report easy to follow. Also, you identified that the key feature was categorical and used one hot encoding to translate the feature value to vector columns.
  3. You tried both multi-class classifiers and binary classifiers, training with a great variety of models. You applied the methods we introduced in class like PCA, huber regression, SVM and random forest.

Three things to improve:

  1. You can include more visualization plots, especially the ones directly contribute to your decision making. You could also draw the features correlation plot to bring the reader a clearer visualization on their relatively independent relationship.
  2. For the missing value part, you replaced any N/A with 0. I think you could also try the mean or use the low rank model to fill in the value since the missing percentage is not high.
  3. I believe the model performance will improve if you can increase the training dataset size. 8000 songs seem not enough.

You really did a lot of work. Your interpretation and future steps are quite intuitive. Good job!

Peer review from Xiaodan Fang

Project Summary

This study aims at developing a model to automatically classify songs into different genres.

Positive aspects of this project:

  1. The topic of this study is very interesting and has a broad application in streaming service.
  2. It is very brave of you to choose such a big data set.
  3. Both the classification problem and the algorithm you want to use are something new compared to the other groups, but this also raise some concerns.

Concerns and suggestions on improvements:

  1. Since it is a classification problem, a main concern is that it might not be very relevant with the unsupervised learning models we covered in this class. Maybe you can try to explore this data set from a different angle and incorporate some models we learn in this class.
  2. The data set is very big. You might need to think about how to handle it efficiently.
  3. Since each song has nearly 50 attributes, you may need to think about what are the main factors and what are the correlations among them.

Peer review from Ben Edwards

The project seeks to classify songs into genres and subgenres based upon meta data about the songs.
The classifier will be trained and tested using data from the Million Song Dataset.

Strengths
1. The dataset is very expansive and has quite a lot of fields that can be studied about each song.
2. The proposed approach is explained in detail and broken down into understandable, chronoligical steps
3. The approach section contains information about how the project could be expanded upon (if need be).

Areas to Improve
1. The dataset contains the artist and tags associated with the artist on two different music sites (musicbrainz.org and playme.com). If these tags contained genres would it be possible for your model to "cheat" and use these genres directly
2. It seems somewhat unlikely that someone would have so much metadata about a song and not have genre information. Maybe the model should only use the metadata related to the sound file itself?
3. If the application of this is to music streaming sites as stated in the motives section, couldn't the artist who created or uploaded the music provide genre information when the music is uploaded?

Final Review by Hao

This is an excellent project! In the report, you guys satisfied all the condition of the class name of 'big messy data'. The tools you use are very comprehensive including supervise learning and unsupervised learning. Although some of the methods turn out not to be very handy, you guys list them all with each performance.

No additional words. Very impressive!

Peer Review from Alex Downey

Project Summary

The Genre Classification project is attempting to predict the genre of a song from its metadata. The dataset the team is using is a million song set from Columbia University. The motive of the group is to improve the current recommendation system for what song should play next on a streaming service. 

Positive Attributes of the Project

  1. The team has done a great job identifying what their motivation is and the dataset is a well-documented dataset from Columbia. Numerous papers and research into the dataset have been published since it was released. This should help the team understand what they are looking at and how to work with it.
  2. The dataset itself contains a copious amount of data which should be more than enough to help predict the genre. They linked to a site that contained the genre labels, which it seemed to have several resources on how to classify genres.
  3. The initial approach the team plans to take is thought-out and well defined. If the team can find specific features that make a song popular, then they could help artists and record labels improve the efficiency of developing new popular music.

Areas for improvement

  1. The amount of data the team plans to examine is quite large and contains a huge number of fields. Running exploratory analysis is a smart way to go, and perhaps only looking at a portion of the data, to begin with. This team is working a huge amount of complex and messy data; they should be careful how large of a task they take on and be aware of what is possible to accomplish in what’s left of the semester.
  2. This seems to be a very ambitious project to improve the current recommendation systems of streaming services. I was slightly unsure of how the team plans to improve these systems by classifying songs into genres; perhaps the objective statement could be a bit more explicit.
  3. Due to the large scope of the project objective and motivation perhaps focusing on a few concrete goals at first and expand to other goals after you arrive at interesting conclusions and analysis.

Midterm Peer Review

The project is to predict the genre of a song from properties and metadata of the song. The dataset being used is a set of properties for 1 million songs combined with genre tags for many of them. The results of this project could be useful in different ways to electronic musicians and online music platforms. Overall, I like this project and I think some really interesting results are possible.

I'm glad you've gone through the trouble of quantitatively analyzing your features to find out which ones might be differentiating between genres. Nice job.

I have a few comments on feature engineering. I like how you broke the key into 11 binary features when you realized it was more nominal than ordinal. However, it seems like the primary model type you tested so far is decision trees and forests, but for those you can simply have an 11-way branch rather than splitting into tons of binary features. Splitting into binary features makes more sense to me if you are doing something like linear regression or neural networks that actually relies on the numbers. If you do end up going that route, I think the binary output for each genre is better than the single_genre feature for the same reason that you split up the key into individual features rather than one single feature. And then your output can be interpreted as a one-hot encoding of the single best genre.

One comment about your future directions is your mention of RNNs. I see why you might want to use them, but I think I would use them as a last resort. They are quite computationally intensive to train, so you could make a much more complex decision tree or linear regression model for the same computational expense as training a simple RNN.

One other thing I would keep in mind going forward is who might want to use your final model and which features they have easy access too. I don't have too much music knowledge, and it seems like all of your features can be automatically extracted from songs given your dataset, but just a note that whoever might want to use your model will need to be able to extract all of your input feature from the song that they want to classify.

If you have any comments or questions about what I've said, feel free to comment on this Github issue.

Final Peer Review (jz552)

The objective of the project is to train a classifier for predicting the genre of a song given musical data about the song. They also hope to understand the subtle differences that underlie different genres of music.
I like the fact that the team has used almost all of the classification techniques in class and wrote about the result. I also like that the team has a very detailed description of the data in the final report. Last but not least, the graphs in the final report looks great and they help readers understand the result.
I think the team has a good conclusion paragraph that shows even though the result is not optimal, there is value in the project's result. I think the project can be used as a basis for more complex models.

Mid-review

The overall goal is to train a classifier to predict the genre of a song based on the given metadata about the song. If done well, this can pick up on better music selection for people. I think its a great topic. It is very modern and something that companies such as Pandora and Spotify would be interested in. I liked that you provided lot of detail on how you cleaned/modified your dataset. I can really understand/get the big picture of this project. This group seems to also know where they want to go. There seems to be a lot of different models that you want to keep playing with which is great.

I think you can improve on visuals. It is not a good idea to cram all of your visuals to half a page in one side of the page. They are too small so really try to use half a page at-least for two graphs. You should also try to expand more on how some models will be better than others. I agree with the other peer reviews that you may want to expand on how you tested the models exactly. Especially because Udell emphasized this greatly in the class.

Overall Great work, excited to see the end results.

Midterm Report Peer Review by cct65

The objective of the project is to classify songs into genres based upon meta data about the songs. I think it is great as it could support streaming services company to provide private suggestion for each user.

I really like how you chose your features, there is insightful thought given to how you selected and transformed your variables, especially for the key feature that you handled just right. I also really appreciate your data visualizations; it gives a more concrete view of how your data are distributed and their specific characteristics. It is a good thing that you also implemented random forest for your model even if your results were not what we could expect, but it was a good idea to try it!

I have a few constructive feedbacks to make. First of all be careful with your plots, do not forget to include title and label so that it can clear it up for your readers. Then, even if I really like how you handled the feature transformation of the variable key, it was not that important as you did not perform any kind of linear regression or model other than tree-related models. Still it can be very useful if you decide to do so in the future. When you talk about accuracy you should provide more information about your train and test set that helped you find the numbers you put in the report.

It seems like you have many ideas for the future but be careful as you are planning on implementing methods that we have not seen during class, I hope you will not struggle with them. However I think it is a bold choice and I appreciate it.

Overall I think that it is a really interesting project, I can’t wait to see your final results!

Peer review from Zheng Feng

The purpose of this project is to determine the genre of a specific song based on some features of the song’s information. And all these features are determined by the model as the most useful features for the song’s classification.

What I like about this project:

  1. I think the topic is very interesting and practical. For example, I use Net Ease Music for listening but sometimes the classification of the song is very subjective and messy. So I think this project may prove this kind of situation of classification used in music apps.
  2. The dataset is big enough to get a convincing result.
  3. The subject will also look into what kind of genre is most popular. I think this is a very promising way for music apps to decide which kind of songs they will put on the homepage of the app for users.

Improvements and suggestions:

  1. I think some music apps have already done some similar algorithms to do this kind of job. So maybe you could explain more exactly how you will improve these algorithms and what the advantage of your model is.
  2. The dataset is very big so I think the workload is pretty big for your team. Maybe you could decrease the workload by randomly selecting songs from the previous dataset to create a new but smaller dataset.
  3. In your proposal, you say that you will visualize the data of the song but I think it is very difficult to visualize songs. Maybe you should think about ways of visualizing songs more exactly.

Midterm Review from Antong Su

This project trains a classifier to predict the genre of a song based on the information of a song. By using such a classifier, we can have better understanding of subtle differences existing among different types of music and streaming service can have better guide to automatically tag music uploaded by users.

This is a very interesting topic, especially to me, who is very interested in music and have a little background in this area. If this model is finally built up, the application will be very broad and online music platform is willing to use this. I like the progress you have made so far. Choosing and transforming features and then testing different models can let you discover which fits the training data the best. It also shows your understanding to the data set very well. You have brought up many new ideas in future approaches, which shows clearly you know how to proceed for the next step. I am looking forward to seeing your progress for the next step.

I also have some suggestions about the report. The data visualization can be improved. I can barely see the graphs because they are very small and some many genres are sticking together. In the final report, I hope they can be displayed well and everyone can understand directly from what they see. As we know the data set you use is from a huge pool of data, which is hard to represent everything. I am not sure whether the data set you use to train is biased or not. I am very curious about the idea of using NLP because it's something far beyond I can come up with. It's possible to use that but I am not sure under the current situation, you have time to do that. Considering the lyrics will make the whole thing much more complicated. It might even make the model less accurate. But it's still worth trying if you have additional time.

Final Report Review (ldp54)

This report was focused on classifying song genres given musical data about the song. The project used a 300GB dataset from the Million Song Dataset. The project has clear benefits of improving music recommendation engines such as Spotify and Pandora. First, I liked that this group put a lot of effort in analyzing the data. The group found that there was a large class imbalance, which would have skewed the predictive power of their final classifier, and remedied this by taking 4000 songs from each genre. The report was also very clear with the feature descriptions, which helped me get a much better sense of the data they were working with. Second, the group also experimented with a large number of different models- both covered and not covered in class.

Some things were this group could improve it that while the group covered an impressive number of models, it would have been nice to see more tuning/exploration within each model. For example, in Random Forest, the report only mentioned varying the number of trees to find the optimal Random Forest model. However, they could have experimented with maximum depth in each tree (in relation to RF) and the number of features to consider when looking for the best split. Also their chose to use CNN was interesting as CNN architecture is optimized to classify image data. This may have been why the performance was not as high as other models tested. Overall, this was a well-written and interesting report with practical ways to apply the model in the future when the classification accuracy is increased.

Midterm Project Review by Anilkumar Vadali

This report delved into a very interesting and neat project that focused on developing a classifier that would be able to label a song into one of 13 different genres based on many different features including tempo, duration, loudness, etc. As the group mentioned, I believe that this project could be very useful to online music platforms such as Spotify, Pandora, and possibly Youtube, in helping recommend certain types of music to people who listen to a certain genre a lot. The data set that the group is very large and comes from the Million Data Set Challenge; the genre labels come from two other data sets that correspond to the MSD dataset. I believe that the group made a wise choice in utilizing a random and uniformly distributed smaller part of dataset rather than the entire dataset in order to make the project more scalable, but possible still be able to create a good predictive model.

There were many positives with regards to the process the group used in developing the project so far. One specific area that I really thought was well done was the feature engineering on the data set. I specifically thought the handling of the genre labels and overall, the categorical features, was very interesting and handled appropriately by considering two valid different approaches. This was a similar problem my group faced with regards to movies and I think we considered a similar approach. The only concern I have is that by selecting the first genre listed, that you are not only selecting the genre that comes alphabetically first, or based on some basic list order. Are the genres sorted in anyway and is there a way you could choose the genre based on information on how much a certain song is 'pop' or is 'rock' compared to the other genres listed? I am not sure if this will make a large difference in the final result, but it might be an interesting experiment. You may want to try cross validation to see which model fits better when a certain song is one genre compared to another genre. Another positive aspect of your project was the description of deleting the extraneous features and keeping the relevant features. I think it was very well explained and illustrated the reasoning behind your choices clearly. Finally, I think that exploring many different models was a significant advantage of the report as it illustrates how the data may be modeled and predicted based on different algorithms we have learned in class. The results help make the final algorithm decision for the final project much more easier and accurate.

One important aspect that could be improved would be a more detailed information on how the two datasets regarding the genre labels were used or combined. Specifically, you mentioned how the first genre dataset was utilized in the label generation, but I was not quire clear on how the second genre dataset was used. Were the features in each dataset similar, or were they different and you combined the datasets together? Additionally, though, testing on many different models is generally very good, I think that putting more detail on how you tested each model could be more helpful in understanding your results even more. Specifically, I think that describing how you split the data into train and testing data for each model, if possible., would illustrate the reasoning behind the error behind each model. As you mentioned, I think going into more detail about k-fold cross-validation could help as well. Finally, as others have mentioned, I believe that the plots you provided do illustrate trends, but could use some more aesthetic formatting that helps the reader understand what you are trying to illustrating.

Overall, I think you did a great job in exploring more models, and I think the results could be very intriguing!

Final Review (sc2886)

The project focuses on classifying songs into a particular genre given details of the song. I think the project is very interesting and relevant as it can greatly improve on the recommendation of songs on music streaming services like Spotify, which I personally use every day.

Things I like about the project:

  1. Overall I think it's a really good project. The way the team has gone through the steps are very logical and easily understandable to the reader.
  2. The team has tried varied models and also provided conclusions as to why or why not they perform well. It show's they clearly understand the subject well.

Things which can be improved:

  1. The team has done a good job in trying various models, but I would have liked to see error metrics for both training and validation sets to better understand the fit. Like for example in section 5.2.1, the team mentions that they found an interesting observation that models performed better when more features were used. But it is not clear if they came across this observation after trying out the model on the test or not since if they measured performance only with training set, it is an obvious result.
  2. Since they were getting varied results for each genre, I believe they could have tried using more data points or considereing more sub-genres using a different database since just 13 might not be sufficient. The team has rightly mentiond the latter point in one of their sections too.
  3. Could have included a final confidence interval for each model.

Also what if you had tried a PCA model for prediction? Do you think it would have outperformed the other models?

Overall, great work! Was interesting and I had a good time going through it.

Final Peer Review - mrl233

The goal of this project is to classify the genre of a song given musical data about the song. The team uses a very big, messy dataset consisting of song data and another dataset consisting of genre labels. The team uses many models and techniques from class to approach this problem.

Strengths:

  • The report itself is well formatted and well written.
  • I like that this is a practical problem to solve. Spotify is a service that I use daily, and their genre classification ability is a key value proposition to me.
  • I like that the team explicitly considers class imbalance as an issue. This is an important point, in order to avoid biasing the model.

Improvements:

  • Though they started with many songs in their dataset, the team subsampled in order to achieve class balance. It would be interesting to instead consider all the data available to them, and simply tune the class weights to effectively balance the classes.
  • The team tries a very wide variety of models and reports the test set accuracies for all of them. This limits the generalizability of their results (ala union bound and Hoeffding bound). It would be better to just test a promising few.
  • The team could use more summary statistics from the array data (section 4.2) such as various quantiles.

Peer Review from Kerou Gao

This project is proposed based on the background that streaming services provide relevant music suggestions to users. The data set includes many features of a song such as tempo, key, artist and genre. The goal is to classify the genre of a song.

I think it is a very interesting proposal.

  1. Directional Recommendation is popular this day with the technology of big data analysis. Effective recommendation can not only brings company more revenue but also improve user experience. Therefore, this project have valuable meaning.
  2. In the "Approach" section you described detailed step and method you are going to use, which shows your understanding of this data set.
  3. One of your goal is to explore what makes a song popular. Your finding would guide music business and artiest to produce more attractive songs.

Besides, I have several concerns about this project.

  1. According to your proposal, I am still not sure whether you define this problem as a supervised or unsupervised model. If this is a unsupervised problem, then what is the difference between "genre" in your data set and the "genre" you are going to classify. If this is a supervised problem, and I suppose genre is Y, then isn't the genre already determined when the song is posted?
  2. The goal for this project is to support streaming services company to provide private suggestion for each user. How do you plan to test whether your model is efficient? I suppose you are going to find some user's song list?
  3. Different people may have different preference of music. Some people may love both classical music and rock and roll. Is it possible to find a general rule to classify song that suitable for all users?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.