본문 바로가기

AI

머신러닝 : Iris 내장 데이터셋 분류

학습시키기 위한 데이터셋을 만들 필요 없이(웹크롤링이나 로컬 이미지 업로드 없이...)

라이브러리에 내장된 데이터셋을 사용해서 학습결과의 정확도(Accuracy) 를 측정하는 내용이다.

 

파이썬 venv 터미널에서 bash


pip install scikit-learn


전처리후

 

 

아래 파이썬 소스코드 스크립트 이다.


from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# 1. 데이터 로드
iris = load_iris()
X = iris.data
y = iris.target

# 2. 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 3. 모델 학습
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)

# 4. 예측 및 평가
y_pred = model.predict(X_test)
print(f"Accuracy: {accuracy_score(y_test, y_pred):.2f}")


 

 

아래 개발툴 실행 결과 

 

 

 

iris 는 붓꽃을 의미한다.

 

위에서 언급한 Accuracy 즉 정확도는

모델의 성능을 측정하는 지표 중 하나로, 전체 샘플 중 올바르게 분류된 샘플의 비율을 나타낸다.

 

공식이다.

Accuracy = 올바르게 예측된 샘플 수/ 전체 샘플 수(소스코드에서 사용한 데이터 셋)

 

 

정확도가 1이라는 결과의 다른 근거는 

제공된 iris 데이터셋 클래스 간의 분포와 특징(꽃잎, 꽃받침 길이/너비)이 명확히 구분되므로 분류가 쉽고,

 

소스에 있는

train_test_split에서 데이터의 20%만 테스트 데이터로 사용했기 때문에, 테스트 샘플의 수가 적어서 쉽게 높은 성능을 달성할 가능성이 있다.(데이터가 많으면 학습결과 는 오류치가 증가하므로 데이터가 굉장히 중요하다.)

 

머신러닝의 지도학습은 분류(Classification)와 회귀(Regression)일때

  • 분류: 정답이 카테고리(예: 위에서 사용한 Iris 품종)
  • 회귀: 정답이 연속적인 값(예: 집값 예측)

이것이 머신러닝 지도학습의 분류를 하기위한

데이터셋과 이름을 정해주는 라벨이 필요한 이유이다.

 

'AI' 카테고리의 다른 글

딥러닝 데이터셋 : MNIST  (0) 2024.11.20
딥러닝: TensorFlow를 사용한 간단한 MNIST 분류  (1) 2024.11.20