1. Scikit-learn 개요
Scikit-learn은 파이썬에서 가장 널리 사용되는 머신러닝 라이브러리이다.
데이터 전처리, 모델 학습, 예측, 모델 평가까지 머신러닝의 전체 과정을 쉽게 구현할 수 있도록 다양한 알고리즘과 도구를 제공한다.
Scikit-learn은 다음 라이브러리와 함께 사용되는 경우가 많다.
| 라이브러리 | 역할 |
|---|---|
| NumPy | 수치 연산 |
| Pandas | 데이터 처리 |
| Matplotlib | 데이터 시각화 |
| Scikit-learn | 머신러닝 모델 |
2. Scikit-learn 기본 구조
Scikit-learn의 기본적인 머신러닝 과정은 다음과 같다.
데이터 준비
↓
데이터 분리
↓
모델 생성
↓
모델 학습
↓
예측
↓
모델 평가
3. 데이터 준비
Scikit-learn에서는 다양한 예제 데이터셋을 제공한다.
대표적으로 Iris 데이터셋이 자주 사용된다.
from sklearn.datasets import load_iris
iris = load_iris()
print(iris.keys())
# 결과
# dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names'])
데이터 구성
항목설명
| data | 입력 데이터 |
|---|---|
| target | 정답(label) |
| feature_names | 특성 이름 |
| target_names | 클래스 이름 |
데이터 확인
X = iris.data
y = iris.target
print(X.shape)
print(y.shape)
# 결과
# (150, 4)
# (150,)
설명
값의미
| 150 | 데이터 개수 |
|---|---|
| 4 | 특성 개수 |
ai가 추천하는 심화 예제
Iris 데이터를 Pandas DataFrame으로 변환
import pandas as pd
df = pd.DataFrame(X, columns=iris.feature_names)
print(df.head())
# 결과
# sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)
# 0 5.1 3.5 1.4 0.2
# 1 4.9 3.0 1.4 0.2
# ...
4. 데이터 분리
머신러닝에서는 데이터를 학습 데이터와 테스트 데이터로 분리해야 한다.
데이터역할
| Train Data | 모델 학습 |
|---|---|
| Test Data | 모델 성능 평가 |
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
)
print(X_train.shape)
print(X_test.shape)
# 결과
# (120, 4)
# (30, 4)
옵션 설명
옵션의미
| test_size | 테스트 데이터 비율 |
|---|---|
| random_state | 랜덤 시드 |
ai가 추천하는 심화 예제
데이터 분포 확인
print(len(X_train))
print(len(X_test))
# 결과
# 120
# 30
5. 머신러닝 모델
Scikit-learn에서는 다양한 머신러닝 모델을 제공한다.
대표 알고리즘
알고리즘유형
| KNN | 분류 |
|---|---|
| Decision Tree | 분류 / 회귀 |
| Random Forest | 분류 / 회귀 |
| SVM | 분류 |
| Linear Regression | 회귀 |
6. KNN 알고리즘
KNN(K-Nearest Neighbors)은 가장 가까운 이웃 데이터를 기준으로 분류하는 알고리즘이다.
from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier(n_neighbors=3)
print(model)
# 결과
# KNeighborsClassifier(n_neighbors=3)
설명
파라미터의미
| n_neighbors | 참고할 이웃 데이터 수 |
|---|
ai가 추천하는 심화 예제
다른 K값 설정
model = KNeighborsClassifier(n_neighbors=5)
print(model)
# 결과
# KNeighborsClassifier(n_neighbors=5)
7. 모델 학습
모델 학습은 fit() 함수를 사용한다.
model.fit(X_train, y_train)
# 결과
# 모델 학습 완료
ai가 추천하는 심화 예제
다른 알고리즘 학습
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
# 결과
# 모델 학습 완료
8. 예측
학습된 모델을 이용하여 데이터를 예측할 수 있다.
pred = model.predict(X_test)
print(pred)
# 결과
# 예측된 클래스 배열
ai가 추천하는 심화 예제
새로운 데이터 예측
sample = [[5.0, 3.4, 1.5, 0.2]]
result = model.predict(sample)
print(result)
# 결과
# [0]
9. 모델 평가
모델 성능을 평가하기 위해 다양한 평가 지표를 사용할 수 있다.
정확도 (Accuracy)
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, pred)
print(accuracy)
# 결과
# 0.96
정확도 계산식
Accuracy = (정답 예측 수) / (전체 데이터 수)
ai가 추천하는 심화 예제
혼동 행렬 (Confusion Matrix)
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, pred)
print(cm)
# 결과
# [[10 0 0]
# [0 9 1]
# [0 0 10]]
혼동 행렬은 모델이 어떤 클래스에서 오류가 발생하는지 확인할 수 있는 방법이다.
10. 전체 머신러닝 파이프라인
Scikit-learn을 이용한 전체 머신러닝 과정
데이터 수집
↓
데이터 전처리
↓
데이터 분리
↓
모델 생성
↓
모델 학습
↓
예측
↓
모델 평가
11. 정리
Scikit-learn은 파이썬에서 머신러닝을 구현할 때 가장 많이 사용되는 라이브러리이다.
핵심 기능
- 데이터 분리
- 머신러닝 모델 제공
- 모델 학습
- 예측
- 모델 평가
대표 알고리즘
- KNN
- Decision Tree
- Random Forest
- SVM
- Linear Regression
Scikit-learn은 머신러닝의 기본 알고리즘을 구현하고 실험하기에 매우 적합한 라이브러리이다.
'AI 공부' 카테고리의 다른 글
| 선형 회귀 모델을 사용해서 주택 임대료 예측해보기 (0) | 2026.03.16 |
|---|---|
| GPT와 함께하는 A2C(Advantage Actor-Critic) 정리 (1) | 2026.03.16 |
| 머신 러닝 (1) | 2026.03.13 |
| Attention Is All You Need 논문 공부 (0) | 2026.03.13 |
| 논문 공부 과제 – End-to-End Object Detection with Transformers (DETR) (0) | 2026.03.02 |