summ의 블로그

머신러닝 기초 (3) 본문

머신러닝

머신러닝 기초 (3)

summ._ 2024. 10. 2. 12:36

240930 

 

선형 회귀

 

회귀 분석이란? 독립변수를 통해 종속변수를 예측하는 분석 기법

 

회귀 모형의 가정

  • 선형성 
  • 독립성 - 더빈-왓슨 검정
  • 등분산성 
  • 비상관성
  • 정상성 - 샤피로-월크 검정, 콜모고로프-스미르노프 검정

전체 데이터의 오차 합이 최소가 되는 회귀식을 찾는 것임 

 

* 머신러닝 기초 (2) 내용 참고

 

회귀계수 B0 B1 찾기 

 

단순 선형 회귀식

yi = B0 + B1xi + 오차항

 

회귀계수 추정: 최소제곱법 사용하여 추정 

S(a0, a1) = ∑{yi-(a0+a1xi)}**2 

b1 = Sxy / Sxx

b0 = ybar - b1*xbar

 

model = LinearRegression()
model.coef_ # 기울기 추정
model.intercept_ # 절편 추정
r2_score(y_test, y_pred)

 

 

다중 회귀

 

선형회귀와 달리 

독립변수 feature가 여러 개 존재 

 

회귀식 

Y = B0 + B1x1 + B2x2 +  ... BnXn + 오차항  

 

 

KNN

 

K-Nearest Neighbor 

가장 가까운 이웃 k개 선택해서 예측하는 방법

적절한 k값 지정이 중요함

회귀, 분류 모두 사용 가능

scaling 필수

  • 정규화 
  • 표준화
model = KNeighborsRegrssor(n_neighbors=n)
model = KNeighborsClassifier(n_neighbors=n)

 

 

의사결정 나무

 

의사결정 규칙을 나무 구조로 나타내 자료를 소집단으로 분류, 예측

계산 결과가 나무로 표현되어 직관적임

스케일링 굳이 안 해도 성능 우수 --> 과적합 될 가능성이 높고, 가지치기 파라미터 튜닝 필요 

 

가지 분할: 나무의 가지를 생성

가지치기: 가지 분할로 생성된 가치를 자르는 과정 max_depth, min_samples_leaf, min_samples_split

순수도: 목표변수의 특정 범주에 개체들이 포함되어 있는 정도  

불순도 impurity

 

  • 지니 불순도 : 1 - (양성 비율**2 + 음성 비율 **2)

노드의 불순도를 나타내는 값

지니 불순도가 낮을수록 순도가 높음 = 당연한 얘기 

0~0.5 사이의 값  

  • 엔트로피: 무질서에 대한 측도 

엔트로피 지수 값이 클수록 순수도는 낮음

  • 정보 이득 

우리가 알고 싶은 것 = 어떤 속성이 얼마나 많은 정보를 제공하는 것인가

모든 속성에 대해 분할하고 정보 이득 계산

정보 이득이 큰 속성부터 분할하면 됨

 

 

구성요소 

  • 뿌리 마디: 제일 처음 맨 위의 마디 
  • 자식 마디: 부모 마디에서 분리된 마디들  
  • 부모 마디: 마디의 상위의 
  • 끝마디 terminal node: 잎, 자식이 없을 때
  • 중간 마디: 부모, 자식 둘 다 있는 마디 
  • 가지: node 
  • 깊이: 뿌리~끝까지 마디들의 수

 

분류

  • 분리 기준: 카이제곱 통계량, 지니지수, 엔트로피 지수
  • 마지막 노드의 샘플의 최빈값 = 예측값 

회귀

  • 분리 기준: 분산분석에서 f 통계량, 분산의 감소량
  • 마지막 노드의 샘플의 평균 = 예측값

 

model = DecisionTreeRegressor(max_depth=n)
model = DecisionTreeClassifier(max_depth=n)

'머신러닝' 카테고리의 다른 글

정리  (1) 2024.10.05
머신러닝 기초 (4)  (0) 2024.10.02
머신러닝 기초 (2)  (0) 2024.09.27
머신러닝 기초  (0) 2024.09.27
[ml] 간단한 정리 (3)  (0) 2024.07.10