Search

코딩 없는 AI 실습의 정석, 오렌지3(Orange3)로 분류와 회귀 정복하기!

생성일
2026/01/15 02:19
태그
#푸딩샘
#오렌지3
#회귀
#분류
선생님들 안녕하세요. 겨울 방학 잘 보내고 계신가요?
오늘은 인공지능 기초 수업에서 활용도가 높은 오렌지3(Orange3)를 활용한 수업 사례를 정리하여 공유드리고자 합니다.
오렌지3는 코딩 부담 없이도 데이터 전처리부터 시각화, 머신러닝 모델 학습 및 평가까지 전 과정을 흐름도 형태로 구성할 수 있어, 인공지능 개념을 처음 접하는 학생들에게 특히 효과적인 도구입니다. 또한 학생들이 직접 블록을 연결하며 실습할 수 있어 수업 참여도가 높고, 결과가 시각적으로 바로 확인되어 데이터 기반 사고와 인공지능 학습 과정을 자연스럽게 이해하도록 돕는 장점을 확인할 수 있었습니다.
오늘은 오렌지3를 활용하여 진행했던 분류/회귀 실습수업 운영 사례를 간단히 정리해 드리려고 합니다.

인공지능이란 무엇이며, 오렌지3를 수업에서 활용해야 하는 이유는 무엇인가?

저는 항상 인공지능 실습수업을 시작하기 전에 ‘인공지능이 무엇인지’와 ‘왜 오렌지3를 활용하는지’를 먼저 설명해야 한다고 생각했습니다.
학생들이 도구 사용법만 따라 하는 방식으로 수업이 진행되면 실습 자체는 가능하더라도, 각 과정이 어떤 의미를 갖는지 이해하지 못한 채 활동이 끝날 수 있다고 판단했기 때문입니다.
특히 인공지능 기초 수업에서는 학생들은 당연히 모델 학습, 예측, 평가 등의 흐름이 익숙하지 않기 때문에, 오렌지3를 활용하는 이유를 함께 안내하면 학생들이 실습 과정이 인공지능의 작동 원리와 연결되어 있다는 점을 자연스럽게 이해할 수 있을 것이라 생각했습니다.

분류 vs 회귀: 무엇이 다른가?

궁극적으로 오렌지3 실습에서 학생들은 데이터를 기반으로 ‘예측’을 수행하게 되는데, 예측에는 크게 분류와 회귀 두 방식이 있어 이를 먼저 구분해 설명할 필요가 있다고 생각했습니다.
오렌지3 실습에서는 예측 과제가 분류인지 회귀인지에 따라
1.
선택해야 하는 모델(학습 알고리즘)이 달라지고,
2.
결과를 평가하는 성능 분석 방법(평가 지표)도 달라지기 때문에, 실습에 앞서 두 개념을 명확히 구분하여 안내할 필요가 있다고 생각했습니다.
두 개념을 구분하지 않으면 학생들은 단순히 ‘정답을 맞히는 활동, 모델을 만드는 과정을 따라하는 활동’으로만 받아들여 실제 본인이 주제를 설정하고 스스로 인공지능 모델을 생성하는 과정을 수행하는 프로젝트에서 문제 유형에 맞지 않는 모델을 선택하거나, 오류가 발생하거나 성능이 낮은 결과를 보고도 왜 성능이 낮게 나왔는지 해석하지 못하는 상황이 자주 발생했습니다.
따라서 실습 전에 분류와 회귀의 차이를 구체적으로 안내하면, 학생들이 활동 목적을 분명히 이해하여 결과를 덜 혼란스럽게 받아들일 수 있다고 판단했습니다.
분류와 회귀의 정의는 교과서 내용을 바탕으로 설명하였으며, 분류는 ‘어느 클래스(어느 집단)에 속하는가’ 를 맞히는 문제, 회귀는 ‘얼마인가’ 를 숫자로 예측하는 문제라는 점을 추가로 안내했습니다.

실습에 사용할 데이터는 어디서, 어떻게 불러오는가?

학생들에게 데이터를 직접 수집해 오도록 시간을 제공하면,
자신이 만들고 싶은 인공지능 주제에 적합한 데이터를 찾지 못하거나 데이터를 어디에서 어떻게 가져와야 하는지 몰라 어려움을 겪는 경우가 많습니다.
수업 시간과 준비 시간이 충분하다면, 수업 주제와 연계하여 우리나라 공공데이터(공공데이터포털, 서울 열린데이터 광장 등)를 활용하는 것이 가장 적절하다고 생각합니다.
다만 수업 시간이 부족하거나 학생들이 데이터 탐색 방향을 전혀 잡지 못해 활동이 지연되는 경우에는, 제가 운영했던 Kaggle 기반 데이터 탐색 사례를 대안으로 활용해 보는 것을 추천드립니다.
저는 혼란을 줄이기 위해 먼저 주제를 설정한 뒤, ChatGPT를 활용하여 학생들이 Kaggle 등 신뢰할 수 있는 데이터 출처에서 직접 데이터를 찾아볼 수 있도록 안내하는 방식으로 수업을 운영했습니다.
주로 데이터양이 풍부한 Kaggle을 활용하여 학생들이 데이터셋을 선택하도록 지도했습니다. Kaggle은 전 세계 연구자와 학습자가 데이터셋을 공유하고, 분석 결과와 모델을 비교·학습할 수 있는 데이터 과학 플랫폼입니다. 다양한 데이터 셋 덕분에 학생들이 주제에 맞는 자료를 선정하는 데 도움이 되었고, 그 결과 산출물 또한 다양하게 도출되었습니다.
또한 ChatGPT의 도움을 받아 데이터 탐색을 진행하되, 데이터의 출처와 신뢰성은 학생들이 스스로 확인하도록 지도했습니다.

