[Session 02] 숫자 분류
숫자 분류
학습 목표
숫자로 표현될 수 있는 자료를 학습하여 원하는 자료를 분류할 수 있다.
문제 해결 상황
엔트리봇은 꽃 이름 묻는 앱을 이용해서 길가에 꽃들의 이름을 금방 알 수 있다. 그런데 그 앱은 붓꽃인지는 인식하지만, 붓꽃의 3가지 종류는 구분을 하지 못하였다. 비슷비슷해서 알아보기 힘든 붓꽃의 크기 값들을 이용해서 품종을 알아내고 싶다.
문제 해결 방법
식물학자 애드가 앤더슨 박사님은 얼핏 보면 비슷비슷해 보이는 3가지 붓꽃 품종(세토사, 베르시칼라, 버지니카)를 분류하는 기준을 찾고 싶었다. 붓꽃 모양에 따른 품종을 분류하기 위하여 고민하던 끝에, 붓꽃에서 얻을 수 있는 숫자값으로 해결하고자 시도했다. 앤더슨 박사님은 붓꽃 3가지 품종별로 150송이를 일일이 꽃잎 길이와 꽃받침의 너비를 측정하여 숫자 자료를 만들었다.
![]()
![]()
앤더슨 박사님이 수집해놓으신 붓꽃 품종별 꽃잎 길이와 꽃받침 너비 숫자자료가 있기 때문에, 이 자료를 학습시켜 품좀을 분류하는 인공지능 모델을 만들수 있다. 이 자료를 학습시켜 인공지능 모델을 만들었으면, 품종이 궁금한 붓꽃의 꽃잎 길이와 꽃받침의 너비값을 다음 그림과 같이 입력하면 품종이 분류되어 나올 것이다.
2-1 데이터 수집하기
1) 과
을 통해, 엔트리에서 제공하는 붓꽃 예시 데이터를 선택한다.
2) 붓꽃 데이터는 번호, 꽃받침 길이, 꽃받침 너비, 꽃잎 길이, 꽃잎 너비, 품종에 대해서 150개로 구성되어 있다.
2-2 인공지능 분류 모델 학습하기
1) 데이터를 가져온 후, 인공지능 메뉴를 통하여 분류:숫자를 클릭한다.
2) 데이터입력 펼침 버튼을 펴고, 붓꽃 예시 데이터를 선택하면, 5가지 속성이 나온다. 이중 핵심 속성인 꽃잎 길이와 꽃받침 길이를 끌어다 놓는다. 우리가 예측하고자 하는 품종은 클래스 속성의 펼침버튼을 이용하여 선택한다. 그리고 모델 학습하기를 실행하면 결과값 입력내용이 제공된다.
3) 결과확인 창에 꽃잎 길이 5, 꽃받침 길이 5를 입력하면, 베르시칼라 품종일 가능성이 70.18%로 버지니카 품종일 가능성이 30.62%로 추정하는 결과를 제공한다.
2-3 엔트리 프로그래밍
|
꽃이름 찾는 앱을 실행하는 여자 아이 오브젝트를 만들어보자. |
1) 소녀 오브젝트를 불러오고나서 오른쪽 위의 모양 가져오기를 클릭한다. 모양선택 아래에 인터페이스를 선택하여 그 중 스마트폰_켜짐을 선택하여 추가하고, 크기를 줄이고 회전시킨 후 여자 아이 손위에 맞춰 놓는다. |
|
2) 여자 아이가 대화하는 코드를 넣는다. |
|
3) 남자 아이 오브젝트를 추가한 후 대화하는 코드를 넣는다. 남자 아이의 말이 끝나면 붓꽃을 클릭하도록 유도하는 글상자가 나오도록 하기 위하여 신호를 추가해야한다. 속성 탭을 클릭하고 그 중 신호를 클릭해서 신호추가하기를 눌러 관찰값 입력하기라는 신호명을 넣는다. 시작불록을 클릭하여 관찰값 입력하기 신호보내기 블록을 말하기 블록 아래에 삽입한다. |
|
|
|
4) 붓꽃 오브젝트를 클릭하면 꽃잎과 꽃받침 길이를 입력받아야 하므로, 속성탭을 클릭하여 2개 변수를 만든다. 2개의 변수를 만든 후, 신호에서 오브젝트를 클릭했을 때 블록을 가져오고 말하기를 적당히 입력한다.
|
5) 묻고 대답하기를 이용하여 꽃잎과 꽃받침 길이 변수에 각각 입력값을 저장하게 하고, 인공지능 블록에 생긴 분류결과 블록에 각 변수를 넣는다. 분류값은 데이터에 있듯이 영문(Setosa, Versicolor, Virginica)으로 나오기 때문에 만약 블록을 이용하여 한글로 번역해준다.
6) 이때 인공지능 블록 불러오기의 번역기능을 이용해서 코드를 만들 수도 있지만, 보통 품종과 같은 고유 명사는 아직 지원되지 않는다.
7) 붓꽃을 클릭하고 관찰값을 넣어주라는 글상자를 만들고, 다음의 코드를 넣는다.
8) 코드가 완성되었으면 실행을 시켜보고, 붓꽃을 클릭하여 다음 그림의 꽃잎과 꽃받침의 길이를 입력하여 품종이 어떻게 나오는지 확인해본다.