소개
이것은 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 차원으로 결과를 시각화하는 방법도 배웠습니다.