IRIS_FLOWER_DETECTION (머신러닝을 이용한 붓꽃 분류)
이 프로젝트는 붓꽃(Iris) 데이터셋을 활용하여 꽃잎(Petal)과 꽃받침(Sepal)의 길이 및 너비를 기반으로 꽃의 종류를 인공지능으로 분류하는 머신러닝 프로젝트입니다.
주요 특징
- 데이터 탐색 및 시각화:
pandas,matplotlib,seaborn라이브러리를 사용하여 데이터의 분포와 특성 간의 관계를 시각적으로 분석합니다. - 머신러닝 모델 사용: 서포트 벡터 머신(SVM) 알고리즘인
SVC를 사용하여 정교한 분류 모델을 생성합니다. - 모델 최적화 (Hyperparameter Tuning):
GridSearchCV를 활용하여 모델의 성능을 결정하는 파라미터(C,gamma)의 최적 조합을 찾습니다. - 상세한 성능 평가: 분류 보고서(Classification Report)와 혼동 행렬(Confusion Matrix)을 통해 모델이 얼마나 정확하게 분류했는지 평가합니다.
코드 설명
이 프로젝트의 핵심 머신러닝 단계는 다음과 같습니다.
1. 데이터 시각화 (EDA)
seaborn의 pairplot을 사용하여 각 품종별 데이터 분포를 한눈에 파악합니다.
import seaborn as sns
sns.pairplot(iris, hue='species', palette='Dark2')
2. 모델 학습 및 최적화
GridSearchCV를 사용하여 최적의 파라미터를 찾고 모델을 학습시킵니다.
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
param_grid = {'C': [0.1, 1, 10, 100], 'gamma': [1, 0.1, 0.01, 0.001]}
grid = GridSearchCV(SVC(), param_grid, refit=True, verbose=2)
grid.fit(X_train, y_train)
3. 예측 및 평가
완성된 모델로 테스트 데이터를 예측하고 정확도를 분석합니다.
from sklearn.metrics import classification_report, confusion_matrix
grid_predictions = grid.predict(X_test)
print(confusion_matrix(y_test, grid_predictions))
print(classification_report(y_test, grid_predictions))