조금 사이가 비어 버렸습니다만, 3회 시리즈의 마지막입니다. Part 1 그럼 「The Beatles」의 가사의 감정 분석을, Part 2 그럼 「Queen」의 가사의 감정 분석을 해 보았습니다. 이번 Part 3에서는 단어 선택 분석(Term Selection)이라는 기능을 사용하여 두 밴드의 가사에 포함된 단어에서 어느 밴드의 곡인지를 예측하는 모델을 작성하여 각각의 밴드를 특징짓는다. 단어(키워드)를 살펴보겠습니다.
단어 선택 분석(Term Selection)이란?
JMP에서는 텍스트 탐색기(Text Explorer)의 플랫폼에 의해 텍스트 분석을 할 수 있지만, JMP Pro에서는 이 플랫폼의 옵션으로 단어 선택 분석(Term Selection)을 선택할 수 있습니다.

「단어 선택 분석」에서는, 응답 변수(Y)가 있을 때, 텍스트 분석에 의해 추출한 단어와, 응답 변수와의 관계를 모델링할 수 있어, 응답 변수를 설명하는 단어는 무엇입니까? 라는 것을 알아볼 수 있습니다.
이번 예에서는 아래와 같은 'The Beatles'과 'Queen'의 곡명, 가사를 하나로 정리한 데이터 테이블을 작성합니다.

이때 응답변수(Y), 예측변수(X)는 다음과 같습니다.
응답 변수 (Y) : "Band"(그 노래가 Beatles인지 Queen인지를 나누는 변수)
예측 변수 (X) : Lyrics에서 추출한 단어 그룹
리플레인을 고려해야 하는지 여부
예측 변수 (X)에 대해 좀 더 자세히 설명합니다.
텍스트에서 단어를 추출하면, 문서 단어 행렬(DTM; Document - Term Matrix) 라는 단어를 행렬 형식으로 정리할 수 있습니다.
예를 들어, 아래 그림 방법 A. 의 166행에 있는 Beatles의 곡 'You Like Me Too Much'의 가사에는 "know", "time", "just" 라는 단어가 (적어도 하나) 포함되어 있으므로 변수 "know Binary ", time Binary", "just Binary"에는 값으로 "1"을, "love", "oh", "yeah" 등의 단어는 포함되어 있지 않기 때문에, "love Binary", "oh Binary", "yeah Binary"는 값으로 "0"을 부여합니다.
방법 A. 2 값 (1/0)의 문서 단어 행렬

이런 식으로 단어를 추출하면 "데이터 행 x 단어 수" 행렬 (이 예에서 값은 1 또는 0)이 될 수 있으며 실제 예측 변수는이 문서 단어 행렬의 단어 그룹입니다.
위는 1/0 값으로 문서 단어 행렬을 구성했지만 다음 방법 B. 와 같이, 그 문서에 특정의 단어가 몇회 출현하는가와 같은 "빈도"로 구성하는 것도 생각할 수 있습니다.
방법 B. 단어 출현 빈도의 문서 단어 행렬

지금까지의 기사에서, 텍스트 분석에 있어서 가사는 리프레인(같은 단어를 몇번이나 반복 사용한다)의 영향이 큰 것을 말했습니다. 따라서 위의 방법 B와 같이 단어의 출현 빈도를 고려하면 리플레인의 영향을 크게받습니다.
그래서 모델링할 때는, 방법 A와 방법 B의 어느 쪽의 방법에서도 모델링 해 보고, 어느 모델이 좋은가를 비교합니다.
방법 A. 2치(1/0)의 문서 단어 행렬 ⇒ 리프레인의 영향을 받지 않는다
방법 B. 단어 출현 빈도의 문서 단어 행렬 ⇒ 리프레인의 영향을 받는
단어 선택 분석 보고서
위의 점을 근거로, 「단어 선택 분석」을 사용해 보겠습니다. 옵션 Term Selection을 선택하면 다음과 같은 설정 개요가 표시됩니다.

