본문으로 건너뛰기

006 PyCaret 내장 데이터세트 활용하기

키워드: 내장 데이터, get_data

개요

PyCaret은 학습과 실험을 위한 다양한 내장 데이터세트를 제공합니다. 이 데이터세트들을 활용하면 별도의 데이터 수집 없이 바로 머신러닝을 실습할 수 있습니다. 이 글에서는 PyCaret 내장 데이터세트의 종류와 활용 방법을 알아보겠습니다.

실습 환경

  • Python 버전: 3.11 권장
    • Python 3.11은 2027년 말까지 지원되며, PyCaret 호환 최신 버전입니다.
  • 필요 패키지: pycaret[full]>=3.0, pandas, matplotlib
pip install pycaret[full]>=3.0 pandas matplotlib

Google Colab 사용 불가 Google Colab은 2025년 8월부터 Python 3.12만 지원하여 PyCaret(3.8~3.11) 실습이 불가능합니다. 로컬 환경이나 Docker를 사용해 주세요.

get_data() 함수

get_data() 함수는 PyCaret의 내장 데이터세트를 불러오는 핵심 함수입니다.

기본 사용법

from pycaret.datasets import get_data

# 006 데이터세트 로드
data = get_data('iris')

사용 가능한 데이터세트 목록 확인

# 006 전체 데이터세트 목록
index = get_data('index')
print(index)

출력:

                 Dataset  ...                                        Description
0 iris ... Fisher's Iris flower dataset for classification
1 diabetes ... Pima Indians Diabetes Database
2 wine ... Wine recognition dataset UCI ML
3 cancer ... Wisconsin Diagnostic Breast Cancer (WDBC)
...

분류용 데이터세트

1. iris (붓꽃 데이터)

data = get_data('iris')
print(data.shape) # (150, 5)
특징
행 수150
특성 수4
타겟species (3개 클래스)
난이도입문

특성: sepal_length, sepal_width, petal_length, petal_width

2. diabetes (당뇨병 데이터)

data = get_data('diabetes')
print(data.shape) # (768, 9)
특징
행 수768
특성 수8
타겟Class variable (이진 분류)
난이도초급

3. cancer (유방암 데이터)

data = get_data('cancer')
print(data.shape) # (569, 31)
특징
행 수569
특성 수30
타겟diagnosis (이진 분류)
난이도중급

4. credit (신용카드 사기 탐지)

data = get_data('credit')
print(data.shape) # (284807, 31)
특징
행 수284,807
특성 수30
타겟Class (불균형 이진 분류)
난이도고급

5. titanic (타이타닉 생존 예측)

data = get_data('titanic')
print(data.shape) # (891, 12)
특징
행 수891
특성 수11
타겟Survived (이진 분류)
난이도초급

특징: 결측치가 있어 전처리 학습에 좋음

회귀용 데이터세트

1. boston (보스턴 주택 가격)

data = get_data('boston')
print(data.shape) # (506, 14)
특징
행 수506
특성 수13
타겟medv (주택 가격)
난이도입문

2. insurance (보험료 예측)

data = get_data('insurance')
print(data.shape) # (1338, 7)
특징
행 수1,338
특성 수6
타겟charges (보험료)
난이도초급

특징: 수치형 + 범주형 혼합

3. diamond (다이아몬드 가격)

data = get_data('diamond')
print(data.shape) # (53940, 10)
특징
행 수53,940
특성 수9
타겟Price
난이도중급

4. house (집값 예측)

data = get_data('house')
print(data.shape) # (1460, 81)
특징
행 수1,460
특성 수80
타겟SalePrice
난이도고급

특징: 많은 특성과 결측치로 특성 선택 학습에 좋음

클러스터링용 데이터세트

1. mice (마우스 단백질 발현)

data = get_data('mice')
print(data.shape) # (1080, 82)
특징
행 수1,080
특성 수82
타겟없음 (비지도)
난이도고급

2. jewellery (보석 데이터)

data = get_data('jewellery')
print(data.shape) # (505, 4)
특징
행 수505
특성 수4
타겟없음
난이도입문

이상치 탐지용 데이터세트

1. anomaly (이상 거래)

data = get_data('anomaly')

2. kddcup99 (네트워크 침입 탐지)

data = get_data('kddcup99')

데이터세트 활용 예제

분류: 타이타닉 생존 예측

from pycaret.datasets import get_data
from pycaret.classification import *

# 006 데이터 로드
data = get_data('titanic')

# 006 기본 정보 확인
print(f"데이터 크기: {data.shape}")
print(f"\n타겟 분포:")
print(data['Survived'].value_counts())

# 006 PyCaret 설정
clf = setup(
data=data,
target='Survived',
session_id=42,
verbose=False
)

# 006 모델 비교
best = compare_models(n_select=3)

# 006 최고 모델 튜닝
tuned = tune_model(best[0])

# 006 예측
predictions = predict_model(tuned)

회귀: 보험료 예측

from pycaret.datasets import get_data
from pycaret.regression import *

# 006 데이터 로드
data = get_data('insurance')

# 006 데이터 확인
print(data.describe())

# 006 PyCaret 설정
reg = setup(
data=data,
target='charges',
session_id=42,
verbose=False
)

# 006 모델 비교
best = compare_models()

# 006 시각화
plot_model(best, plot='residuals')

클러스터링: 고객 세분화

from pycaret.datasets import get_data
from pycaret.clustering import *

# 006 데이터 로드
data = get_data('jewellery')

# 006 PyCaret 설정
clust = setup(data, session_id=42, verbose=False)

# 006 K-Means 모델 생성
kmeans = create_model('kmeans', num_clusters=4)

# 006 시각화
plot_model(kmeans, plot='cluster')

# 006 라벨 할당
labeled = assign_model(kmeans)
print(labeled['Cluster'].value_counts())

데이터세트 요약표

데이터세트유형행 수특성 수난이도학습 목적
iris분류1504입문다중 분류 기초
titanic분류89111초급결측치 처리
diabetes분류7688초급이진 분류
cancer분류56930중급고차원 데이터
credit분류284,80730고급불균형 데이터
boston회귀50613입문회귀 기초
insurance회귀1,3386초급범주형+수치형
diamond회귀53,9409중급대용량 데이터
house회귀1,46080고급특성 선택
jewellery클러스터링5054입문군집화 기초

정리

  • get_data('index')로 전체 데이터세트 목록을 확인할 수 있습니다.
  • 분류, 회귀, 클러스터링, 이상치 탐지 등 다양한 문제 유형의 데이터가 준비되어 있습니다.
  • 입문자는 iris, titanic, insurance, jewellery부터 시작하세요.
  • 각 데이터세트는 특정 학습 목적(결측치 처리, 불균형 데이터 등)에 맞게 활용할 수 있습니다.

다음 글 예고

다음 글에서는 setup() 함수 기본 이해에 대해 알아보겠습니다. PyCaret의 가장 중요한 함수인 setup()의 역할과 기본 사용법을 자세히 다룹니다.


PyCaret 머신러닝 마스터 시리즈 #006