필요한 라이브러리 가져오기 및 데이터셋 로드
이 단계에서는 필요한 라이브러리를 가져오고 붓꽃 데이터셋을 로드하는 방법을 배우게 됩니다. 이 단계를 완료하려면 아래 단계를 따르세요:
iris_classification_svm.py에서 데이터셋 로드, 데이터 분할, SVM 모델 생성 및 성능 평가를 위한 라이브러리를 포함하여 필요한 라이브러리를 가져옵니다.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score, classification_report
sklearn.datasets에서 붓꽃 데이터를 로드하고 데이터셋을 훈련 및 테스트 세트로 분할합니다. 데이터셋은 재현성을 위해 random seed 42 를 사용하여 80-20 비율로 훈련 및 테스트용으로 분할됩니다.
## Continue in the same file
def load_and_split_data() -> tuple:
"""
Returns:
tuple: [X_train, X_test, y_train, y_test]
"""
iris = load_iris()
X, y = iris.data, iris.target
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
return X_train, X_test, y_train, y_test
이 코드는 붓꽃 데이터셋을 로드하고 머신 러닝 목적으로 훈련 및 테스트 세트로 분할합니다. 각 부분에 대한 설명은 다음과 같습니다:
- 필요한 라이브러리 가져오기:
sklearn.datasets는 붓꽃 데이터셋을 포함한 데이터셋을 로드하는 데 사용됩니다.
sklearn.model_selection은 데이터셋을 훈련 및 테스트 세트로 분할하기 위한 유틸리티를 제공합니다.
sklearn.svm에는 머신 러닝 알고리즘의 한 유형인 Support Vector Machines (SVM) 을 위한 클래스가 포함되어 있습니다.
sklearn.metrics에는 정확도 (accuracy) 및 분류 보고서 (classification report) 와 같이 모델의 성능을 평가하기 위한 도구가 포함되어 있습니다.
- 함수 정의:
load_and_split_data라는 함수가 정의됩니다. 이 함수는 다음 작업을 수행합니다:
- 붓꽃 데이터셋 로드:
load_iris()는 분류 작업에 널리 사용되는 데이터셋인 붓꽃 데이터셋을 로드하는 sklearn.datasets에서 제공하는 함수입니다. 이 데이터셋에는 세 가지 다른 종의 150 개 붓꽃의 측정값이 포함되어 있습니다.
- 데이터 분리: 데이터셋은 특징 (feature,
X) 과 대상 레이블 (y) 로 분리됩니다. 이 경우 X는 붓꽃의 4 차원 측정값이 되고, y는 해당 종 레이블 (0, 1 또는 2) 이 됩니다.
- 데이터 분할:
sklearn.model_selection의 train_test_split을 사용하여 데이터를 훈련 및 테스트 하위 집합으로 분할합니다. test_size=0.2 매개변수는 데이터의 20% 가 테스트에 사용되고 나머지 80% 가 훈련에 사용됨을 의미합니다. random_state=42는 분할의 재현성을 보장합니다. 동일한 시드 (여기서는 42) 를 사용하면 코드를 실행할 때마다 동일한 분할이 생성됩니다.
- 반환 값: 이 함수는 훈련 및 테스트 데이터 모두에 대한 특징 및 대상 세트인
X_train, X_test, y_train, y_test를 포함하는 튜플을 반환합니다.