데이터 부트캠프 - Today I Learned

[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_9주차_25.01.23

onion95 2025. 1. 23. 22:02

Today's Goals

1. 머신러닝 강의 반복 또 반복

 

 

 

 

오늘 집중력이 많이 떨어진 것 같다.

내가 목적이 있는 상태로(프로젝트 같은) 실습을 하면서 하나씩 터득하는게 아니라

정말 종류별로 하나하나 머리에 집어넣으려고 하니 용어 하나하나부터 쉽지 않다.

 

공부에는 끝이 없다지만, 어디까지 파고들어야 적당한 수준일까 궁금해진다...! (으악)

 

 

 

 

 

 

1. 머신러닝 특강 - 군집

 


[클러스터링 결과 품질 측정, 엘보우 말고 실루엣?!]

  • 대학교/대학원에서 수업과 프로젝트를 통해 엘보우에 대해선 알고 있었음
  • 클러스터 개수를 결정하는 방법으로 엘보우 밖에 없다고 생각하고 있었음
  • 실루엣 점수는 다른 그룹들과는 얼마나 떨어져있고, 같은 그룹끼리는 얼마나 뭉쳐있는가 판단하는 점수임
  • 따라서 1에 가까운 점수일수록 품질이 좋은 클러스터 개수라고 볼 수 있음
  • 엘보우 기법으로 명확히 판단하기 어려울 때, 실루엣도 함께 사용할 수 있음

 

 

[PCA, 알다가도 모르겠다]

  • 단순히 차원축소 기법이라는 것은 이해함(자동적으로 변수간의 관계를 고려하여 변수가 줄어드는...)

https://ddongwon.tistory.com/114

 

PCA (Principal Component Analysis) : 주성분 분석 이란?

1. PCA (주성분 분석) PCA는 대표적인 dimensionality reduction (차원 축소)에 쓰이는 기법으로, 머신러닝, 데이터마이닝, 통계 분석, 노이즈 제거 등 다양한 분야에서 널리 쓰이는 녀석이다. 쉽게 말해 PC

ddongwon.tistory.com

  • 2차원에서 1차원으로 축소되는 것은 시각적으로 확인 할 수 있어서 이해가 되는데, 다차원의 경우는 아직 명확히 이해되지 않음(우선은 단순하게 이해하자)

 

 

[라이브 코테 단골 문제, 유클리디안 거리]

  • 단순한 거리 계산법이라고 생각했는데, 코테의 단골문제라는 점이 흥미로움
def solution(points, k, target):
    """
    K-Nearest Neighbors Algorithm to classify a target point.
    
    :param points: List of points with labels [[x1, y1, label], ...]
    :param k: Number of nearest neighbors to consider
    :param target: The target point [x, y] to classify
    :return: Predicted label for the target point
    """
    pass 
    
    # Example data points with labels
points = [
    [1, 2, 'A'],
    [2, 3, 'B'],
    [3, 3, 'A'],
    [5, 5, 'B'],
    [4, 2, 'A']
]

# Target point
target = [3, 2]

# Number of neighbors
k = 3
  • 처음은 타겟이 어느 그룹에 속하는가? 를 해결하는 문제
  • k=1 이라면 points의 모든 요소들과의 거리를 구한 후 가장 가까운 좌표의 그룹에 배정하면 됨
  • k=3 이라면? 가장 가까운 3개의 좌표를 구해 과반수인 그룹에 배정함
  • 이런 논리에 이어서 계속된 꼬리질문이 이어지고, 라이브로 코드를 수정하는 방식임
  • 아... 파이썬 코테 조금은 만만해지고 있었는데.....