파이썬으로 배우는 AI입문

유형주·2022년 3월 17일
0

무작정 코딩으로 시작하는 AI입문

(KOCW 파이썬 기반의 AI프로그래밍 강의의 노트입니다.)

1. 목표

붓꽃의 데이터 150개가 주어진다.

  • 붓꽃은 3가지 종류로 나뉘는데 데이터는 (꽃잎 너비, 높이, 길이, 붓꽃의 종류)

꽃잎 너비, 높이, 길이만 input으로 받아서 어떤 붓꽃의 종류에 대한 데이터인지 추론하는 모델을 만드는 것.

k-최근접 이웃 알고리즘을 이용하여 모델을 만들 것이다.

k-최근접 이웃 알고리즘이란?

이웃 k개를 정하고 모델에 다량의 데이터를 학습시킨다.
predict를 위한 input데이터를 받고 받은 데이터의 k개의 이웃을 확인해서 인접한 이웃 중에 가장 많이 나온 classification이 추론 결과가 된다.


from sklearn.datasets import load_iris
import pandas as pd

iris_dataset = load_iris()

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'],iris_dataset['target'],test_size = 0.25, random_state = 0)

from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train,y_train)
prediction = knn.predict(X_test)
  1. iris_dataset 변수에 load_iris()을 통해 데이터를 초기화해준다. 붓꽃 150개의 데이터가 dictonary 타입으로 저장된다.

  2. 모델에 학습시킬 때 모든 150개의 데이터를 다 학습시키는 것이 아니라 일부는 테스트용 데이터로 남기고 나머지를 훈련용 데이터로 정한다. 이 때 도움을 주는 툴이 train_test_split함수이다.

	train_test_split(array, test_size, train_size, random_state)

	array는 split할 데이터, size들은 각 비율(0~1), random_state는 random seed이다.
  1. knn = KNeighborsClassifier(n_neighbors=1)에서 모델 하나를 init하며 이웃의 수를 정한다. 이 코드에서는 이웃 1개로 설정했다.

  2. knn.fit(X_train,y_train)에서 훈련용 데이터를 모델에 학습시킨다. k-최근접 이웃 알고리즘은 모델에 데이터를 저장하는게 학습의 끝이다.

  3. knn.predict함수를 통해 데이터에 대해 가까운 이웃을 보고 prediction한다.

0개의 댓글