상세 컨텐츠

본문 제목

240130화_TIL

TIL

by 30303 2024. 1. 30. 21:01

본문

728x90

회귀분석

 

선형회귀-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시간 금

 

무작정 외운 내용. 친절한 설명이 있어서 새롭게 많이 배우는 강의... 정독하기..

 

 

'TIL' 카테고리의 다른 글

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

관련글 더보기