I am a newbie in machine learning topic and I need to create model from music data.

It contains features of the songs but it is not labeled. How can I create a model from that ?

Do I need to use unsupervised learning algorithms ? Which one is better or is it better if I use deep learning methods.

Data is looking like this:

      danceability  loudness  valence  energy  instrumentalness  acousticness  
136         0.795    -8.334    0.578   0.409          0.000000      0.684000   
442         0.502    -4.556    0.720   0.912          0.000173      0.000025   
92          0.713   -14.590    0.560   0.258          0.006060      0.877000   
67          0.505   -14.951    0.723   0.782          0.930000      0.921000   
127         0.470    -6.740    0.490   0.809          0.006710      0.272000 
  • 2
    $\begingroup$ I don't think you have a clue what you need to do. What is your objective? $\endgroup$ – user2974951 Dec 11 '18 at 12:11
  • $\begingroup$ I need to guess if the new songs are fit to user's taste with the song feature data I got. $\endgroup$ – E. Dem Dec 11 '18 at 12:18
  • $\begingroup$ If you have little knowledge on the matter then this is going to be a hit and miss kind of operation. If your dataset is not labeled then you must use unsupervised learning, so something like cluster analysis. $\endgroup$ – user2974951 Dec 11 '18 at 12:52
  • $\begingroup$ Probably you're talking about content-based recommender system - using it you build a model which is able to calculate distance between songs using their properties, and recommend to users (new) songs which are 'close' to those they listened. $\endgroup$ – mikalai Dec 12 '18 at 20:07
  • $\begingroup$ Thank you for explaining, I already have a set of songs to guess which are close to user's taste. $\endgroup$ – E. Dem Dec 13 '18 at 8:23

If the problem you are trying to solve is "I need to guess if the new songs are fit to user's taste with the song feature data I got."

AND if you have some indication what user has liked / listened-to in past; you can use "Recommendation Engine" approach.

Example : https://tampub.uta.fi/bitstream/handle/10024/101198/GRADU-1495623946.pdf?sequence=1

It works on the basis of "likeness"; E.g.:

  1. Assumption : All Hip-Hop songs have some common pattern among the features like energy , loudness etc.
  2. If a user likes Hip-Hop (can be judged from user's history based on features of songs), then other Hip-Hop songs can be suggested
| improve this answer | |

You only have information regarding the features of the data, without any labels, so by definition you are dealing with unsupervised learning.

You can probably use some clustering algorithm (mean-shift, k-means, etc.) to divide the data into groups and then use nearest neighbor to predict which is the closest new song you can suggest to the user based on his preferences, or use some user-specific threshold to determine how likely a new song fit to user's taste (1/distance of new song from user's mean is the probability and his threshold can be related to his variance).

| improve this answer | |

You do not need machine learning at all.

There is nothing to learn from, according to your vague description.

What you want to do is probably similarity search. Given the users favorite songs, find similar songs. No learning there.

| improve this answer | |
  • $\begingroup$ I think I didn't describe it very well. I need to create a model of the user with the old data, then the model needs to decide which songs are good for the user's taste between the new set of songs. $\endgroup$ – E. Dem Dec 12 '18 at 17:46
  • $\begingroup$ Don't call it a "model", but call it a query. It's similarity search, no learning necessary. $\endgroup$ – Has QUIT--Anony-Mousse Dec 13 '18 at 19:41
  • $\begingroup$ Okay I will check it, thank you for mentioning, it's the first time I heared it. $\endgroup$ – E. Dem Dec 14 '18 at 12:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.