<이미지 데이터 셋 탐색>

<경제 분야 데이터 셋 탐색>

분류 실습

일상에서 배출되는 쓰레기는 종류에 따라 분리배출 방법이 다르지만, 실제 교실에서는 분리수거가 생각만큼 잘 이루어지지 않는 경우가 많습니다.
학생들이 분리배출 기준을 알고 있더라도 바쁜 수업 상황, 번거로움, 습관적인 혼합 배출 등으로 인해 오분류가 발생하고, 그 결과 분리수거의 정확도가 낮아지는 문제가 반복됩니다.
이에 수업에서는 이러한 문제를 해결하는 방안 중 하나로, 이미지 데이터를 활용한 인공지능 분류 모델을 적용해 쓰레기 종류를 자동으로 판별하는 활동을 수업 주제로 선정해 보았습니다.
이번 프로젝트에서는 쓰레기 이미지를 입력으로 받아 플라스틱, 종이, 유리, 금속, 음식물 등 다양한 종류를 인공지능이 자동으로 분류할 수 있는지를 확인하고자 했습니다.
문제 정의 : “AI는 쓰레기 이미지를 보고 쓰레기 종류를 정확하게 분류할 수 있을까?”
데이터 셋은 TrashNet에서 데이터를 다운로드 받았습니다. 압축 파일을 열면,
이미지 데이터는 쓰레기 종류별로 분류되어 저장되어 있습니다. 이 중 각 종류에서 일부 데이터를 선별해 테스트 데이터로 활용했습니다.
이미지 분석을 하기 위해 image Analytics를 설치해야 합니다.
options→ Add-ons…를 클릭한 뒤 image Analytics를 클릭하면
아래 화면이 왼쪽에 새로 생깁니다.
이미지를 불러온 뒤 Image Viewer를 통해 이미지를 확인하고, Table에서 이미지 파일명과 가로·세로 크기 등 기본 정보를 점검한 후 Image Embedding을 수행했습니다.
[ 이미지 데이터를 기계 학습에 사용할 수 있도록 전처리 : Image Embedding ]
Image Embedding은 이미지 원본을 픽셀 단위가 아닌 숫자 배열인 벡터로 변환하여 분류, 군집화, 예측 등 다양한 기계학습 모델에 바로 입력할 수 있게 해줍니다.
임베딩한 결과를 table에 연결해 보면 위와 같이 이미지별 특징값(숫자 벡터)이 나옵니다.
이후 Neural Network, Random Forest, Logistic Regression 3가지 모델 학습 후 Test and Score에서 Number of Folds를 5로 설정하여 5회 교차검증(5-fold cross validation) 방식으로 성능 평가를 진행했습니다.
AUC, CA, Recall 등 주요 평가 지표의 의미를 안내한 뒤, 각 모델의 성능을 지표별로 비교하여 문제에 적합한 모델을 선택하고 그 근거를 분석하도록 했습니다. 또한 Test and Score 결과를 Confusion Matrix(혼동행렬)와 연결하여, 분류 결과를 시각적으로 확인할 수 있도록 했습니다.
이후 테스트 데이터를 적용하여 모델이 쓰레기 종류를 올바르게 분류하는지 확인하고, 예측 결과를 통해 분류 성능을 점검했습니다.
<테스트 데이터>
이후 프로젝트 결과를 토대로, 학생들이 본 탐구의 시사점을 보고서 형태로 정리해 제출하도록 안내했습니다.
[학생이 작성한 탐구 시사점]
이번 분리수거 이미지 분류 탐구를 통해 인공지능 기술이 향후 지자체의 스마트 시티 사업이나 공공 분리수거 정책에 활용될 수 있음을 생각해 보게 되었다. 이미지 데이터를 기반으로 쓰레기 유형을 자동 분류할 수 있다면 분리수거 과정의 효율성을 높이고, 시민의 분리수거 부담을 줄이는 데에도 도움이 될 수 있을 것으로 판단하였다. 이를 통해 데이터 기반 기술이 환경 관리와 공공 행정 분야에서 실질적인 문제 해결 도구로 활용될 수 있음을 인식하게 되었다.

