연속형 변수는 무한하고 가산할 수 없는 값들로 구성됩니다. 이는 변수가 취할 수 있는 값이 연속적인 범위 내에 있다는 것을 의미합니다. 예를 들어, 사람의 키, 무게, 온도, 거리 등이 이에 해당합니다. 연속형 변수는 일반적으로 실수로 표현되며, 두 값 사이에는 항상 또 가른 값이 존재할 수 있다.
회귀 분석에서 연속형 변수는 종종 종속변수(예측하고자 하는 변수)로 사용됩니다. 예를 들어, 집의 크기(독립변수)가 주택가격(연속형 종속 변수)에 어떤 영향을 미치는지 분석할 수 있습니다.
이산형 변수는 셀 수 있는 분리된 값들로 구성됩니다. 이 변수들은 일반적으로 정수로 표현되며, 두 값 사리에 다른 값이 존재하지 않습니다. 예를 들어, 사람의 자녀 수, 학급의 학생 수, 제품의 결함 수 등이 이산형 변수에 해당됩니다.
회귀 분석에서 이산형 변수는 독립 변수로 사용될 때가 많습니다. 예를 들어, 광고 횟수(이산형 독립 변수)가 판매량(연속형 종속 변수)에 미치는 영향을 분석할 수 있습니다. 이산형 변수는 때때로 '범주형 변수'로도 간주될 수 있습니다.
연속형 변수의 예시
물의 온도 / 몸무게 / 키 -> 연속적으로 변할 수 있다
이산형 변수의 예시
학급에 있는 학생의 수 / 성별 / 나이 -> 셀 수 있는 값
결론적으로
연속형 변수는 측정하는 값이 연속적으로 변할 수 있으며, 정밀한 측정이 가능한 경우에 사용됩니다. 반면, 이산형 변수는 개별적으로 셀 수 있는 값으로 구성되어 있으며, 특정한 수치만을 가질 수 있습니다.
회귀분석에서 변수 유형을 이해하는 것은 모델의 설계와 해석에 있어 매우 중요합니다. 변수의 유형에 따라 데이터를 처리하고 분석하는 방법이 달라지며, 이는 결과의 정확성과 해석 가능성에 직접적인 영향을 미칩니다.
StandardScaler는 특성의 평균을 0, 분산을 1로 조정하여 모든 특성이 동일한 스케일을 갖도록 변환하는 방법입니다.
StandardScaler를 쓰는 이유는, 우리가 다루는 데이터들의 크기가 너무 다를 때 발생하는 문제를 해결하기 위해서입니다.
수식
각 특성 X에 대해, StandardScaler는 다음과 같이 계산된다.
주의사항
이상치가 포함된 데이터를 표준화할 때는 StandardScaler사용에 주의해야합니다. 이상치는 평균과 표준편차에 큰 영향을 미쳐, 데이터의 전반적인 스케일 변환 결과를 왜곡할 수 있다.
사이킷런 라이브러리의 StandardScaler를 이용하여 데이터를 표준화하는 과정을 보여준다. 표준화는 데이터의 특성들을 평균이 0이고 표준편차가 1이 되도록 변환하는 과정
scaler.fit(data)
fit메서드에서는 데이터에 대한 평균과 표준편차를 계산한다. 이 계산된 평균과 표준편차는 이후 데이터를 표준화하는데 사용된다. 여기서 data는 표준화할 원본 데이터를 의미
scaler_data = scaler.transform(data)
transform메서드는 앞서 fit메서드에서 계산된 평균과 표준편차를 사용하여 데이터를 표준화한다. 즉, 각 특성의 값에서 평균을 빼고, 그 결과를 표준편차로 나누어준다. 이렇게 변환된 데이터는 scaler_data에 저장된다.
(1) StandardScaler 객체 생성
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler
(2) 데이터 표준화
scaler.fit(data)
scaled_data = scaler.transform(data)
scaled_data
(3) 표준화된 데이터를 DataFrame으로 변환
scaled_data_df = pd.DataFrame(scaled_data, columns=['몸무게_scaled', '키_scaled'])
scaled_data_df
(4) 표준화된 데이터 평균과 표준편차 계산
import numpy as np
print(scaled_data_df['몸무게_scaled'].sum())
print(scaled_data_df['몸무게_scaled'].std())
print(scaled_data_df['키_scaled'].sum())
print(scaled_data_df['키_scaled'].std())
로그변환?
로그 변환은 데이터의 범위를 조정하고 왜곡된 분포를 개선하기 위해 사용되는 기법입니다. 특히 데이터 값 사이에 큰 차이가 있거나, 한쪽으로 치우친 분포를 보일 때 이 변환 방법을 사용하곤 한다.
로그 변환의 주된 목적은 데이터를 변환하여 분석이나 모델링을 더 효과적으로 수행할 수 있도록 만드는 것 입니다. 이 변환은 데이터의 크기 차이를 줄여서, 모든 데이터 포인트가 분석에 거의 동등한 영향을 미치도록 도와줍니다.
로그 변환은 특히 데이터가 정규 분포를 따르지 않고, 특정 방향으로 치우친 비대칭 분포를 보일 때 유용합니다. 변환을 통해 데이터는 보다 정규 분포에 가까워지며, 이는 통계적 분석과 머신러닝 모델에서 중요한 가정에 부합하게 만들어 줍니다.
로그변환은 언제, 왜 사용하는가?
로그변환은 데이터의 분포가 한쪽으로 심하게 치우쳐 있거나, 극단적인 값이 존재할 때 사용됩니다. 예를 들어, 소득, 인구수, 일부 생물학적 측정값 등은 오른쪽으로 긴 꼬리를 가진 분포를 보일 수 있습니다.
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure(figsize=(6, 3))
sns.histplot(train['Age'], kde=True, color="skyblue")
plt.show()