[ML] 머신러닝 기초 공부

Jaewon Lim·2024년 11월 13일
post-thumbnail

규칙 : 입력값의 대응값을 찾아주는 것

지도학습(Supervised learning)

  • 답이 있고 이 답을 맞추는 게 학습의 목적
  • 스팸 메일 분류 프로그램(스팸인지 아닌지 답이 잇는 문제를 해결하는 것)
  • 아파트 가격 예측(아파트의 가격 = 답)
  • 학습 데이터의 답을 정해줘야 함
  • 프로그램에게 수많은 문제와 그 문제에 대한 답을 가르쳐줬다(지도했다)

분류(Classification)

  • 분류 모델은 예측값으로 이산적인 값(Discrete)을 출력한다.
  • 몇 가지 옵션 중에 고르는 것(스팸 메일 분류)

회귀(Regression)

  • 회귀 모델은 예측값으로 연속적인 값(Continuous)을 출력한다.
  • 결과값이 무수히 많고 연속적(아파트 가격 예측)
  • 선형회귀, 다중회귀, 로지스틱회귀, 릿지&랏쏘 회귀, 로버스트회귀

Steps in Regression modling
1. 데이터 이해 : 종속/독립변수 식별. 결측치/이상치/데이터 패턴 탐색
2. 특성 선택 : 상관 분석, 전진 선택법, 후진 제거법
3. 데이터 분할 : 학습용 & 테스트용 데이터 분할
4. 모델 여러개 학습
5. 평가지표 확인 : MAE, MSE, RMSE, R2, 수정된 R2
6. 모델 개선 : 다중공선성, 등분산성, 비선형성 문제를 정규화 또는 변환으로 해결
7. 모델 배포

비지도학습(Unsupervised learning)

  • 답이 없고 이 답을 맞추는게 학습의 목적
  • 비슷한 기준대로 기사끼리 묶기

군집(Clustering)

변환(Dimensionality Reduction)

연관(Association)

입력

입력값의 신뢰성

"데이터를 바라보는 관점의 확장"

  1. Volume
  2. Variety
  3. Velocity
    Q1. 이 많은 데이터를 어떻게?
    Q2. 숫자가 아닌 데이터를 어떻게?
    Q3. 연산은 어떻게?

규칙

  • 가장 중요한 변수가 무엇일까?
  • variable 을 feature 로 만드는 과정

출력

  • 출력값이 정답이 아니라면 확률로 따진다
  • 통계는 우연을 좋아하고, 머신러닝은 불확실성을 좋아한다.
  • 통계는 결론을 내는 학문. 머신러닝은 통계와 문제를 푸는 개념이 다르고 모델을 만들고, 불확실성을 가지고 모델을 계속해서 개선해 나아가는 작업이다.
  1. 우연(yes/no)
    • 빈도주의
    • 검정
    • 채택/기각(=결론)
  2. 불확실성
    • 베이즈주의
    • 최적화
    • 개선

머신러닝은 "그때는 맞고 지금은 틀리다"
머신러닝은 "움직이는 과녁에 화살 맞추기"
미적분은 변동성을 다루는 학문.

리스트와 벡터의 차이점

  • 프로그래밍 접근과 수학적 접근

1. 리스트

  • 프로그래밍의 데이터를 저장하는 구조
  • 여러 데이터 타입을 지원
  • 순서가 있는 모음
  • 연산이 아닌 연결

2. 벡터

  • 데이터의 수학적 연산을 위한 구조
  • 수의 배열
  • 벡터 간 덧셈, 내적, 스칼라 곱 등의 연산이 가능

스칼라와 벡터의 차이점

1. 스칼라

  • 크기만 있고 방향이 없음
  • 단일 값으로 표현되는 크기
  • 온도, 무게, 시간, 속력
  • 내적의 결과

2. 벡터

  • 크기와 방향을 모두 가짐
  • 수학적 연산을 위한 구조
  • 수의 배열
  • 벡터 간 내적, 스칼라 곱 등의 연산이 가능
  • 힘, 속도, 가속도 등

