MachineLearning 완벽 마스터
MachineLearning의 핵심 개념과 실전 활용법
학습 항목
이미지 로딩 중...
Data Science 실전 프로젝트 가이드
데이터 사이언스 실무에서 사용하는 핵심 기법들을 다룹니다. 데이터 전처리부터 모델링, 시각화까지 실전 프로젝트에 필요한 필수 기술을 학습합니다.
들어가며
이 글에서는 Data Science 실전 프로젝트 가이드에 대해 상세히 알아보겠습니다. 총 12가지 주요 개념을 다루며, 각각의 개념에 대한 설명과 실제 코드 예제를 함께 제공합니다.
목차
- 데이터_로딩_및_탐색
- 결측치_처리
- 데이터_필터링_및_정렬
- 그룹화_및_집계
- 시계열_데이터_처리
- 데이터_시각화
- 특성_엔지니어링
- 데이터_정규화
- 학습_테스트_데이터_분리
- 선형_회귀_모델
- 랜덤_포레스트_모델
- 특성_중요도_분석
1. 데이터_로딩_및_탐색
개요
Pandas를 사용해 CSV 데이터를 불러오고 기본 정보를 확인합니다. 데이터의 구조와 통계를 파악하는 첫 단계입니다.
코드 예제
import pandas as pd
df = pd.read_csv('sales_data.csv')
print(df.head())
print(df.info())
print(df.describe())
설명
read_csv로 데이터를 로드하고, head()로 상위 5개 행을 확인합니다. info()는 컬럼 타입과 결측치를, describe()는 통계 정보를 보여줍니다.
2. 결측치_처리
개요
실전 데이터에는 항상 결측치가 존재합니다. 결측치를 발견하고 적절히 처리하는 방법을 학습합니다.
코드 예제
missing_data = df.isnull().sum()
print(missing_data)
df['age'].fillna(df['age'].mean(), inplace=True)
df.dropna(subset=['email'], inplace=True)
설명
isnull()로 결측치를 확인하고, fillna()로 평균값으로 채우거나 dropna()로 행을 제거합니다. 컬럼의 중요도에 따라 전략을 선택합니다.
3. 데이터_필터링_및_정렬
개요
조건에 맞는 데이터를 추출하고 정렬하여 분석에 필요한 데이터만 선별합니다.
코드 예제
high_value = df[df['revenue'] > 10000]
sorted_df = df.sort_values('date', ascending=False)
recent_sales = df[(df['date'] > '2024-01-01') &
(df['category'] == 'Electronics')]
설명
대괄호 안에 조건을 작성해 필터링하고, sort_values로 정렬합니다. 여러 조건은 &(AND)나 |(OR)로 결합할 수 있습니다.
4. 그룹화_및_집계
개요
카테고리별로 데이터를 그룹화하고 통계를 계산합니다. 데이터 패턴을 발견하는 핵심 기법입니다.
코드 예제
category_sales = df.groupby('category').agg({
'revenue': ['sum', 'mean', 'count'],
'quantity': 'sum'
})
print(category_sales.sort_values(('revenue', 'sum'), ascending=False))
설명
groupby()로 그룹화하고 agg()로 여러 집계 함수를 동시에 적용합니다. 카테고리별 매출 합계, 평균, 건수를 한번에 계산합니다.
5. 시계열_데이터_처리
개요
날짜 데이터를 다루고 시간에 따른 트렌드를 분석합니다. 매출 예측이나 패턴 발견에 필수적입니다.
코드 예제
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
monthly_sales = df.resample('M')['revenue'].sum()
print(monthly_sales.rolling(window=3).mean())
설명
to_datetime으로 날짜 형식을 변환하고, resample()로 월별 집계를 수행합니다. rolling()은 이동평균을 계산해 트렌드를 부드럽게 표현합니다.
6. 데이터_시각화
개요
Matplotlib과 Seaborn으로 데이터를 시각화합니다. 숫자보다 그래프가 인사이트를 빠르게 전달합니다.
코드 예제
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure(figsize=(10, 6))
sns.barplot(data=df, x='category', y='revenue')
plt.title('Category Revenue Comparison')
plt.show()
설명
seaborn의 barplot으로 카테고리별 매출을 막대그래프로 표현합니다. figure()로 그래프 크기를 설정하고 title()로 제목을 추가합니다.
7. 특성_엔지니어링
개요
기존 데이터에서 새로운 특성을 생성합니다. 모델 성능을 크게 향상시킬 수 있는 중요한 단계입니다.
코드 예제
df['price_per_unit'] = df['revenue'] / df['quantity']
df['month'] = df['date'].dt.month
df['is_weekend'] = df['date'].dt.dayofweek.isin([5, 6])
df['revenue_category'] = pd.cut(df['revenue'], bins=3, labels=['Low', 'Medium', 'High'])
설명
기존 컬럼을 조합해 새로운 특성을 만듭니다. 날짜에서 월이나 요일 정보를 추출하고, cut()으로 연속형 데이터를 범주형으로 변환합니다.
8. 데이터_정규화
개요
스케일이 다른 특성들을 동일한 범위로 변환합니다. 머신러닝 모델 학습에 필수적입니다.
코드 예제
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df[['revenue', 'quantity']] = scaler.fit_transform(
df[['revenue', 'quantity']]
)
설명
StandardScaler로 평균 0, 표준편차 1로 정규화합니다. fit_transform()으로 스케일러를 학습시키고 동시에 데이터를 변환합니다.
9. 학습_테스트_데이터_분리
개요
모델을 훈련하고 검증하기 위해 데이터를 분리합니다. 과적합을 방지하는 핵심 단계입니다.
코드 예제
from sklearn.model_selection import train_test_split
X = df[['feature1', 'feature2', 'feature3']]
y = df['target']
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42)
설명
train_test_split으로 데이터를 80:20으로 분리합니다. random_state를 설정하면 항상 같은 결과를 재현할 수 있습니다.
10. 선형_회귀_모델
개요
가장 기본적인 머신러닝 모델로 연속형 값을 예측합니다. 변수 간 관계를 파악하는데 유용합니다.
코드 예제
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
print(f"R2 Score: {r2_score(y_test, predictions):.3f}")
설명
LinearRegression으로 모델을 생성하고 fit()으로 학습합니다. predict()로 예측하고 r2_score로 모델 성능을 평가합니다.
11. 랜덤_포레스트_모델
개요
여러 의사결정나무를 결합한 앙상블 모델입니다. 높은 정확도와 과적합 방지 효과가 있습니다.
코드 예제
from sklearn.ensemble import RandomForestClassifier
rf_model = RandomForestClassifier(n_estimators=100, random_state=42)
rf_model.fit(X_train, y_train)
accuracy = rf_model.score(X_test, y_test)
print(f"Accuracy: {accuracy:.3f}")
설명
RandomForestClassifier로 100개의 트리를 사용하는 모델을 생성합니다. score()로 정확도를 계산하며, 분류 문제에 강력한 성능을 보입니다.
12. 특성_중요도_분석
개요
모델이 예측에 사용한 특성들의 중요도를 분석합니다. 어떤 변수가 중요한지 파악할 수 있습니다.
코드 예제
import pandas as pd
feature_importance = pd.DataFrame({
'feature': X.columns,
'importance': rf_model.feature_importances_
}).sort_values('importance', ascending=False)
print(feature_importance)
설명
feature_importances_ 속성으로 각 특성의 중요도를 추출합니다. DataFrame으로 만들어 정렬하면 가장 영향력 있는 특성을 쉽게 확인할 수 있습니다.
마치며
이번 글에서는 Data Science 실전 프로젝트 가이드에 대해 알아보았습니다. 총 12가지 개념을 다루었으며, 각각의 사용법과 예제를 살펴보았습니다.
관련 태그
#Python #DataScience #Pandas #MachineLearning #Visualization