티스토리 뷰

사이킷런(scikit-learn)은 파이썬 머신러닝 라이브러리입니다.

 

 

 

사이킷런을 이용하여 붓꽃의 품종을 분류(classification)하는 머신러닝 모델을 만들어봅시다. 붓꽃 데이터 세트는 꽃잎의 길이, 너비, 꽃받침의 길이, 너비 등의 피처를 갖습니다.

 

 

 

사이킷런 패키지 모듈명은 sklearn으로 시작합니다. 예를들어, sklearn.datasets 내의 모듈은 사이킷런에서 자체적으로 제공하는 데이터 세트 생성 모듈의 집합입니다. sklearn.tree 내의 모듈은 트리 기반 머신러닝 알고리즘을 구현한 클래스의 집합입니다. sklearn.model_selection은 학습/검증/예측 데이터로 데이터를 나누거나 최적 하이퍼 파라미터로 평가하기 위한 다양한 모듈의 집합입니다.

 

 

 

 

 

 

 

붓꽃 데이터 세트, 분류 알고리즘인 의사결정나무, 학습 및 검증 데이터로 데이터를 분류하는 train_test_split 메서드를 불러왔습니다.

 

 

 

 

 

 

 

iris는 데이터 세트입니다. iris.data는 피처 값을 numpy data로 가지고 있으며, iris.target은 정답 레이블을 numpy data로 가집니다. iris.target_names은 각 레이블값에 대응하는 레이블명입니다.

 

 

 

 

 

 

 

 

데이터 세트를 판다스 DataFrame 객체로 만듭시다. 

 

 

 

 

 

 

 

train_test_split() 메서드는 test_size 값의 비율로 학습 데이터와 테스트 데이터를 분할합니다. 학습 데이터로 80%, 테스트 데이터로 20%로 설정했습니다. 메서드의 첫 번째 파라미터는 피처 데이터 세트이며, 두 번째 파라미터는 레이블 데이터 세트입니다. 메서드를 호출을 할 때마다 무작위로 데이터를 분리하므로, 데이터를 매번 동일하게 분리하기 위해 random_state를 특정 값으로 지정했습니다.

 

 

 

X_train : 학습용 피처 데이터 세트

X_test : 테스트용 피처 데이터 세트

y_train : 테스트용 레이블 데이터 세트

y_test : 테스트용 레이블 데이터 세트

 

 

이므로, train_test_split()의 반환값이 각각 어떤 것인지를 잘 기억합시다.

 

 

 

 

 

 

 

분류 알고리즘 중 하나인 의사결정나무 객체를 생성하고, fit() 메서드를 통해 학습 데이터 세트로 모델을 학습시킵니다.

 

 

 

 

 

 

 

 

학습된 모델로 예측을 수행합니다. 예측은 반드시 학습 데이터가 아닌 데이터로 수행해야 하며, 일반적으로 테스트 데이터 세트를 이용합니다. 의사결정나무 객체의 predict() 메서드에 테스트 피처 데이터를 입력하여 정답 레이블을 예측했습니다.

 

 

 

머신러닝 모델의 성능 평가 방법은 여러 가지가 있으나, 여기서는 정확도를 측정하겠습니다. 정확도란 예측 결과와 실제 레이블 값 얼마나 정확한지를 평가하는 지표입니다. 정확도는 accuracy_score() 메서드로 구할수 있습니다. 메서드의 첫 번째 파라미터로 정답 레이블 세트, 두 번째 파라미터로 모델의 예측 레이블 세트를 입력하면 됩니다.

 

 

 

 

붓꽃 데이터 세트를 이용한 분류 프로세스를 정리하면 아래와 같습니다.

데이터 세트 분리 -> 모델 학습 -> 예측 수행 -> 평가

«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31