반응형
공부할 챕터
| 챕터 | 주제 | 간단 설명 |
| 1 | 머신러닝이란 무엇인가 | 머신러닝의 정의, 동작 원리, AI와의 관계 |
| 2 | 머신러닝의 분류 | 지도학습, 비지도학습, 강화학습의 차이 |
| 3 | 데이터와 전처리 | 데이터가 왜 중요한가, 어떻게 다듬는가 |
| 4 | 특징(Feature)과 레이블(Label) | 입력과 출력의 개념, 특징 추출 |
| 5 | 학습과 예측 | 모델 훈련(training), 예측(predict)의 의미 |
| 6 | 성능 평가 | 정확도, 정밀도, 재현율, F1 Score 등 |
| 7 | 대표 알고리즘 이해 | 회귀, 분류, 군집 등 알고리즘 소개 |
| 8 | 과적합과 일반화 | 학습을 너무 많이/적게 했을 때 문제 |
| 9 | 실습과 프로젝트 | 간단한 실전 예제, 모델 만들기 |
이제 간단한 실습을 하면서 익혀보자!

목표: 데이터를 문류하는 머신러닝 모델을 만들어보자!
- 꽃잎의 길이/너비 등으로 품종을 예측
사용 기술: pandas, scikit-learn
분류 모델: RandomForestClassifier
1. 데이터 불러오기
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는 정답
2. 데이터 분할
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
)
80%는 학습용 20% 평가용
3. 모델학습
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X_train, y_train)

4. 예측 및 평가
from sklearn.metrics import accuracy_score, classification_report
y_pred = model.predict(X_test)
print("정확도:", accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred, target_names=iris.target_names))
출력 예시
정확도: 1.0
precision recall f1-score support
setosa 1.00 1.00 1.00 10
versicolor 1.00 1.00 1.00 9
virginica 1.00 1.00 1.00 11
accuracy 1.00 30
macro avg 1.00 1.00 1.00 30
weighted avg 1.00 1.00 1.00 30
5. 하이퍼파라미터 튜닝
from sklearn.model_selection import GridSearchCV
params = {
'n_estimators': [50, 100, 200],
'max_depth': [2, 4, 6]
}
grid = GridSearchCV(RandomForestClassifier(), param_grid=params, cv=5)
grid.fit(X_train, y_train)
print("최적의 파라미터:", grid.best_params_)
결과: 최적의 파라미터: {'max_depth': 2, 'n_estimators': 200}
6. 예측 결과 시각화
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)
plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=y, cmap='viridis')
plt.title("Iris Dataset (PCA 2D)")
plt.xlabel("PC1")
plt.ylabel("PC2")
plt.colorbar()
plt.show()

자이제 기초는 끝났다 실무중심으로 돌아가서 심화 + 프로젝트를 해보자.
** 그냥 하루하루 개인 공부한 것을 끄적 거리는 공간입니다.
이곳 저곳에서 구글링한 것과 강의 들은 내용이 정리가 되었습니다.
그림들은 그림밑에 출처표시를 해놓았습니다.
문제가 될시 말씀해주시면 해당 부분은 삭제 하도록하겠습니다. **
반응형
댓글