인공지능/머신러닝
회귀분석(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