인공지능/머신러닝

회귀분석(Regression Analysis) 1

2^7 2022. 6. 7. 14:19

회귀분석(Regression Analysis) 

Scaling

범위(Scale)가 다른 변수의 범위(Scale)를 비슷하게 맞추기 위한 목적

연속형 변수가 다양한 범위(Scale)로 존재할 때 제곱 오차 계산 시 왜곡 발생

ex) X1은 1에서 10 사이 스케일, X2는 1000에서 100만 사이 스케일

스케일이 더 큰 변수에 맞추어서 가중치를 최적화하는 문제 발생

import seaborn as sns

DF = sns.load_dataset('mpg')
  • 자동차 연비(mpg) 데이터
    • mpg : miles per gallon
    • 1 mile : 1.6 Km
    • 1 gallon : 3.78 Liter
DF.info()

DF.head()

X = DF[['weight']]
y = DF['mpg']

Without Scaling

X[:5]

import matplotlib.pyplot as plt

fig = plt.figure(figsize = (9, 6))
sns.regplot(x = X, y = y)
plt.xlabel('weight_Without_Scaling')
plt.show()


With Normalization

변수의 스케일을 0 ~ 1 사이 범위로 맞추는 것(min-max scaling)

정규화는 변수의 범위가 정해진 값이 필요할 때 유용하게 사용

from sklearn.preprocessing import MinMaxScaler

scaler1 = MinMaxScaler()
X_Norm = scaler1.fit_transform(X)
#정규화된 X값 확인

X_Norm[:5]

fig = plt.figure(figsize = (9, 6))
sns.regplot(x = X_Norm, y = y)
plt.xlabel('weight_With_Normalization')
plt.show()


With Standardization

변수의 평균을 0, 표준편차를 1로 만들어 표준정규분포의 특징을 갖도록 함

표준화는 가중치(weight) 학습을 더 쉽게 할 수 있도록 함

from sklearn.preprocessing import StandardScaler

scaler2 = StandardScaler()
X_Stan = scaler2.fit_transform(X)
# 표준화된 X값 확인

X_Stan[:5]

#표준화된 X값 모델생성

fig = plt.figure(figsize = (9, 6))
sns.regplot(x = X_Stan, y = y)
plt.xlabel('weigh_With_Standardization')
plt.show()

 

728x90