정리/토이 데이터셋

[토이 데이터셋] Scikit-Learn 라이브러리의 Datasets 패키지

컴공돌이​ 2022. 6. 27. 12:00

Scikit-Learn 라이브러리의 Datasets 패키지

일반적으로 모델의 학습에 사용할 데이터는 사용자가 직접 파일 형태로 다운을 받은 후에 코드상으로 불러와야 합니다. 하지만, Scikit-Learn 라이브러리에서는 함수의 형태로 몇개의 데이터를 손쉽게 가져올 수 있습니다. Scikit-Learn 라이브러리는 기계학습(Machine Learning, ML) 모델을 구현하는데 있어서 가장 많이 사용하는 라이브러리 중 하나이며, Scikit-Learn에서 제공하는 데이터에는 Toy Dataset과 Real World Dataset이 있습니다.

 

Toy Dataset은 실제 모델을 학습하여 좋은 성능을 이끌어 내기에는 크기가 작은 데이터셋을 말합니다. 크기가 작기 때문에 일종의 장난감(Toy)처럼 다양한 방법을 시험삼아 적용해보기 좋아서 Toy Dataset이라고 불립니다. 반대로 Real World Dataset은 실제 모델을 학습하여 충분히 좋은 성능을 이끌어낼 만큼 충분한 양의 데이터가 수집되어 있는 데이터셋을 말합니다. 이번에는 Toy Dataset에 대해서만 설명을 하겠습니다.

 

Scikit-Learn의 Toy Dataset은 Iris Dataset을 포함해 총 7개로 구성되어 있습니다. 개수가 많지는 않지만 예측 모델, 분류 모델 등의 실습을 진행하기에 적합합니다. Scikit-Learn의 Toy Dataset은 load_iris() 함수처럼 load 뒤에 각 데이터셋 이름을 붙인 함수를 사용하여 데이터를 불러올 수 있습니다. load_boston(), load_iris(), load_diabetes(), load_digits(), load_linnerud(), load_wine(), load_breast_cancer()를 사용하여 7개의 Toy Dataset에 대한 접근이 가능합니다.

 

Scikit-Learn 라이브러리의 Toy Dataset은 이러한 함수를 사용하여 손쉽게 데이터를 불러올 수 있다는 장점이 있지만 한가지 단점이 존재합니다. 바로 제공되는 데이터 형태가 Dataframe이 아니라는 점 입니다. 데이터 분석을 하는데 있어서 Dataframe은 다양한 분석 기능을 제공할뿐더러, 함수들을 사용하여 데이터를 손쉽게 가공할 수 있습니다. 따라서 불러온 데이터는 pd.Dataframe() 함수를 통하여 Dataframe으로 전환하는 작업을 따로 수행해주어야 합니다. Dataframe 형태로 변환할 때 보통 column 명이 필요한데 이는 불러온 데이터에서 feature_names를 입력해줌으로써 해결 가능합니다. 또한, 지도학습(Supervised Learning)에 사용되는 데이터인 경우 타겟(Target) 또는 레이블(Label) 데이터가 필요한데 이 부분은 생성된 Dataframe에 column을 추가적으로 생성해 주어야 합니다.

 

from sklearn.datasets import load_iris
import pandas as pd

iris = load_iris()
iris_data = pd.DataFrame(iris.data, columns=iris.feature_names)
iris_data["target"] = iris.target

 

위의 코드는 Scikit-Learn에 있는 Iris Dataset을 불러와 Dataframe 형태로 저장하는 코드입니다. 코드에서 load_iris 부분을 앞서 언급한 다른 함수들로 변경해준다면 다른 Toy Dataset에 대해서도 접근이 가능합니다.

반응형