[Spotify Data Analysis/스포티파이 데이터 분석] AWS MySQL top tracks의 유사도 분석 (12)

2020. 3. 23. 22:55Data Science/Data Analysis

우선 related_artists 테이블 하나 만듭니다.

 

 

CREATE TABLE related_artists (artist_id VARCHAR(255), y_artist VARCHAR(255), distance FLOAT, PRIMARY KEY(artist_id, y_artist)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

만든 테이블에 top_tracks와 audio_features를 join 합니다. 조인한 다음 유클리드 거리를 구해서 곡의 유사도를 구분 합니다.

 

구분한 값들을 related_artists 테이블에 insert 합니다.

 

 

가장 유사도가 높은(유클리드 거리값이 적은) 상위 20개를 select 해봅니다.

select p1.name, p2.name, p1.url, p2.url, p2.distance from artists p1 join (select t1.name, t1.url, t2.y_artist, t2.distance from artists t1 join related_artists t2 on t2.artist_id = t1.id) p2 on p2.y_artist=p1.id where distance != 0 order by p2.distance asc limit 20;

 

1 2 3 4 5 6 7 ··· 16