회귀 실습

도로는 날씨, 도로 상태, 교통량 등 다양한 환경 요인에 따라 사고 위험도가 달라지지만, 실제 운전자나 보행자는 이러한 위험 요소를 사전에 정확히 판단하기 어려운 경우가 많습니다.
특히 비나 눈 등 기상 변화, 도로 시설 상태, 교통량 증가와 같은 요인이 겹치면 사고 위험이 높아질 수 있으나, 이를 경험이나 감에만 의존해 예측하는 데에는 한계가 있습니다.
이에 수업에서는 이러한 문제를 해결하는 방안 중 하나로, 도로 환경 및 교통 조건 데이터를 활용한 인공지능 예측 모델을 적용하여 사고 위험도를 사전에 예측해 보는 활동을 수업 주제로 선정해 보았습니다.
이번 프로젝트에서는 도로 환경 정보와 교통 조건 데이터를 입력으로 받아 도로의 사고 위험도를 예측할 수 있는지를 확인하고자 했습니다.
문제 정의 : “AI는 도로 환경 및 교통 조건 데이터를 바탕으로 사고 위험도를 정확하게 예측할 수 있을까?”
데이터 셋은 Predicting Road Accident Risk | Kaggle에서 데이터를 다운로드 받았습니다. 압축 파일을 열면,
데이터의 속성 명이 모두 영어로 제시되어 있어, 분석 과정에서 혼란이 없도록 학생들이 속성 명을 한국어로 바꾸어 정리한 뒤 활동을 진행하도록 했습니다.
학생들과 함께 속성을 분석한 뒤, 데이터에서 회귀 예측을 위해 타깃(예측해야 할 속성)을 ‘사고 위험도’로 지정하고, 이를 기준으로 모델 학습을 진행했습니다.
전처리 과정에서는 결측치 처리와 이상치 제거가 필요합니다.
결측치( Missing Value ): 데이터셋에서 특정 값이 누락된 상태를 의미하며, 이를 적절히 처리하지 않으면 모델 학습 및 분석 결과에 왜곡이 발생할 수 있습니다.
예) NULL, 빈 값
이상치( Outlier ): 전체 데이터의 분포에서 벗어나 다른 값들과 비교했을 때 지나치게 크거나 작은 값을 의미하며, 모델 성능을 떨어뜨리거나 판단을 왜곡할 수 있습니다.
데이터셋의 각 속성에 대한 기초 통계 정보를 요약하고 시각화하여 확인하기 위해 Feature Statistics를 연결했습니다. 이를 통해 평균값, 최빈값, 중앙값, 최솟값, 최댓값, 결측치 개수 등 핵심 정보를 빠르게 점검할 수 있었습니다. 이후 Impute를 활용하여 결측치를 처리한 뒤, Feature Statistics를 다시 연결해 전처리 결과가 정상적으로 반영되었는지 재확인하는 과정으로 수업을 진행했습니다. 이후 Select Columns 위젯를 선택해 타킷과 학습에 사용할 속성, 무시할 속성을 구분했습니다.
Data Sampler 위젯을 연결하여 데이터셋을 훈련 데이터 70%, 테스트 데이터 30%(7:3) 비율로 분할했습니다. 이를 통해 모델 학습과 성능 평가에 활용할 수 있도록 구성했습니다.
아래와 같이 모델을 학습시킨 후, 성능 평가를 진행했습니다.
이후 학생들에게 시사점을 제출받았습니다.
[학생이 제출한 탐구 시사점]
이번 도로 사고 위험도 예측 탐구를 통해 인공지능 기술이 교통안전 관리와 같은 공공 분야에서 실제로 활용될 수 있음을 생각해 보게 되었다. 단순히 사고 발생 건수를 예측하는 것보다 도로 유형 차로 수 제한 속도 날씨 시간대 등 다양한 도로 환경 정보를 종합해 사고 위험도를 수치로 표현하는 것이 더 예측 가능하고 의미 있다는 점을 이해하게 되었다. 특히 Random Forest 모델을 활용해 여러 조건을 함께 고려함으로써 도로의 위험 수준을 비교적 정확하게 예측할 수 있음을 확인하였다.
수업을 운영했던 사례를 간단히 공유해 드렸습니다.
실습 중심 수업이 부담스러울 수 있지만, 오렌지3는 과정이 시각적으로 구성되어 있어 학생들이 인공지능 학습 흐름을 보다 쉽게 이해하는 모습을 확인할 수 있었습니다. 오늘은 오렌지3를 활용한 분류, 회귀 실습수업 운영 사례를 공유해 드렸습니다. 오렌지3의 시각적 구성 덕분에 학생들이 학습 흐름을 쉽게 이해하는 모습을 확인할 수 있었습니다.
선생님들 수업 운영에 조금이나마 도움이 되길 바라며, 읽어주셔서 감사합니다.