13차시 단순 회귀분석
- 독립변수가 하나
- 연속형 종속변수와 독립변수 간 선형관계 및 설명력을 확인하는 기법
- 종속변수와 독립변수가 각각 하나인 경우의 단순 선형 회귀 모형
- 설명력과 더불어 오차 평가 지표로 모델의 성능을 평가
statsmodels - ols()
- 선형회귀 분석을 위한 statsmodels의 함수
- ols 함수 내에 attribute 'formula' 에 종속변수와 독립변수를 선언 -> 종속 변수와 독립 변수 간의 관계를 정의하는 문자열
formula = '종속변수 ~ 독립변수1 + 독립변수2 + ...' -> 순서 중요. 바뀌면 결과가 달라짐
- fit() 메서드로 모델 적합시킴 -> predict() 예측
- 변수명에 점 등 특정 특수문자가 있는 경우 오류 발생 ex) Sepal.Length
-
from statsmodels.formula.api import ols
sklearn - LinearRegression()
- 선형회귀 분석을 위한 sklearn 의 함수. ols 보다 강력하기 위한 기능. 최적화 기능 갖음
from sklearn.linear_model import LinearRegression
LinearRegression(
*,
fit_intercept=True, #절편 적합 여부. 보통 true 로 함
normalize='deprecated', #정규화
copy_X=True, #
n_jobs=None,
positive=False,
)
- LinearRegression 에서 fit (X = ) 에는 2차원에 맞게 변환해서 넣어줌
# Attribute X 에 2차원배열로 넣어야하기 때문에, dataFrame 유지할 수 있게 df[[' ']]
model = LinearRegression().fit(X = df[['Petal.Length']],
y = df['Petal.Width'])
#
model.predict(df[['Sepal.Width']]
# 1차원으로 넣으면 아래처럼 에러 발생
ValueError: Expected 2D array, got 1D array instead:
---- 모델링 - 평가(회귀)
sklearn - mean_absolute_error()
- MAE 연산을 위한 sklearn 함수
sklearn - mean_squared_error()
- MSE 연산을 위한 sklearn 함수
- 해당 결과에 제곱근 연산을 하면 RMSE 계산 가능
- attribute y_true, y_pred 구분 하기
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
mean_absolute_error(
# metrics 로 뽑아서 나오는 지표 관련 함수에는 다 있는 attribute
y_true, # 실제 값(실측 값)- 회귀모델에서는 종속 변수의 실제 값을 의미
y_pred, # 모델이 예측한 값- 회귀모델에서는 독립 변수를 기반으로 예측된 종속 변수 값
*,
sample_weight=None,
multioutput='uniform_average',
)
왜 model predict 할 때 test data를 사용하는 지?
: test 데이터로 예측을 수행하는 이유는 모델의 일반화 성능을 평가하기 위해서입니다.
이는 모델이 새로운 데이터에서 얼마나 잘 작동하는지 확인하는 중요한 과정입니다.
#MAE
mean_absolute_error(y_true = df['Sepal.Length'], y_pred = df['Sepal.Width'])
#MSE
mean_squared_error(y_true = df['Sepal.Length'], y_pred = df['Sepal.Width'])
#RMES = MES **0.5 (제곱근)
mean_squared_error(y_true = df['Sepal.Length'], y_pred = df['Sepal.Width']) ** 0.5
14차시 다중 회귀분석
- 연속형 종속변수와 두 개 이상의 독립변수 간 선형관계 및 설명력을 확인하는 기법
- 명목형 변수가 독립변수 인 경우, 가변수 변환 후 fit 모델 적합시키기 - get_dummies 사용
- 단순 회귀분석과 동일 함수 사용
다중 공선성 이슈 존재
- 독립변수 간 강한 상관관계가 나타나는 문제
- 상관계수를 확인하여 높은 것은 미리 제거
- 회귀 모델 생성 이후 VIF 확인(10 이상) 하여 관련 변수 처리 -> 10이상이면 다중 공선성 문제가 있다고 판단
'Data Science > 실습' 카테고리의 다른 글
DS 실습 16- 나이브 베이즈, 예측 확률값의 두번째 열이 1이 될 확률? (0) | 2024.12.07 |
---|---|
DS 실습 15- 로지스틱 회귀분석 (0) | 2024.12.07 |
실기시험 준비 Python 기초 (3) | 2024.12.06 |
DS 실습 12- 비계층적 군집분석(KMeans,MinMaxScaler,StandardScaler,shilhouette_score) (1) | 2024.12.06 |
DS 실습 11- 상관분석(Pandas.corr, scipy) (0) | 2024.12.05 |