[데이터 분석] 데이터 분석 기본 과정

프로젝트의 진행으로 데이터 분석을 진행하기 앞서 기본적인 분석 과정을 정리해 보고자 한다.

Python과 pandas, scikit-learn 등의 라이브러리를 사용하는 것을 기준으로 작성하였다.


1. 라이브러리 불러오기

먼저 데이터 분석을 시작하기 전에 필요한 라이브러리를 불러와야 한다. 데이터 분석에는 pandas, numpy, matplotlib, seaborn, scikit-learn 등이 주로 사용된다.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

2. 데이터 불러오기

데이터를 불러와서 DataFrame 형태로 저장한다. 여기서는 pandas의 read_csv 함수를 사용하여 CSV 파일을 불러온다.

df = pd.read_csv('data.csv')

3. EDA(Exploratory Data Analysis, 탐색적 데이터 분석)

데이터를 확인하고 데이터의 분포, 결측치, 이상치 등을 파악한다.

# 데이터의 처음 5행을 출력
print(df.head())

# 데이터 타입 파악
print(df.info())

# 데이터 row,column 파악
df.shape()

# 데이터의 기술 통계량 확인
print(df.describe())

# 결측치 확인
print(df.isnull().sum())

# 시각화를 통한 데이터 분포 확인
sns.pairplot(df)
plt.show()

4. 데이터 전처리

결측치 처리, 이상치 처리, 데이터 표준화/정규화 등 데이터를 모델링에 적합한 형태로 만든다.

# 결측치 대체 예시
df.fillna(df.mean(), inplace=True)
# 만약 특정 칼럼의 값만 대체하고 싶으면
df['A'].fillna(df['A'].mean(), inplace=True)

# 결측치 삭제 예시 axis=1 행, axis=0 열
df.drop(axis=1)

# 데이터 표준화 예시
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df_scaled = scaler.fit_transform(df)

5. 피처 엔지니어링

모델의 성능을 향상시키기 위해 기존 변수를 조합하거나 새로운 변수를 생성한다.

# 새로운 피처 생성 예시
df['new_feature'] = df['feature1'] + df['feature2']

6. 모델링

선택한 알고리즘으로 모델을 학습시키고 평가한다. 여기서는 선형 회귀 모델을 예시로 들고자 한다.

X = df.drop('target', axis=1)
y = df['target']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

model = LinearRegression()
model.fit(X_train, y_train)

# 모델 성능 평가
print(model.score(X_test, y_test))

7. csv 파일로 저장

모델을 사용하여 예측한 결과를 CSV 파일로 저장한다.

predictions = model.predict(X_test)
output = pd.DataFrame({'Id': X_test.index, 'Prediction': predictions})
output.to_csv('predictions.csv', index=False)