회귀분석
선형회귀-1차방정식
회귀 평가지표 MSE(Mean Squared Error)-- 에러 제곱 후 평균
1 에러 = 실제 데이터 -예측 데이터
2 에러 제곱, 총합
3 데이터 수로 나누기 /평균
Yi 데이터
Y햇. 예측, 추정 값.
예측 문제 -- 모델의 MSE 지표를 최소화 하는 방향으로 진행 , 평가
그외 지표 RMSE(루트), MAE(절대값)
선형 회귀 평가 지표 R Square
회귀; 숫자 y를 맞추기 위한.
SST: 평균 대비 예측 해야 하는 값(실제값-평균)
SSR: 회귀로 설명한 부분(예측값 - 평균)
SSE: 설명 하지 못한 부분(실제값-예측값)
error 작을수록 regression 높을수록 좋은.
error 30 regression70인 경우, 전체 100에서 70이 설명된 것. 0.7의 설명력을 가지는 모델.
https://scikit-learn.org/stable/user_guide.html
User guide: contents
User Guide: Supervised learning- Linear Models- Ordinary Least Squares, Ridge regression and classification, Lasso, Multi-task Lasso, Elastic-Net, Multi-task Elastic-Net, Least Angle Regression, LA...
scikit-learn.org
선형회귀 모델클래스(도안)
sklearn.linear_model.linearRegression
coef-회귀계수
intercept-편향
fit-데이터 학습,적합
predict 데이터 예측
plt matplotlib 약자
import sklearn as sklearn
import numpy as numpy
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
weights= [87,81,82,92,90,61,86,66,69,69]
heights=[187,174,179,192,188,160,179,168,168,174]
print (len(weight))
print (len(height))
#dictionary 형태로 데이터 생성b
body_df=pd.DataFrame({'height':heights, 'weight':weights})
body_df.head(3)
#weight 와 height 간의 산점도
sns.scatterplot(data=body_df,x='weight',y='height')
plt.title('Weight vs Height')
plt.xlabel('weight(kg)')
plt.ylabel('height(cm)')
plt.show()
#선형회귀 훈련(적합) fit .train
from sklearn.linear_model import LinearRegression
model_lr=LinearRegression()
type(model_lr)
선형 모델 클래스를 가져와 변수에 저장.
#DATAFRAME[]:Series (데이터 프레임의 컬럼)
#DATAFRAME[[]]: DataFrame
X=body_df[['weight']]
y=body_df[['height']]
#데이터 훈련
model_lr.fit(X=X,y=y)
데이터 훈련 후 , 새로운 데이터가 들어오면 예측 가능
#가중치(w1)
w1=model_lr.coef_[0][0]
w1
#편향 bias--절편값
w0=model_lr.intercept_[0]
w0
print('y={}x+{}'.format(w1.round(2),w0.round(2)))
y=0.86x+109.37
해석: y(height)를 구하려면 X(weight)에 0.86을 곱한뒤 109.37을 더하면 된다.
진도 느린중.. 남은 일정 계획.
기초 1-10~1-18/ 대략 3시간 수
심화
1주차 3시간 목
2주차 1시간 목
3주차 1시간 금
4주차 1시간 금
무작정 외운 내용. 친절한 설명이 있어서 새롭게 많이 배우는 강의... 정독하기..
240201목_TIL (0) | 2024.02.01 |
---|---|
240131수_TIL (0) | 2024.01.31 |
240129월_TIL (0) | 2024.01.29 |
240126금_TIL (1) | 2024.01.26 |
240125목_TIL (0) | 2024.01.25 |