본문 바로가기
카테고리 없음

[DL] Dataset: Iris

by ds31x 2024. 5. 23.

Iris Dataset

Data Science와 Machine Learning을 공부하는 이라면 한 번쯤은 사용해보게 되는 dataset임.
Iris Dataset 을 소개하고, Scikit-Learn에서 제공하는 방법을 살펴보겠음.


Iris Dataset이란?

Iris Dataset은 1936년 영국의 통계학자인 Ronald A. Fisher가 처음 소개한 Dataset임.
이 Dataset은 세 가지 종류의 붓꽃(Iris Setosa, Iris Versicolour, Iris Virginica)의 sample data로 구성됨.
각 sample은 다음의 네 가지 특성(feature)을 가짐:

  1. 꽃받침 길이(Sepal Length)
  2. 꽃받침 너비(Sepal Width)
  3. 꽃잎 길이(Petal Length)
  4. 꽃잎 너비(Petal Width)

총 150개의 sample이 있으며, 각 sample은 위의 네 가지 특성과 함께 해당하는 꽃의 종류로 라벨링(labeling)되어 있음.


Scikit-Learn에서 Iris 데이터셋 불러오기

Python의 머신러닝 라이브러리인 Scikit-Learn은 Iris 데이터셋을 제공하고 있음.

다음 코드를 참고:

from sklearn.datasets import load_iris
import pandas as pd

# Iris 데이터셋 불러오기
iris = load_iris()

# 데이터셋 설명
print(iris.DESCR)

# 데이터셋을 판다스 데이터프레임으로 변환
iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
iris_df['species'] = iris.target

# 데이터프레임 출력
print(iris_df.head())

이 코드를 실행하면 Iris 데이터셋의 설명과 함께, 데이터프레임 형태로 변환된 Iris 데이터셋의 일부를 확인할 수 있음.


데이터 분석 및 시각화

Iris Dataset은 다양한 분석 및 시각화 기법을 연습하기에 매우 적합함.
예를 들어, 각 꽃 종류별로 특성들의 분포를 시각화하면 다음과 같음:

import seaborn as sns
import matplotlib.pyplot as plt

# 종(species) 열을 문자열로 변환
ori_species = iris_df['species'].copy()

iris_df['species'] = iris_df['species'].apply(lambda x: iris.target_names[x])

# 페어플롯(pairplot) 시각화
# 기본 사이즈 설정
sns.pairplot(iris_df, hue='species')
plt.show()
iris_df['species']= ori_species

이 코드는 Seaborn 라이브러리를 사용하여 각 특성 간의 관계를 시각화한 scatter diagrams을 생성함.


결론

Iris Dataset은 Data Science와 ML을 시작하는 이에게 classification task를 익히기 좋은 데이터셋임.
비교적 간단한 구조와 다양한 특성, 여러 클래스로 구성되어 있어서

기본적인 데이터 분석 및 시각화, 머신러닝 모델 학습에 이르기까지 폭넓게 활용할 수 있음.


https://gist.github.com/dsaint31x/6078797e40ff5725271717516f7ead47

 

ml_iris_dataset.ipynb

ml_iris_dataset.ipynb. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com