독립변수, 종속변수로 이루어짐
최소제곱법을 이용한 선형회귀분석 계산
1) 회귀식을 찾는다는것은 곧, 회귀식을 구성하는 모수들을 찾는것
2) 회귀선을 그리기 위한 계수들 (기울기모수 : β1 , 절편모수 : β0)
3) 최소제곱법 : 근사적으로 구하려는 해와 실제 해의 오차의 제곱의 합이 최소가 되는 해를 구하는 방법
Tabular Data
1) 행과 열로 표현이 가능한 데이터
2) 요소 3가지 : Observation(행), Variables(열), Relationships(다른 table과의 관계)
분류와 회귀 비교
1) 분류
output type : 이산적 데이터
찾으려는 것 : decision boundary(결정경계)
evaluation (평가) : accuracy (정확도)
2) 회귀
output type : 연속적 데이터
찾으려는 것 : best fit line
evaluation (평가) : sum of squared error 이나 r squared (에러)
오늘 사용하려는 데이터
1) 주택의 판매가격 예측
2) 사용하는 변수
SalePrice: 우리가 예측해야 하는 타겟값으로 주택판매가격(달러) 입니다.
LotArea: 집과 마당의 사이즈(square feet)
GrLivArea: 지상 생활면적(square feet)
기존 경험을 바탕으로 예측 : 오류의 위험성이 있다.
통계정보를 활용
예측모델 만들기 전에, 가장 간단하고 직관적이면서 최소한의 성능을 나타내는 기준이 되는 모델
1) 회귀 : 타겟의 평균
2) 분류 : 타겟의 최빈값
3) 시계열 : 직전 타임스탬프
평균값을 기준으로 사용하면 평균기준모델
에러로 성능 확인, 여기서는 MAE로 검증 (평균절대오차)
LotArea와 GrLivArea의 상관관계를 통해 평균값을 기준으로 하는 것은 여러 특성을 고려하지 못한다는 것을 알 수 있다.
scatterplot에 가장 잘 맞는 직선(best fit)을 그리는 것이 목표
잔차 : 예측값과 관측값 차이 (오차는 모집단에서 예측값과 관측값 차이)
RSS : 잔차 제곱들의 합
회귀선 : RSS를 최소화하는 직선
RSS는 SSE라고도 말하며 이 값이 회귀모델의 비용함수
비용함수를 최소화하는 모델을 찾는 과정을 학습이라고 함
RSS를 최소화하는 방법을 최소제곱회귀, OLS라고 부름
Seaborn regplot : 회귀선 그리는 메소드
선형회귀 모델의 역할
1) 주어져 있지 않은 점의 함수값을 보간하여 예측하는데 도움을 줌
2) 기존 데이터의 범위를 넘어서는 값을 예측하기 위한 외삽 제공
선형회귀 모델은 독립변수와 종속변수 간의 관계를 요약해줌
독립변수와 종속변수 호칭
1) 종속변수 : 반응변수, 레이블, 타겟
2) 독립변수 : 예측변수, 설명, 특성
table 형태의 data가 필요
특성 데이터와 타겟 데이터로 나눔
1) 특성행렬 : 보통 2차원, 주로 numpy행렬이나 pandas데이터프레임
2) 타겟배열 : 보통 1차원, numpy배열이나 pandas series로 표현
행렬은 대문자, 벡터는 소문자로 표현하는 것이 관습
구현된 머신러닝 모델들은 모두 유사한 프로세스를 이용하여 사용가능 (원리는 알면서 이용하도록 하자)
Scikit-learn 이용과정
1) 문제 풀기에 적합한 모델을 선택, 클래스를 확인 후 관련 속성과 하이퍼파라미터 확인
2) 데이터를 준비
3) fit() 메소드를 사용하여 모델 학습
4) predict() 메소드를 사용하여 새로운 데이터를 예측
from sklearn.linear_model import LinearRegression를 이용한다.
이 과정은 supervised learning이다.
머신러닝은 어떤 룰에 따라 답을 구해내는 일반적 프로그래밍과 달리 데이터와 탑을 통해 룰을 찾아낸다.
선형회귀모델의 계수
1) Scikit-learn에서는 coef(계수), intercept(절편) 로 회귀모델 정보를 알 수 있음
2) ipywidgets bar를 통해 예측값을 변경할 수 있는 메소드 (일종의 팁)
기준모델이 중요한 이유
https://blog.insightdatascience.com/always-start-with-a-stupid-model-no-exceptions-3a22314b9aaa
최소제곱법 관련자료
https://terms.naver.com/entry.naver?cid=58944&docId=3569970&categoryId=58970
더 세련된 시각화 툴
1) https://plotly.com/python/plotly-express/
2) https://plotly.com/python-api-reference/plotly.express.html
ipywidgets interact에 대한 추가 자료
https://ipywidgets.readthedocs.io/en/stable/examples/Using%20Interact.html#Using-Interact