모의 강의 기록 - 엔트리로 주택가격 예측하기 (인공지능 블록 활용)

2021. 7. 9. 21:08인공지능 교육/Entry

반응형

모의강의 주간이라 함께 매일 출근하는 선생님들을 대상으로 돌아가면서 각자 자유롭게 정한 주제에 따라 1시간씩 모의강의를 진행 중이다. 아두이노와 마이크로비트, 코스페이시스 등 내가 잘 모르는 도구들과 툴을 사용한 수업들은 동심으로 돌아가 이리저리 만져 보면서 새롭게 배우는 시간.
오늘 내가 진행한 수업은 바로 엔트리의 인공지능 기능을 활용한 주택가격 예측 프로그래밍. 데이터 분석에 관심이 쏠린 나로선 엔트리의 데이터 분석과 인공지능 기능을 최대한 활용해보고 싶어서 이리저리 찾아보면서 준비했는데 시중에 나온 엔트리 책들이나 유튜브 영상에서 다루는 범위가 대부분 기계학습이라고 하면 이미지나 음성 인식 블록을 쓰거나 좀 더 나가면 텍스트지 숫자 예측은 거의 다루지 않기에 혹시나 수업 준비하는 분이 있다면 참고해주세요.


1. 엔트리 데이터 분석 강의 목차

대상을 중학생 정도로 놓고 선생님들 대상으로 모의 강의를 진행했지만 역시 머리로 아는 것과 말로 전달하는 것의 그 차이에 대해 다시 한번 느꼈다. 1시간 내로 아래 내용을 다 나가려고 하다 보니 말은 빨라지고 집중도도 떨어지는 게 거의 1시간 20분을 쓰면서 진행했지만 만약에 같은 내용을 학생들을 상대로 진행한다면 최소 3차시 정도는 잡고 테이블 읽는 것과 외부 데이터 끌어 오는 연습에 시간을 좀 더 투자하면 좋을 것 같다. 물론 단어들과 예시도 좀 더 쉬운 주제로 잡아야 할 듯. (주택 가격이라니... 학생들은 듣다가 절대 집중 못할 듯)

시중의 교재들은 거의 코딩 블록들을 어떤 순서대로 옮길 것인지를 나열하고 이런 결과들이 나온다라는 패턴으로 '기능'에 집중한 설명이 대부분. 물론 체험에 의의를 두면 저학년의 경우야 따라 해 보는 것도 중요하겠지만 블록 클릭 하나로 모델이 자동으로 만들어지는 구조 이면에 예측 모델이 어떤 프로세스로 만들어지는지에 대해 알려주고 싶어서 코딩 전에 변수 구조와 모델링에 설명하는 시간을 거의 절반에 쏟음.

  • 데이터 읽기 사전 연습
  • 보스턴 주택 가격 데이터
  • 주택가격 예측 프로그래밍
  • 데이터 활용

* 발표자료를 올리긴 애매해서 목차만 미리캔버스로 만든 이미지 올립니다. 나머지 구체적인 내용들과 코딩 블록들은 아래 설명에서 참조한 자료들 영상을 보시면 됩니다^^ 그리고 엔트리 공식 블로그에서 보스턴 주택가격 데이터를 어떻게 활용하는지 간단히 정리한 포스팅도 참고해보세요:)

엔트리 - 가격 데이터 분석

2. Warm Up!

해당 수업에 앞서 손쉽게 실습할 수 있는 이미지 분류에 대해 배웠다고 가정했다. 가위, 바위, 보라던지 몇 개의 클래스를 만들어 이미지를 파일 업로드나 직접 캠으로 찍어 수집해서 모델을 만들고 결괏값을 확인하는 일련의 과정을 해봤다는 전제 하에 변수와 모델 학습에 대한 이야기를 풀어나갔다.
데이터에 대한 이야기로 시간을 채우니 아래 영상으로 잠시 주위 환기. 간호사이자 또 데이터를 분석해 문제를 해결했다고 알려진 나이팅게일의 사례를 담은 영상으로 데이터를 어떤 식으로 대해야 할 지에 대해 잠시 생각해 보는 시간.

3. 데이터 읽기 연습

