← 2026학년도 1학기

기계학습 모델과 성능 분석

Classification · Prediction · Regression · Evaluation

전처리한 데이터를 바탕으로 분류와 예측 모델을 실행하고, 모델이 만든 결과를 실제 데이터와 비교하여 해석하는 활동으로 확장하였다.

분류와 예측

활동수업에서 본 관점
아이리스 분류여러 속성을 이용해 품종을 구분하는 분류 문제 경험
예측 모델입력 특성을 이용해 결과값을 예측하는 모델의 기본 흐름 확인
선형 회귀독립변수와 종속변수의 관계를 선형 모델로 표현하고 예측값 생성

실습 1 · 아이리스 분류 모델

전처리된 아이리스 데이터를 이용해 품종 문자열을 숫자로 변환하고, 네 개의 특성을 입력값으로 사용하여 K-최근접 이웃 분류 모델을 학습하였다.

x = df[['SepalLengthCm', 'SepalWidthCm',
        'PetalLengthCm', 'PetalWidthCm']]
y = df['Species']

x_train, x_test, y_train, y_test = train_test_split(
    x, y, test_size=0.2, random_state=10
)

model = KNeighborsClassifier()
model.fit(x_train, y_train)
Predicted = model.predict(x_test)

예측 결과와 실제값 일부를 직접 비교하고, confusion_matrix()와 accuracy_score()를 이용하여 분류 성능을 확인하였다.

실습 2 · 청년 인구 예측과 선형 회귀

문화시설 관련 데이터를 이용하여 두 개의 독립변수를 조합해 청년 인구를 예측하였다. 도서관·공연장, 도서관·박물관, 도서관·미술관 등 여러 조합을 바꾸어 보면서 결정계수가 어떻게 달라지는지 비교하였다.

x = df[['도서관', '공연장']]
y = df[['청년']]

x_train, x_test, y_train, y_test = train_test_split(
    x, y, test_size=0.2, random_state=0
)

model = LinearRegression()
model.fit(x_train, y_train)
Predicted = model.predict(x_test)
확인 요소수업에서 본 의미
coef_, intercept_학습된 선형 관계의 기울기와 절편 확인
평균제곱오차실제값과 예측값 사이의 오차 크기를 수치로 확인
결정계수선택한 독립변수 조합이 종속변수의 변화를 얼마나 설명하는지 비교
산점도독립변수와 종속변수의 관계, 실제값과 예측값의 차이를 시각적으로 확인

실습 3 · 버섯 데이터 이진 분류 딥러닝

버섯 데이터를 이용해 범주형 속성을 숫자로 변환하고, 학습용·평가용 데이터를 나눈 뒤 완전연결 신경망으로 이진 분류를 수행하였다.

for column in df.columns:
    df[column] = le.fit_transform(df[column])

x = df.iloc[:, 1:]
y = df.iloc[:, 0]

model = keras.Sequential()
model.add(keras.layers.Dense(64, activation='relu'))
model.add(keras.layers.Dense(8, activation='relu'))
model.add(keras.layers.Dense(1, activation='sigmoid'))

model.compile(
    optimizer='adam',
    loss='binary_crossentropy',
    metrics=['accuracy']
)

은닉층에는 ReLU, 이진 분류 출력층에는 sigmoid를 사용하고, binary_crossentropy 손실 함수로 학습하였다. 학습 후에는 평가 데이터의 정확도를 확인하고 epoch에 따른 loss 변화를 그래프로 관찰하였다.

더 알아보기

추가 활동에서는 MinMaxScaler를 이용한 정규화 개념을 살펴보며, 입력 데이터의 스케일을 조정하는 전처리가 모델 학습과 어떤 관련이 있는지 확인하였다.

모델링을 위한 변수 선택

학생들은 데이터의 여러 속성 중 어떤 값을 종속변수로 둘 것인지 정하고, 어떤 독립변수가 그 값을 예측하는 데 관련이 있을지 설명하였다. 필요하면 학습에서 제외할 속성을 정하고 그 이유도 데이터와 문제 상황에 연결하였다.

성능 분석

모델 실행 이후에는 예측값만 확인하지 않고 실제값과 예측값을 비교하였다. 산점도로 두 값을 함께 나타내고, 실제값과 예측값이 같아지는 기준선을 함께 표시해 모델의 예측이 어느 정도 맞는지 시각적으로 해석하였다.

데이터 확인
→ 독립변수와 종속변수 선택
→ 학습용/평가용 데이터 구성
→ 모델 학습
→ 예측
→ 실제값과 예측값 비교
→ 성능과 한계 해석

이 영역에서는 fit()이나 predict()를 외워 작성하는 능력보다, 어떤 데이터를 사용해 무엇을 예측했고 결과가 어느 정도 타당한지 설명하는 능력을 중심으로 수업하였다.

⌂ Home