아이리스 플라워 데이터 세트

섬네일|자료 집합의 산점도
아이리스 플라워 데이터 세트, 붓꽃 자료 집합, 피셔의 붓꽃 자료 집합('Fisher's Iris data set)은 영국의 통계학자이자 생물학자인 로널드 피셔가 1936년 논문 "분류학적 문제에서 다중 측정의 사용(The use of multiple measurements in taxonomic problems)"에서 선형 판별 분석의 예시로 사용하고 유명해진 다변량 통계 자료 집합이다. 이 자료 집합은 에드가 앤더슨이 세 가지 관련 종의 붓꽃속 꽃의 형태학적 변이를 정량화하기 위해 자료를 수집했기 때문에 때로는 앤더슨의 붓꽃 자료 집합이라고도 불린다. 세 종 중 두 종은 가스페반도에서 "모두 같은 목초지에서 같은 날 채집되었고 같은 사람이 같은 장비로 같은 시간에 측정했다."

이 자료 집합은 세 종의 붓꽃(Iris setosa, Iris virginica, Iris versicolor) 각각 50개 샘플로 구성된다. 각 샘플에서 네 가지 특징이 측정되었다: 꽃받침과 꽃잎의 길이와 너비(센티미터). 이 네 가지 특징의 조합을 바탕으로 피셔는 각 종을 구별하는 선형 판별 모델을 개발했다. 피셔의 논문은 Annals of Eugenics(오늘날의 Annals of Human Genetics)에 게재되었다.

 자료 집합의 사용 
섬네일|불만족스러운 K-평균 군집화 (자료를 알려진 클래스로 군집화할 수 없음) 및 ELKI를 사용하여 시각화된 실제 종

섬네일|left|붓꽃 자료 집합에 대한 소위 "지하철 노선도"의 예 붓꽃-버시컬러와 섞인 붓꽃-버지니카의 작은 부분만 존재한다. 다른 붓꽃 종의 모든 다른 샘플은 다른 노드에 속한다.

원래 피셔의 선형 판별 분석이 적용된 예제 자료 집합으로 사용되었지만, 서포트 벡터 머신과 같은 기계 학습의 많은 통계적 분류 기술에 대한 전형적인 테스트 사례가 되었다.

그러나 이 자료 집합은 분명하게 분리되는 두 개의 클러스터만 포함하고 있기 때문에 클러스터 분석에서 흔히 사용되지는 않는다. 한 클러스터에는 Iris setosa가 포함되고, 다른 클러스터에는 Iris virginica와 Iris versicolor가 모두 포함되며 피셔가 사용한 종 정보 없이는 분리할 수 없다. 이는 데이터 마이닝에서 지도 학습 기법과 비지도 학습 기법의 차이를 설명하는 좋은 예시가 된다. 피셔의 선형 판별 모델은 객체 종을 알 때만 얻을 수 있다. 클래스 레이블과 클러스터는 반드시 같지 않다.

그럼에도 불구하고 세 가지 붓꽃 종 모두 비선형 및 분기 주성분에 대한 투영에서 분리 가능하다. 이 자료 집합은 과도한 노드 수, 굽힘 및 늘어짐에 대한 약간의 페널티를 부여하여 가장 가까운 트리로 근사된다. 그런 다음 소위 "지하철 노선도"가 구성된다. 자료 점들은 가장 가까운 노드에 투영된다. 각 노드에 대해 투영된 점들의 원그래프가 준비된다. 원그래프의 면적은 투영된 점들의 수에 비례한다. 이 도표(왼쪽)에서 다른 붓꽃 종의 샘플 대부분이 다른 노드에 속한다는 것이 분명하다. 붓꽃-버지니카의 작은 부분만이 붓꽃-버시컬러와 섞여 있다 (도표의 파란색-녹색 혼합 노드). 따라서 세 가지 붓꽃 종(Iris setosa, Iris virginica, Iris versicolor)은 비선형 주성분 분석의 비지도 학습 절차로 분리 가능하다. 이를 구별하기 위해서는 주성분 트리의 해당 노드를 선택하는 것만으로 충분하다.

 자료 집합 
섬네일|Iris setosa이 자료 집합은 꽃받침 길이, 꽃받침 너비, 꽃잎 길이, 꽃잎 너비, 종의 다섯 가지 속성에 따라 150개의 기록으로 구성된다.섬네일|Iris versicolor
섬네일|Iris virginica
섬네일|피셔 붓꽃 자료 집합의 스펙트럼 맵 이변량 그림

붓꽃 자료 집합은 기계 학습 초급자를 위한 자료 집합으로 널리 사용된다. 이 자료 집합은 R 기본 패키지와 scikit-learn 기계 학습 라이브러리 내에 포함되어 있어 사용자들이 별도의 자료 출처를 찾을 필요 없이 접근할 수 있다.

자료 집합의 여러 버전이 출판되었다.

 R 사용 예시 코드 

아래에 제시된 R 코드 예시는 이 문서 상단에 표시된 산점도를 재현한다:
# Show the data set
iris
# Show the help page, with information about the data set
?iris

# Create scatterplots of all pairwise combination of the 4 variables in the data set
pairs(iris[1:4], main="Iris Data (red=setosa,green=versicolor,blue=virginica)",
 pch=21, bg=c("red","green3","blue")[unclass(iris$Species)])

# Alternatively using ggplot and ggally.
install.packages(c("ggplot2","GGally")) # install packages if you don't have it.

#Load libraries.
library(ggplot2)
library(GGally)

# Plot scatter plot matrix for the iris data set
ggpairs(data = iris, # your iris data
 columns = 1:4, # columns for the scatter plot
 mapping = aes(colour = Species,fill = Species),
 title = 'Scatter Plot Matrix for Iris Data Set',
 ) +
 theme(plot.title = element_text(hjust = 0.5,face = 'bold')) +
 scale_color_brewer(palette = 'Set1')

 파이썬 사용 예시 코드 
from sklearn.datasets import load_iris

iris = load_iris()
print(iris)

이 코드는 다음과 같은 결과를 보여준다:
{'data': array([[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],...
'target': array([0, 0, 0, ... 1, 1, 1, ... 2, 2, 2, ...
'target_names': array(['setosa', 'versicolor', 'virginica'], dtype='