데이터 전처리는 머신러닝이나 데이터 분석에서 매우 중요한 단계이다. 이 과정은 데이터의 품질을 높이고 분석에 적합하게 만드는 것을 목표로 한다. 데이터 천저리를 통해 고객 이탈 예측 하는 방법을 예로 들자면 다음과 같다.
1. 데이터 수집 및 이해
데이터 구조
2. 데이터 정리
결측치 처리
(1) 결측치 확인:
python 코드
df.isnull().sum()
(2) 결측치 대체:
python 코드
df['나이'].fillna(df['나이'].mean(), inplace=True)
df['월 요금'].fillna(df['월 요금'].median(), inplace=True)
python코드
df['성별'].fillna(df['성별'].mode()[0], inplace=True)
df['거주 지역'].fillna(df['거주 지역'].mode()[0], inplace=True)
중복 데이터 제거
중복된 데이터를 제거하여 데이터의 품질을 높임
python코드
df.drop_duplicates(inplace=True)
3. 데이터 변환
범주형 데이터 인코딩
범주형 데이터를 숫자로 변환.
python코드
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df['성별'] = le.fit_transform(df['성별'])
python코드
df = pd.get_dummies(df, columns=['거주 지역'])
스케일링
연속형 데이터를 표준화 또는 정규화합니다.
python코드
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df[['나이', '월 요금', '총 사용량']] = scaler.fit_transform(df[['나이', '월 요금', '총 사용량']])
python 코드
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df[['나이', '월 요금', '총 사용량']] = scaler.fit_transform(df[['나이', '월 요금', '총 사용량']])
4. 특성 선택 및 추출
상관관계 분석
변수 간의 상관관계를 분석하여 중요하지 않은 변수를 제거.
python코드
import seaborn as sns
import matplotlib.pyplot as plt
corr_matrix = df.corr()
plt.figure(figsize=(12, 8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
plt.show()
특성 추출
기존의 변수에서 새로운 변수를 만든는 과정.
python코드
df['평균 사용 요금'] = df['월 요금'] / df['총 사용량']
5. 데이터 분할
훈련, 검증, 테스트 데이터 분할
데이터를 모델 훈련, 검증, 테스트용으로 나눕니다.
python코드
from sklearn.model_selection import train_test_split
X = df.drop('서비스 해지 여부', axis=1)
y = df['서비스 해지 여부']
X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3, random_state=42)
X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42)
전처리 후 데이터 예시
전처리가 완료된 데이터는 다음과 같은 형태를 가질 수 있다.
고객 ID | 나이 | 성별 | 가입 기간 | 월 요금 | 총 사용량 | 거주 지역_1 | 거주 지역_2 | 거주 지역_3 | 서비스 해지 여부 |
1 | 0.4 | 1 | 24 | 0.6 | 0.5 | 0 | 1 | 0 | 0 |
2 | 0.7 | 0 | 36 | 0.8 | 0.7 | 0 | 0 | 1 | 1 |
3 | 0.2 | 1 | 12 | 0.3 | 0.4 | 1 | 0 | 0 | 0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
이러한 전처리 과정을 통해 데이터의 품질을 높이고, 모델이 더 정확하게 예측할 수 있도록 한다.
데이터 전처리 과정은? (0) | 2024.06.03 |
---|---|
데이터 전처리 단계와 참조 무결성의 관계 (0) | 2024.05.23 |
인공지능 구현에서 데이터 전처리의 필요성 (0) | 2024.05.21 |
'데이터 전처리'가 필요한 이유 (0) | 2024.05.11 |
인공지능에서 자기참조 적용 (0) | 2024.04.30 |