각 설정에 대해 자세히 알아보기
Choose Response Column : 응답 변수 (Y)를 지정합니다. 이 예에서는 Band(Beatles/Queen)입니다.
'Target Level' : 응답 변수의 이벤트 수준을 지정합니다. 여기에서는 "Queen"을 지정하고 Queen을 기준으로 생각하기로 합니다. Y는 Beatles, Queen의 두 값만 취하므로 Y에 이항 분포를 가정한 로지스틱 회귀의 모델을 적용합니다.
Model Settings : 모델링 방법과 검증 방법을 지정합니다. 디폴트에서는 추정법으로서 Elastic Net(탄성넷), 검증법으로서 AICc 로 지정되어 있으므로, 이 예에서는 디폴트 설정을 이용합니다.
"Term Settings" : 앞 절에서 설명한 문서 단어 행렬에 대해 어떤 방법을 사용할지 지정합니다. 기본적으로 Binary(1/0)입니다. 또한 문서 단어 행렬에서 사용할 단어의 최대 수를 지정할 수 있으며 기본적으로 400입니다. 즉, 추출되는 단어 중 빈도가 높은 상위 400 단어만을 예측 변수로 사용합니다.
오른쪽 상단의 실행 버튼을 클릭하면 지정한 설정에 대한 모델링 보고서가 표시됩니다.
아래 그림의 보고서 1에서 결과를 살펴 보겠습니다.
리포트 1 "A Hard Days Night"(Beatles): 올바르게 예측 가능

Elastic Net을 사용하여 로지스틱 회귀 모델의 변수 선택 결과를 표시합니다. 이 예에서는 400개의 예측 변수 중에서 예측에 도움이 되는 변수가 49개 선택되고 보고서 우측 상단에는 선택된 변수(Term)에 대한 회귀 계수(Coefficient)가 표시됩니다.
계수가 양수이면 오렌지색 막대, 음수이면 파란색 막대가 표시되지만 여기에서는 Queen을 이벤트 수준으로 지정하므로 양수가 클수록 Queen 수준 를 예측하는데 크게 기여하는 단어이며, 부의 값이 클수록 Beatles의 수준을 예측하는데 크게 기여하는 단어입니다.
보고서 왼쪽 하단에는 'A Hard Days Night'(Beatles 노래)의 가사에 대해 Beatles로 예측하는 데 기여하는 단어를 오렌지색, Queen로 예측하는 데 기여하는 단어가 파란색으로 그려져 있습니다. 가사에서는 "just", "give", "days" 와 Beatles에 기여하고 있는 단어가 많이 사용되고 있는 것을 알 수 있습니다. 그 때문에, 이 가사가 어느 밴드의 곡을 모른다고 해도, just", "give", "days"등이 사용되고 있기 때문에 Beatles의 곡이라고 예측할 수 있습니다.
좀 더 정확하게 말하자면, 이 가사는 Queen으로 예측할 확률, Beatles로 예측할 확률을 찾아 판단합니다. Queen의 예측 확률은 위에서 구한 로지스틱 회귀의 회귀 계수에서 Logist 함수( Logist(x) = 1/(1 + Exp(x)) )를 사용하여 다음 식으로 구할 수 있습니다.

모델링 보고서를 다시 게시하면 아래의 'Probability of Queen' 열에 각 악곡에 대해 해당 곡을 Queen으로 예측할 확률이 표시되며 'A Hard Days Night'의 경우 32.7%입니다.

역으로 Beatles로 예측될 확률은 100%에서 뺀 67.3%입니다. 이것보다는
A Hard Days Night의 가사에 포함 된 단어에서,
Queen의 곡이라고 예측할 확률: 32.7%
Beatles의 곡으로 예측할 확률: 67.3%
그래서 확률이 큰 Beatles의 곡으로 예측한다.
됩니다. 즉, 실제 값(실측값)과 예측된 값(예측값)이 일치합니다.
나중에 두 개의 노래에 대해 보고서를 살펴 보겠습니다 (보고서 2, 보고서 3).
보고서 2 "Bohemian Rhapsody"(Queen) : 올바르게 예측할 수 있음

