Scikit-learn 을 이용한 아이리스 꽃 분류

Beginner

This tutorial is from open-source community. Access the source code

소개

이것은 Python 의 인기 머신 러닝 라이브러리인 Scikit-learn 을 사용하는 방법을 보여주는 단계별 실습입니다. 다양한 종류의 아이리스 꽃의 물리적 특성에 대한 정보를 포함하는 아이리스 데이터셋을 사용할 것입니다. 이 실습의 목표는 Scikit-learn 을 사용하여 데이터 로딩, 데이터 전처리, 특징 선택 및 시각화와 같은 기본 머신 러닝 작업을 수행하는 방법을 보여주는 것입니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근할 수 있습니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사를 자동화할 수 없습니다.

학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

라이브러리 가져오기

필요한 라이브러리를 가져오는 것으로 시작합니다. 이 실습에서는 Scikit-learn, NumPy, Matplotlib 를 사용할 것입니다.

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn import datasets
from sklearn.decomposition import PCA

아이리스 데이터셋 로드

Scikit-learn 의 내장 함수 load_iris를 사용하여 아이리스 데이터셋을 로드합니다.

iris = datasets.load_iris()
X = iris.data[:, :2]  ## 처음 두 개의 특징만 가져옵니다.
y = iris.target

데이터 시각화

산점도를 사용하여 아이리스 데이터셋을 시각화합니다. 꽃받침 길이를 꽃받침 너비에 대해 플롯하고, 클래스에 따라 점의 색상을 지정합니다.

x_min, x_max = X[:, 0].min() - 0.5, X[:, 0].max() + 0.5
y_min, y_max = X[:, 1].min() - 0.5, X[:, 1].max() + 0.5

plt.figure(2, figsize=(8, 6))
plt.clf()

## 학습 데이터를 플롯합니다.
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Set1, edgecolor="k")
plt.xlabel("꽃받침 길이")
plt.ylabel("꽃받침 너비")

plt.xlim(x_min, x_max)
plt.ylim(y_min, y_max)
plt.xticks(())
plt.yticks(())

PCA 수행

데이터셋의 차원을 줄이기 위해 주성분 분석 (PCA) 을 수행합니다. 데이터를 첫 세 주성분에 투영하고 3 차원으로 결과를 플롯합니다.

fig = plt.figure(1, figsize=(8, 6))
ax = fig.add_subplot(111, projection="3d", elev=-150, azim=110)

X_reduced = PCA(n_components=3).fit_transform(iris.data)
ax.scatter(
    X_reduced[:, 0],
    X_reduced[:, 1],
    X_reduced[:, 2],
    c=y,
    cmap=plt.cm.Set1,
    edgecolor="k",
    s=40,
)

ax.set_title("첫 세 PCA 방향")
ax.set_xlabel("첫 번째 고유 벡터")
ax.xaxis.set_ticklabels([])
ax.set_ylabel("두 번째 고유 벡터")
ax.yaxis.set_ticklabels([])
ax.set_zlabel("세 번째 고유 벡터")
ax.zaxis.set_ticklabels([])

요약

이 실습에서는 Scikit-learn 을 사용하여 아이리스 데이터셋을 로드하고, Matplotlib 을 사용하여 데이터를 시각화하고, Scikit-learn 을 사용하여 PCA 를 수행하는 방법을 배웠습니다. 또한 데이터를 첫 세 주성분에 투영하고 3 차원으로 결과를 시각화하는 방법도 배웠습니다.