각도로는 무엇을 알 수 있나?

  • 바로 데이터의 유사성
  • 데이터의 유사성은 거리와 각도로 계산한다.
  • 내적
    - 내적이 양수이면 두 벡터가 유사한 방향이고 음수이면 반대 방향을 의미
    • 내적은 두 벡터간의 각도를 계산하거나 벡터 간 유사성을 측정하는데 사용

수직 vs 직교

  • 직교(orthogonal) : 두 벡터 사이의 내적이 0일 떄 성립.즉 데이터의 유사성이 없다.
  • 각도는 유사성을 찾는것이다.

1. 수직

  • 벡터 간에 90도를 이루는 경우(보통 2차원이나 3차원에서 사용)

2. 직교

  • 벡터의 내적이 0(고차원에서도 사용)

3. 주성분 분석

  • 데이터의 분산을 가장 잘 설명하는 축(벡터)을 찾는 것이고 이 축들은 각각의 주성분이 된다.
  • 첫 번째 주성분은 데이터의 분산이 최대인 방향을 따르며, 두 번째 주성분은 첫 번째 주성분과 직교한다.(중복 정보를 줄인다)각각의 축은 독립적인 정보를 제공한다.
  • 주성분은 서로 직교한다.
  • 데이터의 분산을 가장 잘 설명하는 축(벡터)을 찾는 것이고 이 축들은 각각의 주성분이 된다.
  • 첫 번째 주성분은 데이터의 분산이 최대인 방향을 따르며, 두 번째 주성분은 첫 번째 주성분과 직교한다.(중복 정보를 줄인다)각각의 축은 독립적인 정보를 제공한다.
  • 주성분이 서로 직교하는건 알았는데, 그럼 주성분은?
    • 주성분 분석의 목표는 새로운 축을 찾는 것이다.
    • 새로운 축은 데이터 변환이다.
  • 변수 추출 vs 변수 선택
    • 변수가 많은데, 우리 데이터를 잘 설명하는 하나의 축을 만들기 위한 변수 추출의 개념이다.
    • 변수 추출은 변수간 상관관계를 고려하고, 변수의 개수를 줄일 수 있음, but 추출된 변수의 해석이 어려움
    • 변수 선택은 선택한 변수를 해석하는데 용이하고, 변수간 상관관계를 고려하기 어려움
    • 변수 추출의 이유는 다 쓸 수 없기 때문에, 변수들 안에서 갯수를 줄이고, 줄일 때 추출을 하면 1&2번의 상관성이 높으면 하나로 합치고 새로운 변수로 만들 수 있다. 결국 합치기 위해서, 두가지가 상관성이 잇는지 봐야함.
    • 변수가 출력값에 영향을 주는지 가중치로 판별함(회귀계수), 가중치가 높은걸 선택할 수 잇는데, 주성분분석은 하나의 변수로 만들기 때문에 각각의 변수들이 얼마나 영향이 잇는지 알 수 없음. 변수의 해석이 어렵다는 뜻.
    • 추출은 골라내서 새로운 것을 만들어 내는 것. 변환

고유값과 고유벡터

  • 차원축소 : 데이터를 선형적으로 변환해 가장 중요한 축을 찾아내고 데이터를 변환하는 것(주성분 분석은 차원축소의 기법 중 하나)
  • 행렬은 벡터의 값을 변환시킨다
  • 행렬이 이리저리 변환될 때 '방향'이 변하지 않는 벡터
    • 특정 변환에서도 변하지 않는 특징(중요한 정보)을 가진 것으로 해석 = 고유벡터
  • 방향은 변하지 않았지만 '크기'는 변해야지 = 고유값
  • '고유벡터'와 '고유값'을 계산하는 방법 = 공분산 행렬
    • 주성분분석은 분산을 최대화하는 축을 찾는 것
    • 데이터의 유사성(주성분 분석)을 보기 위해 고유벡터&고유값을 사용
    • 공분산을 표준화 시키는 이유는 스케일을 맞추기 위함
    • 고유값 = 차원의 갯수와 동일?
      • 고유값이 크면 분산이 크다? TRUE
      • 절대값 기준 가장 큰 첫 번째 변수의 정보가 이 고유벡터에 가장 큰 기여(아래그림참조)

0개의 댓글