기술 가이드

파이썬으로 간단한 머신러닝 모델 만들기

taeridad19 2025. 6. 18. 13:09

파이썬으로 간단한 머신러닝 모델 만들기

머신러닝 시작을 위한 첫걸음

머신러닝(Machine Learning)은 데이터로부터 학습하고 예측하는 알고리즘을 개발하는 인공지능(AI)의 핵심 기술입니다. 처음 시작할 때는 복잡한 모델보다 간단한 예제부터 실습하는 것이 효과적입니다. 파이썬은 머신러닝 입문자와 전문가 모두에게 적합한 언어로, 다양한 라이브러리를 통해 손쉽게 모델을 구현할 수 있습니다. 이 글에서는 Scikit-learn을 활용해 간단한 분류 모델을 만드는 과정을 단계별로 설명합니다.


파이썬과 필요한 라이브러리 설치

머신러닝을 시작하기 위해서는 먼저 파이썬과 필수 라이브러리를 설치해야 합니다. 다음은 기본적인 라이브러리입니다.

bash
복사편집
pip install numpy pandas matplotlib scikit-learn
  • NumPy: 수치 연산
  • Pandas: 데이터프레임 처리
  • Matplotlib: 시각화
  • Scikit-learn: 머신러닝 모델 구축

데이터 준비: Iris 데이터셋 사용

가장 많이 사용되는 머신러닝 입문용 데이터셋 중 하나는 Iris(붓꽃) 데이터셋입니다. 이는 꽃잎 길이, 너비 등 네 개의 특징을 가지고 세 종류의 붓꽃을 분류하는 문제입니다.

python
복사편집
from sklearn.datasets import load_iris import pandas as pd iris = load_iris() X = pd.DataFrame(iris.data, columns=iris.feature_names) y = pd.Series(iris.target)

이제 입력값(X)과 정답(y)을 준비했습니다.


데이터 분할: 학습용과 테스트용 데이터

모델의 성능을 평가하기 위해 데이터를 학습용과 테스트용으로 나눕니다.

python
복사편집
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42 )
  • train_test_split 함수는 데이터를 무작위로 섞어 학습용(80%)과 테스트용(20%)으로 분리합니다.

모델 선택과 학습: K-최근접 이웃(KNN) 알고리즘

이번 예제에서는 가장 간단한 분류 알고리즘 중 하나인 KNN(K-Nearest Neighbors)를 사용합니다. 이 알고리즘은 가장 가까운 K개의 데이터를 참조하여 다수결로 예측합니다.

python
복사편집
from sklearn.neighbors import KNeighborsClassifier model = KNeighborsClassifier(n_neighbors=3) model.fit(X_train, y_train)
  • n_neighbors=3은 가장 가까운 세 개의 이웃을 기준으로 분류합니다.
  • fit() 메서드는 모델을 학습시키는 함수입니다.

모델 예측과 정확도 평가

학습된 모델을 통해 테스트 데이터를 예측하고 성능을 평가해보겠습니다.

python
복사편집
from sklearn.metrics import accuracy_score y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print(f"모델 정확도: {accuracy * 100:.2f}%")

이 코드를 실행하면 모델이 테스트 데이터에서 어느 정도 성능을 보이는지 알 수 있습니다. 일반적으로 90% 이상의 정확도가 나오며, 이는 Iris 데이터셋이 비교적 단순하기 때문입니다.


시각화를 통한 이해

기계는 숫자로 학습하지만, 사람은 시각적으로 이해하는 데 익숙합니다. 두 개의 특성만 선택해 데이터를 2차원으로 시각화해보겠습니다.

python
복사편집
import matplotlib.pyplot as plt X_2d = X.iloc[:, :2] model_2d = KNeighborsClassifier(n_neighbors=3) model_2d.fit(X_2d, y) plt.scatter(X_2d.iloc[:, 0], X_2d.iloc[:, 1], c=y, cmap='viridis') plt.xlabel("sepal length (cm)") plt.ylabel("sepal width (cm)") plt.title("Iris 데이터 시각화") plt.show()

이 그래프는 꽃잎의 길이와 너비에 따라 분류되는 결과를 시각적으로 보여줍니다.


다양한 모델 실험하기

Scikit-learn은 다양한 머신러닝 모델을 제공합니다. 몇 가지 대표적인 모델은 다음과 같습니다.

  • Logistic Regression
  • Decision Tree
  • Random Forest
  • Support Vector Machine(SVM)

한 가지 모델을 실험해보고 다음과 같이 교체하여 비교해보는 것도 좋은 연습입니다.

python
복사편집
from sklearn.tree import DecisionTreeClassifier model = DecisionTreeClassifier()

하이퍼파라미터 튜닝

모델 성능을 더욱 향상시키기 위해 하이퍼파라미터를 조정할 수 있습니다. 예를 들어 KNN에서는 n_neighbors 값을 변화시키면서 성능을 비교해볼 수 있습니다.

python
복사편집
for k in range(1, 10): model = KNeighborsClassifier(n_neighbors=k) model.fit(X_train, y_train) y_pred = model.predict(X_test) acc = accuracy_score(y_test, y_pred) print(f"k={k}, 정확도: {acc:.2f}")

결론: 직접 해보는 것이 최고의 학습

머신러닝은 이론보다 실습이 훨씬 중요합니다. 파이썬과 Scikit-learn을 활용하면 누구나 간단한 모델을 구현해 볼 수 있으며, 이를 바탕으로 더 복잡한 프로젝트로 확장할 수 있습니다. 학습, 예측, 평가, 시각화 등 기본 단계를 직접 구현해보며 머신러닝의 작동 방식을 몸으로 익히는 것이 중요합니다.