Queen의 대표곡 'Bohemian Rhapsody'는 88.9%로 높은 확률로 Queen의 곡이라고 예측할 수 있습니다.
리포트 3 「Hey Jude」(Beatles): 실수로 "Queen"이라고 예측하고 있다

Beatles의 대표곡 'Hey Jude'는 56.3%의 확률로 Queen이라고 예측하고 있기 때문에 예측이 잘못되었습니다.
이와 같이 예측이 맞는 곡도 있고, 맞지 않는 곡도 있습니다. 예측 모델을 작성할 때, 실측과 예측이 다른 비율을 나타내는 오판별율(Misclassification Rate)은 예측 능력을 나타내는 지표로서 이용되고, 이 값이 작을수록 예측 능력이 높은 것을 나타냅니다.
모델 비교
앞 절에서는 문서 단어 행렬로 2값(1/0)을 사용하여 모델링했지만, 단어의 빈도를 사용하여 마찬가지로 모델링한 경우와 비교해 보면 어떻게 될까요?
단어 선택 분석에서는 'Summary' 보고서로 여러 모델을 적용할 때 다음과 같은 모델의 예측 능력을 비교하는 보고서를 표시합니다. Model 1은 2치(Binary), Model 2는 단어의 빈도(Frequency)일 때입니다.

검증 지표로 사용한 AICc, Generalized RSquare(일반화 R2승, 값이 큰 편이 좋다), AUC(곡면하 면적, 값이 큰 편이 좋다), Misclassification Rate(오판별율, 값이 작을수록 좋다) 를 보면 어떤 지표에서도 Model 1의 2치가 좋은 것을 알 수 있습니다.
이 결과로부터, 단어의 빈도를 설명 변수로 하는 것보다, 그 단어가 출현했는지(=1)/하지 않았는지(=0)를 설명 변수로 한 모델 쪽이, 예측 능력이 높은 것을 알 수 있습니다 .
요약
여기까지 설명한 「단어 선택 분석」의 결과를 요약합니다.
・곡의 가사에 포함되는 단어로부터, 그 곡은 Beatles인지 Queen인지를 예측하는 모델을 작성했다.
・설명 변수에 사용하는 문서 단어 행렬로서, 다음의 2 종류의 방법에 대해 모델링하고, 모델의 예측 능력을 비교했다.
방법 A. 가사에 해당하는 단어가 포함되어 있는지 여부를 나타냅니다 : 2 값
방법 B.가사에 해당하는 단어가 몇 번 나타나는지 표시: 빈도
⇒ 리프레인을 고려하지 않는다 방법 A(2치)의 예측 능력이 높은 것을 알았다. 그 때문에 이후, 방법 A로 모델링한 결과를 이용하였다.
· 예측에 큰 영향을 미치는 49개의 단어가 추출되었다. 이들 단어에 대해 추정된 회귀 계수를 바탕으로 각 곡의 예측 확률을 구하고, 예측되는 곡(예측치)과 실제 곡(실측치)을 구했는데, 오판별율은 8.4% 이었다. 다른 예측 능력을 나타내는 지표인 R2승이나 AUC의 값 모두 생각하면 좋은 예측 모델을 작성할 수 있었다고 생각된다.
⇒ 선택된 49개의 단어의 정보만으로 어느 곡인지를 91.6%의 정밀도로 맞출 수 있었다.
마지막으로, 선택된 49개의 단어(Term)와 그에 대한 회귀 계수(Coefficient)를 그래프 빌더로 그린 그림을 보여줍니다. 오렌지색이 Queen의 예측에 기여하는 단어, 하늘색이 Beatles의 예측에 기여하는 단어입니다.

양수 값이 가장 큰 "blow"는 Queen의 가사를 특징짓는 단어입니다. 실제로, 분석 대상으로 한 곡 중에서는, Queen의 다양한 곡에 blow가 사용되고 있습니다만, Beatles의 악곡에는 사용되고 있지 않기 때문에, 이 단어의 계수가 커지고 있는 것의 설명 붙일 수 있습니다.
본 기사가, 「단어 선택 분석」을 사용해 보는 계기가 되면 다행입니다.