티스토리 뷰
머신러닝 입문: 파이썬으로 간단한 모델 만들어보기
머신러닝은 컴퓨터가 데이터로부터 학습하고, 경험을 통해 성능을 향상시키는 기술입니다. 이 글에서는 파이썬을 활용하여 머신러닝의 기초 개념을 이해하고, 간단한 모델을 만들어보는 방법에 대해 설명하겠습니다. 파이썬은 머신러닝에 가장 널리 사용되는 프로그래밍 언어 중 하나로, 그 주된 이유는 접근성과 강력한 라이브러리 지원에 있습니다. 이 글은 머신러닝을 처음 접하는 분들을 위해 작성되었습니다.
1. 머신러닝의 기초 개념
머신러닝은 인공지능(AI)의 한 분야로, 입력 데이터를 분석하여 패턴을 찾고, 그 패턴을 기반으로 새로운 데이터를 예측하는 방식으로 작동합니다. 머신러닝은 크게 세 가지 유형으로 나눌 수 있습니다.
- 지도 학습(Supervised Learning): 입력 데이터와 이에 대한 정답 레이블이 주어질 때 사용되며, 주어진 데이터로부터 모델을 학습하여 새로운 데이터를 예측하는 데 사용됩니다.
- 비지도 학습(Unsupervised Learning): 정답 레이블 없이 데이터의 구조를 고려하여 군집화하거나 패턴을 찾는 데 사용됩니다.
- 강화 학습(Reinforcement Learning): 에이전트가 환경과 상호작용하며 보상을 최대화하기 위한 전략을 학습하는 방법입니다.
2. 파이썬과 머신러닝 라이브러리
파이썬은 머신러닝을 위한 다양한 라이브러리를 제공하여, 데이터 분석 및 모델 구축을 쉽게 할 수 있도록 도와줍니다. 주로 사용되는 머신러닝 라이브러리는 다음과 같습니다.
- NumPy: 수치 계산을 위한 기본적인 패키지로, 다차원 배열을 다루는 데 유용합니다.
- Pandas: 데이터 조작과 분석을 위한 라이브러리로, 표 형태의 데이터를 쉽게 다룰 수 있습니다.
- Matplotlib: 데이터 시각화를 위한 라이브러리로, 다양한 그래프와 차트를 그릴 수 있습니다.
- Scikit-learn: 다양한 머신러닝 알고리즘을 제공하며, 모델 학습과 평가를 쉽게 수행할 수 있도록 해줍니다.
3. 첫 번째 머신러닝 모델 만들기
이제 파이썬을 이용하여 간단한 머신러닝 모델을 만들어보겠습니다. 이번 예제에서는 Scikit-learn 라이브러리를 사용하여 붓꽃 데이터셋(Iris Dataset)을 기반으로 분류 모델을 구축할 것입니다.
3.1. 데이터셋 소개
붓꽃 데이터셋은 150개의 샘플로 구성되어 있으며, 세 가지 종류의 붓꽃(세토사, 버시컬러, 그리고 빌로세)을 포함합니다. 각 샘플은 4개의 특성(꽃잎의 길이와 너비, 꽃받침의 길이와 너비)으로 이루어져 있습니다. 이 데이터셋은 머신러닝의 기본적인 예제로 자주 사용됩니다.
3.2. 파이썬 환경 설정
먼저, 파이썬과 필요한 라이브러리를 설치해야 합니다. 아래의 명령어를 통해 설치할 수 있습니다.
pip install numpy pandas matplotlib scikit-learn
3.3. 데이터 로딩
이제 붓꽃 데이터를 로딩하여 살펴보겠습니다.
아래 코드를 통해 데이터를 불러올 수 있습니다.
import pandas as pd
from sklearn.datasets import load_iris
데이터 로드
iris = load_iris()
X = iris.data
y = iris.target
3.4. 데이터 탐색
데이터를 로드한 후, 간단한 탐색을 통해 데이터의 구조를 확인합니다. Pandas 라이브러리를 사용하여 DataFrame 형태로 변환할 수 있습니다.
df = pd.DataFrame(data=X, columns=iris.feature_names)
df['target'] = y
print(df.head())
3.5. 데이터 시각화
데이터를 시각화하여 각 클래스의 분포를 확인해보겠습니다.
import matplotlib.pyplot as plt
plt.scatter(df.iloc[:, 0], df.iloc[:, 1], c=df['target'])
plt.xlabel(iris.feature_names[0])
plt.ylabel(iris.feature_names[1])
plt.show()
3.6. 모델 학습
이제 Logistic Regression 모델을 사용하여 붓꽃을 분류하는 모델을 학습시켜보겠습니다.
from sklearn.modelselection import traintest_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
데이터셋 분할
Xtrain, Xtest, ytrain, ytest = traintestsplit(X, y, testsize=0.2, randomstate=0)
모델 학습
model = LogisticRegression(max_iter=200)
model.fit(Xtrain, ytrain)
3.7. 모델 평가
모델을 학습한 후, 테스트 데이터셋을 사용하여 모델의 성능을 평가합니다.
ypred = model.predict(Xtest)
accuracy = accuracyscore(ytest, y_pred)
print("모델 정확도:", accuracy)
4. 결론
이번 글에서는 머신러닝의 기초 개념과 파이썬을 활용하여 간단한 머신러닝 모델을 만들어보는 과정을 살펴보았습니다. 머신러닝은 다양한 분야에서 활용되고 있으며, 기초적인 이해가 중요합니다.
앞으로도 머신러닝의 다양한 기법과 적용 사례를 통해 더욱 깊이 있는 지식을 쌓아가길 바랍니다. 머신러닝에 대한 도전은 끝이 없으며, 지속적인 학습이 필요합니다.
5. 참고 자료
아래는 추가적으로 참고할 수 있는 자료들입니다.
- Scikit-learn 사용자 문서
- Pandas 공식 문서
- Matplotlib 공식 문서
- Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow
이 글이 머신러닝에 대한 이해를 높이는 데 도움이 되었기를 바랍니다. 감사합니다.





