[파이썬][scikit-learn] scikit-learn에서 데이터 세트 로딩

머신 러닝 및 데이터 분석 작업을 수행할 때 데이터 세트를 로드하는 것은 중요한 단계입니다. scikit-learn은 파이썬에서 머신 러닝 작업을 지원하는 인기있는 라이브러리 중 하나입니다. 이번 포스트에서는 scikit-learn을 사용하여 데이터 세트를 로드하는 방법에 대해 알아보겠습니다.

scikit-learn에서는 여러 가지 데이터 세트를 제공하며, 이러한 데이터 세트를 로드하기 위해 load_* 함수를 사용할 수 있습니다. 일반적으로 load_* 함수는 파이썬 딕셔너리 형태로 데이터와 레이블 정보를 반환합니다.

예를 들어, scikit-learn의 load_iris 함수를 사용하여 아이리스 데이터 세트를 로드해 보겠습니다.

from sklearn.datasets import load_iris

# 데이터 세트 로드
data = load_iris()

# 데이터 확인
print(data.keys())

위의 코드에서 load_iris 함수를 사용하여 데이터를 로드하고, data.keys()를 통해 로드된 데이터의 키를 확인할 수 있습니다. 이를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename'])

위의 결과에서 data는 입력 데이터를, target은 레이블을 나타냅니다.

이제 데이터를 좀 더 자세히 살펴보겠습니다. 실행한 코드에 다음 줄을 추가하여 데이터의 형태와 일부 샘플을 출력합니다.

# 데이터 형태 출력
print(data['data'].shape)

# 첫 5개 샘플 출력
print(data['data'][:5])

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

(150, 4)
[[5.1 3.5 1.4 0.2]
 [4.9 3.  1.4 0.2]
 [4.7 3.2 1.3 0.2]
 [4.6 3.1 1.5 0.2]
 [5.  3.6 1.4 0.2]]

위의 결과에서 data['data'].shape는 데이터의 형태를 나타내며, (150, 4)를 확인할 수 있습니다. 또한 data['data'][:5]에서는 첫 5개 샘플을 출력합니다.

이제 데이터 로드와 관련된 추가 정보를 출력해 보겠습니다:

# 데이터 세트 설명 출력
print(data['DESCR'])

# 특성 이름 출력
print(data['feature_names'])

# 레이블 이름 출력
print(data['target_names'])

위의 코드를 실행하면 데이터 세트의 설명, 특성 이름 및 레이블 이름을 출력할 수 있습니다. 예를 들어, 아이리스 데이터 세트의 경우, 다음과 같은 결과를 얻을 수 있습니다:

.. _iris_dataset:

Iris plants dataset
--------------------

**Data Set Characteristics:**

    :Number of Instances: 150 (50 in each of three classes)
    :Number of Attributes: 4 numeric, predictive attributes and the class
    :Attribute Information:
        - sepal length in cm
        - sepal width in cm
        - petal length in cm
        - petal width in cm
        - class:
                - Iris-Setosa
                - Iris-Versicolour
                - Iris-Virginica
                
**종속 변수** (class):
        - 0: Iris-Setosa
        - 1: Iris-Versicolour
        - 2: Iris-Virginica

['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']

['setosa' 'versicolor' 'virginica']

위에서는 데이터 세트에 대한 설명, 특성 이름 및 레이블 이름을 확인할 수 있습니다.

scikit-learn은 다양한 데이터 세트를 제공하므로 작업에 맞는 데이터 세트를 로드하여 활용할 수 있습니다. 위의 예제는 그중에서도 아이리스 데이터 세트를 사용하였지만, 다른 데이터 세트로도 위와 같은 방법으로 데이터를 로드할 수 있습니다.

이로써 scikit-learn에서 데이터 세트를 로드하는 방법에 대해 알아보았습니다. 데이터 세트를 로드하는 것은 머신 러닝 및 데이터 분석 작업에서 반드시 수행해야 하는 중요한 절차입니다. scikit-learn을 사용하면 이러한 작업을 더욱 손쉽게 수행할 수 있습니다.