갈루아의 반서재

scikit-learn (1) - 기계학습이란?



1. 기계학습의 3가지 개념


1) 태스크(T)를 해결하기 위해 학습해야 한다

2) 태스크를 실행하기 위해 학습할 일부 경험(E)이 필요하다(데이터셋을 통해 표현된다)

3)얼마나 태스크를 잘 해결했는지 파악하기 위한 성능(P)을 측정할 필요가 있다



2. 기계학습기법은 보통 데이터셋으로 대표되는 과거 경험에 의존한다.


본 포스팅에서는 로널드 피셔가 소개한 아이리스 꽃 데이터셋을 사용한다.

해당 데이터셋에는 4개의 속성, 150개의 원소(인스턴스)가 있다.

Iris flower data set https://en.wikipedia.org/wiki/Iris_flower_data_set



Fisher's Iris Data
Sepal length Sepal width Petal length Petal width Species
5.1 3.5 1.4 0.2 I. setosa
4.9 3.0 1.4 0.2 I. setosa
4.7 3.2 1.3 0.2 I. setosa
4.6 3.1 1.5 0.2 I. setosa
5.0 3.6 1.4 0.2 I. setosa
5.4 3.9 1.7 0.4 I. setosa
4.6 3.4 1.4 0.3 I. setosa


Iris setosa                                Iris versicolor                            Iris virginica


우리가 하고자하는 것은 위의 Fisher's Iris Data 를 기반으로 아이리스 꽃받침의 길이와 너비, 꽃잎의 길이와 너비, 품종을 학습(E)해 꽃받침의 길이와 너비, 꽃잎의 길이와 너비만 알고 있는 새로운 인스턴스의 품종을 추측(T)해보는 것이다. 그리고 이러한 예측 모델의 성능을 평가(P)해 보는 것이다.



3. iris 데이터셋의 구성요소


아이리스 꽃 데이터셋은 아래의 두 구성요소를 가진 오브젝트이다.

1) data 배열(real-value) : 배열의 차원은 150개의 행과 4개의 열을 의미하는 (150, 4) 이다.

2) target 배열(class value) : 각 인스턴스의 아이리스 품종에 해당하는 0, 1, 2 값 중 하나를 가지는 배열 (0 : setosa, 1 : versicolor , 2: virginica)


1
2
3
4
5
6
>>> from sklearn import datasets
>>> iris = datasets.load_iris()
>>> X_iris, y_iris = iris.data, iris.target
>>> print (X_iris[0], y_iris[0])
 
(array([ 5.1,  3.5,  1.4,  0.2]), 0)
cs