엔트리로 인공지능 모델을 만들고 학습하려면 사전 준비로 엔트리 홈페이지에 온라인 로그인을 해야 한다. 미리 수업 시작 전에 로그인을 해 두도록 하자. 홈페이지에서 만들기 > 작품 만들기를 클릭해서 코딩 화면으로 접속한다.

  • 1) 엔트리 데이터 분석 - 테이블 불러오기 - 테이블 추가하기
  • 2) 엔트리에 내장된 각종 데이터들이 어떤 것들이 있는지 스크롤 내리면서 쭉 살펴보기. (계속 데이터 업데이트되는 중)
  • 3) 가장 쉬운 간편한 데이터인 '국내 코로나 19 일일 현황' 테이블을 선택하고 추가
  • 4) 테이블 구조에 대해 살펴본다. 행과 열이 어떤 값들로 구성되어 있는지 테이블을 보며 어떤 것을 알 수 있는지 질문하기. 정보 탭에서 확인할 수 있는 요약 정보에 대한 설명과 '행'과 '열' 수에 담긴 의미에 대해 간략히 설명
  • 5) 차트 만들어보기 미션 - 차트 추가하기 기능으로 가장 간단한 일자별 누적 확진자 수 막대그래프 만들어보기
  • 6) 초간단 코딩으로 엔트리 블록으로 최신 누적 확진자수 불러오기 (코딩 2줄)
엔트리 테이블 읽기

테이블을 추가해서 저장하고 이를 코딩 영역으로 불러와 결괏값을 내는 아주 간단한 워밍업 연습은 여기까지.
*참고로 며칠- 전까지만 해도 엔트리 내장된 코로나 데이터가 작년 11월까지 관측치였는데 어제부로 7/7일까지의 데이터가 업데이트됨.

4. 예측 모델링 개념과 프로세스 설명하기

다변량 데이터에서 어떤 값을 예측하고자 하는 Y값으로 둘 것인가, 나머지를 원인으로 볼 수 있는 X 속성 변수로 볼 것인가에 대한 데이터 뜯어보기와 함께 관측된 X와 Y값의 관계를 가장 잘 설명하는 함수 식을 찾는 것이 예측 모델링이다 라는 설명을 진행. (중학교라면 일이차 방정식은... 배울 테니 그 생각으로 그래프를 집어넣었으나 과연 실전에서 먹힐까.)



인공지능 예측모델에 대한 설명들 중 내가 들었을 때 가장 알차고 쉽게 설명했던 유튜브 영상이 고려대 김성범 교수님의 [핵심 머신러닝] 수치예측, 범주 예측이라서 앞부분 수치예측 부분에 나오는 슬라이드를 캡처해서 그대로 설명했다. 영상 한 10번은 계속 들으면서 외우다시피 함. 우리가 찾고자 하는 값인 Y의 데이터가 연속형인가 범주형인가에 따라 수치예측, 분류 예측 혹은 분류로 나눈다라는 설명을 하면서 정상/불량을 1과 0으로 나타내는 '범주형' 데이터에 대한 개념을 심어주면서 실습에 쓰일 데이터를 분해할 때도 범주형 데이터를 하나 찾아보라는 미션을 내는데 활용함.

비록 저학년일 경우엔 용어 자체가 낯설어서 어려워할 수는 있으나 이 개념을 알아 두면 엔트리 숫자 데이터 모델 학습에 그대로 적용할 수 있으니 영상 꼭 돌려보세요~

5. 보스턴 주택 가격 예시 데이터 분석 및 모델 학습

워밍업으로 코로나 데이터를 불러와서 확인한 것처럼 주택 가격 데이터도 쓱 행과 열이 어떻게 구성되어 있는지 테이블 정보를 살펴보고 '정보' 탭에서 요약 정보를 확인하도록 한다. 아래 질문 3가지를 던져보았다.

  • Q1. 행(관측치)과 열(속성)의 개수는?
  • Q2. 예측하고자 하는 변수 Y는?
  • Q3. 속성 중 범주형 데이터는? (숫자적으로 의미가 없는)

