1. [빅플보] Distance Measures + Clustering
Distance Measures
거리를 측정하는 방법으로 5가지가 있다.
1) 유클리드 거리 : 두 점 사이 거리의 제곱의 합의 제곱근으로 이루어진다.
2) 코사인 거리 : cos 세타 = a 벡터와 b 벡터의 내적 / || a|| ||b||
내적은 두 벡터의 x1y1 + x2y2 + ... 이런 식으로 구할 수 있다.
3) 자카드 거리 (Jaccard) : 1 - 교집합 / 합집합. 두 집합의 유사성을 측정한다.
4) Edit Distance : 두 문자열 간의 유사성을 측정한다. 추가, 삭제, 교체를 이용한다. LCS (longest common subsequence) 를 이용해서 공통 부분을 찾으려고 한다. [x + y - 2*LCS]
5) Hamming Distance : 두 벡터의 길이가 같은 상황에서 같은 위치에서 다른 요소를 가진 갯수를 찾는다.
Hierarchical Clustering
계층적 클러스터링
- 하이러알키컬 이라고 읽으면 된다.
agglomerative 상향식으로 아래에서 위로 하나씩 병합하면서 올라가는 방식과
divisive 하향식으로 위에서 아래로 큰 덩어리에서 쪼개면서 개별 포인트로 가는 방식이 있다.
트리 형태로 나타내는 것을 dendrogram 이라고 할 수 있다.
군집으로 나타내면 클러스터의 관계를 파악하기도 용이하고,
장점은 클러스터 수를 미리 지정해주지 않아도 된다.
문제는 데이터 크기가 커지면 계산량이 크게 증가한다는 것이다.
Efficiency
우선 가장 가까운 두 점의 거리를 구하려면 N 제곱만큼 걸린다.
그러면 총 O(N^3) 이 걸리게 된다.
우선순위 큐를 사용해보자.
우선순위 큐는 큐처럼 선입선출하는 것인데 우선순위를 지정해줄 수 있는 것이다.
이렇게 하면 O(N^2 log N) 으로 할 수 있다.
비유클리드 공간에서 클러스터링하기
중심이 정의되지 않으면 근접성을 측정하기 위하여
centroid 대신 clustroid 를 이용한다.
다른 포인터들과 가장 가까운 놈을 찾는 것이다.
어떻게 찾느냐? 다른 모든 점들과 최소 거리인 것. 거리의 제곱합이 최소가 되는 것.
그리고 clustroid 간의 거리를 측정하여 파악할 수 있다.
Clustroid 표현하기

clustroid c 가 다른 점들과 제곱했을 때의 합이 가장 최소인 것으로 정한다.
클러스터 간 거리 측정
1) 최소 거리
2) 최대 거리
3) 평균 거리
4) 중심 거리
5) 밀도 기반 거리
다양한 방식으로 클러스터들끼리 얼마나 떨어져 있는지를 파악할 수 있다.
2. SQL 재시작하기
- [Lv.4 / 프로그래머스 / SQL] 서울에 위치한 식당 목록 출력하기
- [Lv.4 / 프로그래머스 / SQL] 대장균들의 자식의 수 구하기
2가지 문제를 풀면서 잃었던 감각을 다시 되찾고
select, group by , count case 를 익숙하게 했다.
다양한 상황과 flow 에 따라 어떻게 적용해야 하는지 논리적으로 정립하는 것이 중요하다.
https://yoon512.tistory.com/30 참고.
3. 오늘의 생산성 : GPT PC버전

gpt pc 버전을 쓰면 공부하면서 서칭하면서 코드하면서 효율성이 엄청 올라간다
alt + 스페이스 로 언제든지 소환할 수 있고,
조그만 화면으로 이중 화면을 모니터링할 수 있고,
화면에 항상 고정적으로 해놓는 powertoys 까지 활용하면 금상첨화이다
'TIL (Today I Learned)' 카테고리의 다른 글
| TIL (241030) 데이터 엔지니어가 되기 위한 공부방법 (0) | 2024.10.30 |
|---|