본문 바로가기
공부/R & Python

9-4. 데이터마이닝과 분류 (학습데이터와 검증데이터)

by 드인 2020. 2. 24.

9-4. 데이터마이닝과 분류 (학습데이터와 검증데이터)


3) iris 데이터설명

- Iris 데이터 (붓꽃 데이터)

1. 꽃잎의 폭과 길이에 대한 4개 변수로 꽃의 종류(setosa, versicolor, virginica)를 예측하는 것이 목적

2. 타겟변수(y) : setosa, versicolor, virginica

Iris setosa, Iris versicolor, Iris virginica

=> 데이터마이닝 : 분류(classification)

 

- iris 데이터 (iris.csv)

Sepal.Length, Sepal.Width, Petal.Length, Petal.Width => input변수(독립변수)

Species => output변수(종속변수, 타겟변수)

 

4) 학습데이터와 검증데이터

- k-fold cross-validation (k=3, 5, 10)

5) 학습데이터와 검증데이터 생성

- iris 데이터 (iris.csv) - 150개 데이터

Sepal.Length, Sepal.Width, Petal.Length, Petal.Width => input변수(독립변수)

Species => output변수(종속변수, 타겟변수) => y=iris[,5]

 

set.seed(1000)
N=nrow(iris)
tr.idx=sample(1:N, size=N*2/3, replace=FALSE)
tr.idx

tr.idx는 100개의 무작위로 선정된 100개의 데이터 아이디

 

- set.seed는 난수 생성 시 처음 시작값을 주어 동일한 훈련표본 사용

(set.seed를 지정하지 않으면 매번 다른 훈련표본 생성)

- train/test를 2:1로 랜덤 분할(100/50, n=150)

 

3-fold cross-validation : training(2)+test(1)

 

- iris 데이터를 cross-validation를 위해 분할함

iris.train<-iris[tr.idx,-5]

5번째 열의 종속변수를 제외한 100개의 데이터
iris.test<-iris[-tr.idx,-5]

5번째 열의 종속변수를 제외한 50개의 데이터

 

iris.test를 열어보면 50개의 데이터를 볼수 있음

iris.training를 열어보면 100개의 데이터를 볼수 있음

 

- iris 데이터의 타겟변수 (학습데이터의 타겟변수, 검증데이터의 타겟변수)

trainLabels<-iris[tr.idx,5]
testLabels<-iris[-tr.idx,5]