티스토리 뷰
초보자를 위한 머신러닝 코드
머신러닝(기계 학습)은 컴퓨터가 데이터를 통해 배우고 예측을 할 수 있도록 하는 기술입니다. 이 글에서는 초보자들이 머신러닝을 이해하고, 머신러닝 코드를 작성하는 데 필요한 기본적인 내용과 실습 예제를 다루겠습니다. 이 글을 통해 머신러닝의 기초를 쌓고, 실제로 코드를 작성해보는 경험을 할 수 있을 것입니다.
머신러닝의 기본 개념
머신러닝이란?
머신러닝은 인공지능의 한 분야로, 데이터에서 패턴을 학습하고 이를 바탕으로 새로운 데이터에 대한 예측을 수행하는 알고리즘과 기술들을 포함합니다. 머신러닝의 목표는 경험을 통해 성능을 개선하는 것입니다.
머신러닝의 유형
- 감독학습: 레이블이 있는 데이터를 사용하여 모델을 훈련시킵니다. 예를 들어, 집 가격 예측에 대한 데이터가 있을 때, 가격을 예측하는 모델을 학습시킬 수 있습니다.
- 비감독학습: 레이블이 없는 데이터를 사용하여 데이터를 그룹화하거나 패턴을 찾습니다. 데이터의 구조를 이해하는 데 적합합니다.
- 강화학습: 에이전트가 환경과 상호작용하며 보상을 최대화하는 행동을 학습합니다. 게임 플레이와 같은 분야에서 많이 사용됩니다.
머신러닝 환경 설정
필수 소프트웨어
머신러닝을 시작하기 전에 다음과 같은 소프트웨어가 필요합니다:
- 파이썬(Python): 머신러닝에서 가장 널리 사용되는 프로그래밍 언어입니다.
- 주피터 노트북(Jupyter Notebook): 코드 작성 및 결과를 시각화하기에 적합한 도구입니다.
- 라이브러리 설치: NumPy, Pandas, Matplotlib, Scikit-learn과 같은 라이브러리들이 필요합니다.
환경 설정 방법
파이썬과 주피터 노트북을 설치하고 필요한 라이브러리를 설치하는 방법은 다음과 같습니다:
- 파이썬 다운로드 및 설치: Python 공식 웹사이트에서 다운로드하십시오.
- 주피터 노트북 설치: 명령 프롬프트에서 다음 명령어를 입력하세요.
pip install jupyter
- 필요한 라이브러리 설치:
pip install numpy
pip install pandas
pip install matplotlib
pip install scikit-learn
머신러닝 코드 예제
데이터셋 준비
우리는 Iris 데이터셋을 사용할 것입니다. Iris 데이터셋은 세 가지 종류의 붓꽃을 분류하는 데 사용되는 데이터셋입니다. 이 데이터셋은 다음과 같은 특성을 가진 150개의 샘플로 구성됩니다:
특성 | 설명 |
---|---|
sepal length | 꽃받침 길이 |
sepal width | 꽃받침 너비 |
petal length | 꽃잎 길이 |
petal width | 꽃잎 너비 |
species | 붓꽃 종류 |
코드 작성
이제 Iris 데이터셋을 로드하고 간단한 머신러닝 모델을 생성하는 코드를 작성해보겠습니다.
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.modelselection import traintest_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
데이터 로드
iris = load_iris()
X = iris.data
y = iris.target
데이터 세트를 훈련 세트와 테스트 세트로 나누기
Xtrain, Xtest, ytrain, ytest = traintestsplit(X, y, testsize=0.2, randomstate=42)
모델 생성
model = RandomForestClassifier()
model.fit(Xtrain, ytrain)
예측
ypred = model.predict(Xtest)
정확도 평가
accuracy = accuracyscore(ytest, y_pred)
print("모델 정확도: ", accuracy)
코드 설명
- 데이터 로드: Iris 데이터셋을 로드하고 입력 변수(X)와 타겟 변수(y)를 설정합니다.
- 훈련 및 테스트 세트 분리: traintestsplit 함수를 Util하여 데이터셋을 훈련 세트와 테스트 세트로 나눕니다.
- 모델 생성 및 훈련: RandomForestClassifier를 사용하여 모델을 생성하고 훈련 데이터로 학습합니다.
- 예측 및 평가: 테스트 세트를 사용하여 예측하고, 정확도를 평가합니다.
머신러닝 모델 개선
하이퍼파라미터 튜닝
모델의 성능을 개선하기 위해 하이퍼파라미터 튜닝을 통해 여러 설정을 조정할 수 있습니다. Scikit-learn의 GridSearchCV를 사용하여 최적의 하이퍼파라미터를 찾아보겠습니다.
from sklearn.model_selection import GridSearchCV
param_grid = {
'n_estimators': [50, 100, 200],
'max_depth': [None, 10, 20]
}
gridsearch = GridSearchCV(RandomForestClassifier(), paramgrid, cv=5)
gridsearch.fit(Xtrain, y_train)
print("최적 하이퍼파라미터: ", gridsearch.bestparams_)
성능 평가
모델의 성능을 평가하기 위해 혼동 행렬과 분류 리포트를 사용하여 더 자세한 정보를 확인할 수 있습니다.
from sklearn.metrics import classificationreport, confusionmatrix
print(confusionmatrix(ytest, y_pred))
print(classificationreport(ytest, y_pred))
결론
이번 글에서는 초보자를 위한 머신러닝 코드에 대해 기본적인 개념부터 실습 코드, 모델 개선 방법까지 알아보았습니다. 머신러닝은 실습을 통해 익히는 기술이므로, 다양한 데이터셋을 사용하여 꾸준히 연습하는 것이 중요합니다. 실제로 데이터를 수집하고 모델을 구현해보며 경험을 쌓아보세요.
머신러닝 분야는 빠르게 발전하고 있으므로, 최신 자료를 학습하고 다양한 기법을 익히는 것이 필요합니다. 앞으로의 머신러닝 여정에서 여러분의 성공을 기원합니다.





