Molybdenum의 개발기록

[Python] MachineLearning_SVD 본문

Python

[Python] MachineLearning_SVD

Molybdenum_j 2023. 3. 29. 09:42
  • 고유벡터 : 선형 변환이 일어난 후에도 방향이 변하지 않는 0이 아닌 벡터
  • 고윳값 : 고유벡터의 길이가 변하는 배수를 선형 변환의 그 고유 벡터에 대응하는 고윳값이라고 한다.
비음수 행렬 분해(NMF)

: 일반적으로 비음수 행렬 분해는 근사를 통해 이루어지지만 추가적인 조건이 더해지면 정확한 행렬 분해를 얻을 수 있다

- 비음수 행렬 분해는 일반적인 확률 모델인 다항 주성분 분석 기법과 동일시 될 수 있다.

- 비음수 행렬 분해는 완화된 형태의 k평균 알고리즘으로 동일시 할 수 있다. 이는 비음수 행렬 분해를 데이터 군집화에 사용하는 이론적 토대가 된다. 그러나 k-평균 알고리즘은 비음수라는 제약조건을 가지고 있지 않다는 차이가 있다.

 

    • 텍스트 마이닝 : 텍스트 마이닝에서 문서-용어 행렬은 문서에서 용어들의 가중치 정보를 담고 있다. 이 행렬은 비음수 행렬 분해를 이용하여 용어-요소 행렬과 요소-문서 행렬로 분해할 수 있다. 이 요소들은 문서의 내용으로부터 도출되고, 요소-문서 행렬은 관련 문서들의 정보 군집에 대한 정보를 담는다.
    • 스펙트럼 데이터 분석 : 비음수 행렬 분해는 스펙트럼 데이터 분석에 응용할 수 있다. 한 가지 예시로, 비음수 행렬은 우주 상의 물체와 파편을 구분짓는데 쓰였다.
    • 생물 정보 공학 : 비음수 행렬 분해는 유전자 발현 데이터를 그룹화하고, 군집된 데이터의 대표적인 유전자를 찾는데에 응용할 수 있다.
    • 인터넷 거리 예측 : 비음수 행렬 분해는 인터넷 상의 거리 예측에 응용할 수 있다. 예를 들어, N개의 호스트가 있다고 하자. 각각의 호스트 사이의 거리 정보는 N×N 행렬 안에 담을 수 있고, 이를 예측해 볼 수 있다.
TSNE(t-distributed Stochastic Neighbor Embedding)

: t-SNE는 데이터 포인트의 유사성을 확률로 변환한다. 원래 공간의 친화도는 가우시안 결합 확률로 표시되고 포함된 공간의 친화도는 스튜던트 t-분포로 표시된다. 이를 통해 t-SNE는 로컬 구조에 특히 민감할 수 있으며 기존 기술에 몇 가지 다른 이점이 있다.

- t-SNE는 계산 비용이 많이 들고 PCA가 몇 초 또는 몇 분 안에 완료되는 백 만개의 샘플 데이터 세트에서 몇 시간이 걸릴 수 있다는 단점이 있다.

 

유사도

- 코사인 유사도

: 코사인 유사도는 내적공간의 두 벡터 간의 코사인 값을 이용하여 측정된 벡터간의 유사한 정도를 의미한다

텍스트 마이닝 분야에서, 단어 하나하나는 각각의 차원을 구성하고 문서는 각 단어가 문서에 나타나는 회수로 표현되는 벡터값을 가진다

 

- 유클리드 거리

: 유클리드 거리는 두 점 사이의 거리를 계산할 때 흔히 쓰는 방법이다. 이 거리를 사용하여 유클리드 공간을 정의할 수 있으며 이 거리에 대응하는 노름을 유클리드 노름이라고 부른다


- 맨해튼 거리

: 맨해튼 거리(혹은 택시 거리, L, 거리, 시가지 거리)는 유클리드 기하학의 거리 공간을 좌표에 표시된 두 점 사이의 거리(절댓값)의 차이에 따른 새로운 거리 공간으로 대신하기도 한다

맨해튼 거리인 빨간색, 파란색, 노란색 선의 길이는 모두 12이며 가장 짧은 맨해튼 거리이다.

 

- 벡터의 유사도(Vector Similarity) - 유클리디안 유사도

: 유클리드 거리는 두 점 사이의 거리를 계산할 때 흔히 쓰는 방법

유클리드 공간에서의 최단거리(직선거리)로 유클리드 거리의 값이 가장 작다는 것은 문서 간 거리가 가장 가깝다는 것을 의미한다.

  • 장점 : 계산하기 쉽다
  • 단점 : 결과 값이 1보다 큰 값이 나올 수 있으므로 값을 제한하는 과정이 필요하며 분포가 다르거나 범위가 다른 경우에 상관성을 놓친다

 

- 벡터의 유사도(Vector Similarity) - 코사인 유사도

: 내적 공간 내에서 두 벡터 사이의 코사인 각도를 구하는 방법(-1 ~ 1 사이 값을 가지며 1에 가까울 수록 유사도가 높다)

  • 장점 : 어떤 개수의 차원에도 적용할 수 있지만 흔히 다차원의 양수 공간에서의 유사도 측정에서 자주 이용된다
  • 단점 : 상호 상관관계를 가지는 특성을 갖는 원소들간의 유사도를 계산할 때에 성능이 낮아진다

 

 

- 벡터의 유사도(Vector Similarity) - 피어슨 유사도

: 두 벡터가 주어졌을 때 상관관계를 계산하며 각 벡터의 표본평균으로 정규화하고 코사인 유사도를 산출하면 피어슨 유사도

  • 장점 : 양적 변수들 사이의 선형관계를 확인하기  쉬우며 코사인 유사도의 평점 부분에 각 유저의 평균값을 뺀 값 확인이 가능하다
  • 단점 : 코사인 유사도와 마찬가지로 벡터가 지닌 스칼라들의 값의 크기에 대한 고려를 하지 않는다

 

- 벡터의 유사도(Vector Similarity) - 자카드 유사도

: 두 문장을 각 단어의 집합으로 생성한 뒤, 생성된 집합을 통해 유사도(고객 간의 유사도)를 측정한다.

  • 장점 : 대표적인 이진평가에 대한 유사도를 측정할 수 있는 지표로 동시출현빈도를 고려해야 한다
  • 단점 : 데이터가 순서나 양을 갖는 집합 데이터라면 낮은 성능을 보인다

 

'Python' 카테고리의 다른 글

[Python] Numpy  (0) 2023.03.29
[Python] MachineLearning_Ensemble  (0) 2023.03.27
[Python] MachineLearning_Tree  (0) 2023.03.27
[Python] MachineLearning  (0) 2023.03.27
[Python] Online_Retail  (0) 2023.03.27
Comments