회귀의 원래 의미는 옛날 상태로 돌아가는 것
평균으로 돌아가려는 경향이 있음.
y = ax + b
a: 기울기 (x가 1 증가할 때 증가하는 y값)
b: 절편
데이터에 최선의 직선을 긋는 것 = 데이터의 규칙 식
y = ax + b 에서 최선의 기울기 a와 y 절편 b를 정하는 방법이 필요함
이걸 선형 회귀라 하고 직선을 회귀선이라고 부른다.
최적의 회귀모델은 전체 데이터 오차 합이 최소가 되는 것을 말함.
오차합이 최소가 되는 가중치 w1과 편향 w0을 찾는 것을 의미.
y^ = w0 + wx1
독립변수 개수로 회귀분석을 두가지로 나눔.
단순 회귀, 다중 회귀
독립변수 하나와 종속변수 하나가 일대일 대응 관계를 갖는 선형 회귀
x 값 하나로 y값을 설명할 수 있는 경우
ex) 행복지수가 연수입만! 으로 결정 됨.
반복 학습을 통해 최선의 가중치와(w1)와 편향(W0)을 찾음
print(model.coef_) 가중치
print(model.intercept_) 편향
모델학습이란 오차가 최소가 되는 가중치와 편향을 구하는 과정
여러 독립변수가 종속변수에 영향을 미치는 선형 회귀
y 값을 설명하기 위해 여러 개의 x 값이 필요한 경우
ex) 여러 요인들에 의해 보스턴 집 값이 결정됨
회귀식: y^ = w0 + w1x1 + w2x2 +w3x3 + ... + wnwn
각 독립변수의 최선의 가중치와 편향을 찾음
print(list(x_train[feature]))
print(model.coef_) # 가중치
print(model.intercept_) # 편향
왜 이걸 하냐?
y 결과값에 영향을 미치는 가장 큰 독립변수 x를 설명하기 위해서.
가중치의 절대값이 가장 큰 독립변수가
y 결과값에 영향을 미치는 가장 큰 독립변수
최근접 이웃 = 유유상종
회귀와 분류에 사용되는 지도학습 알고리즘
회귀와 분류 둘 다 사용한다!!!
이해하기 쉽지만 연산이 느린 단점
k(탐색하는 이웃 개수)에 따라 데이터를 다르게 예측
적절한 k 값을 찾는게 가장 중요함. 기본값 5
k를 1로 설정할 경우 편향된 정보
k를 홀수로 설정 -> 짝수인 경우 과반수 이상 이웃이 안 나올 수 있음
검증 데이터로 가장 높은 k를 찾아 KNN 알고리즘 사용
KNN 모델 성능을 위해 정규화(Normalization) 작업 필요
모든 데이터가 같은 범위 데이터를 가질 때 좋은 성능
정규화 여부에 따라 KNN 모델 성능이 달라질 수 있음
x = (x - x.min()) / (x.max() - x.min())
머신러닝 파트는 코딩이 어렵다기 보다는 원리와 개념을 이해하는게 어렵게 느껴진다. 원리와 개념 숙지만 된다면 데이터를 훨씬 더 잘 이해하고 결과를 해석하는 능력을 기를 수 있을 것 같다. 코딩 연습과 함께 개념을 잘 이해해야겠다.