13개 속성들(변수들) 중에서 우리가 정말로 알고 싶은 주택 가격을 Y로 두고 나머지 12개 속성을 원인으로 볼 수 있는 X값으로 두고 X와 Y의 관계를 잘 설명하는 모델을 학습해 보자라고 설명하고 테이블 저장, 엔트리 블록으로 돌아온다.
인공지능 블록 선택 > 인공지능 모델 학습하기 > 학습할 모델 중 지도 학습 예측: 숫자를 선택

  • 데이터 입력 부분 : 저장한 주택 가격 예시 데이터를 불러오면 13개 속성 값이 자동으로 불러와짐을 확인
  • 엔트리는 현재 모델 학습 시 속성값 최대 3개밖에 선택이 안 되는 점을 먼저 명시하고, 알고 싶은 결과 값인 주택 중간 가격을 하단의 '예측 속성'에 블록을 끌어다 놓음
  • 핵심 속성에는 속성 하나를 넣었을 때 가격과의 관계가 모델 학습을 통해 어떻게 표현되는지 먼저 실습. 모델 학습 밑의 차트도 눌러보고 학습 조건(4가지 : 에포크, 배치, 학습률, 테스트 비율)에 따라서도 모델이 달라질 수 있는 점, 결과에 나오는 Y=f(x) 회귀 식이 결국 우리가 모델링을 통해 구하고자 하는 것임을 다시 한번 알려준다.
  • 프로그래밍에 사용할 3가지 속성인 '방 개수', '학생 교사 비율', '강인 접 여부' 세 가지 속성을 선택하고 모델 학습 완료 뒤 하단의 '적용하기'를 누르고 코딩 화면으로 돌아오기


이 데이터를 활용해서 만들어 본 코딩은 유튜브 차근차근 엔트리! 에서 소개한 주택 가격 예측 프로그램을 참조했습니다. 여기에다 조금 더 재밌게 인공지능 읽어주기 블록을 추가해서 말하기 상자를 직접 읽어주고 목소리도 바꿔봤으며, 또 강을 선택했다면 조건문을 써서 "강이 좋아" 아니면 "도심이 좋아"라고 응용. 그리고 주택 가격 값을 주택 오브젝트가 최종적으로 말하고 나서 엔트 리봇에 신호를 보내면 신호를 받은 엔트리가 귀여운 OK 이모티콘으로 바뀌면서 오케이를 읽어 주는 것으로 코딩 마무리.



6. 공공데이터 읽기 연습

외부 데이터를 엔트리에 어떻게 끌어와서 활용할 수 있는지 예시로만 잠깐 마무리로 보여줌. 공공 데이터 포털과 캐글 데이터셋에서 자료를 다운로드하는 방법, 다운로드한 CSV 혹은 XLS(X) 형식의 파일을 테이블 추가하기에서 '파일 올리기'를 누르고 파일을 끌어다 놓으면 자동으로 엔트리가 테이블을 읽어서 깔끔하게 보여준다.
단, 주의할 점은 한글로 된 CSV 파일들은 글자 깨짐 현상이 대부분 나타나서 CSV로 다운로드하여 엑셀 형식으로 다른 이름으로 저장을 한 후 다시 끌어다 놓으면 잘 읽히는 것을 보여줌.


모의 강의 느낀 점 :

  • 더 쉽게 잘 설명할 수 있도록 연습이 필요함. 블록으로 나타낼 수 있으면 이를 파이썬으로도 치환할 수 있는 캐파를 키워보자
  • 엔트리 기능은 한계가 분명 있으므로 다양한 기능을 활용할 수 있는 엠블록과 스크래치도 연습하면서 블록 활용 능력을 키우기
  • 데이터 분석 수업과 피지컬 컴퓨팅도 연계해서 시각적으로 보여줄 수 있는 뭔가를 만들어도 재밌을 것 같음.
  • 개념들을 나이별 맞춤형으로 설명할 수 있는 방법 계속 생각해보기
  • 굳은 뇌를 깨우자


다양한 교구들이 계속 나오고 있고 온라인 플랫폼들도 계속 변하니 배우는 학생이나 가르치는 교사나 참 힘든 세상은 맞는 듯. 교육 정책을 세워놔도 1년 안에 세상이 바뀌는 실정이니 정말로 이제 필요한 역량은 빨리 새로운 것을 습득해서 가르치는 능력이 필수적인 듯.

▼ 참고글
2022 개정 교육과정 관련 초중등 SW 및 AI 정보 교육
엔트리로 인공지능 데이터 분석 실습하기

반응형