[KT에이블스쿨5기DX] 파이썬과 Scikit-learn을 활용한 머신러닝
: 분류와 회귀 모델 소개 그리고 평가방법
미프2차가 끝나고 DX 9반은 회식을 했습니당 ~.~
이어서 스트림릿과 PowerBI를 배우는 데이터 분석 표현 과정을 거치고
(후에 포스팅 예정입니다 ㅎㅎ)
총5일에 걸쳐 이장래강사님과 머신러닝(지도학습)에 대해 배웠는데요
오늘 배우는 머신러닝 비지도학습과 미프3차가 끝나고 배우게 될 딥러닝에 앞서서 개념을 되짚어보려구합니다
파이썬 머신러닝 라이브러리
파이썬에서 머신러닝을 위해 널리 사용되는 라이브러리 중 하나는 Scikit-learn(sklearn)
- 다양한 분류(Classification)와 회귀(Regression) 알고리즘을 제공
- 각각의 문제 유형에 따라 모델을 평가하는 방법이 조금씩 다름
분류(Classification)
분류는 데이터를 미리 정의된 여러 클래스 중 하나로 분류하는 문제입니다. 예를 들어, 이메일이 스팸인지 아닌지를 결정하는 경우가 있습니다.
- 주요 라이브러리 차이: sklearn.metrics 모듈 내에 있는 다양한 평가 함수들을 사용합니다. 대표적으로 정확도(accuracy), 정밀도(precision), 재현율(recall), F1 점수(F1 score), 혼동 행렬(confusion matrix) 등이 있습니다.
- 모델 평가 방법 예제:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, confusion_matrix
# 데이터 로딩
iris = load_iris()
X = iris.data
y = iris.target
# 훈련/테스트 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 모델 학습
model = RandomForestClassifier()
model.fit(X_train, y_train)
# 예측
predictions = model.predict(X_test)
# 모델 평가
accuracy = accuracy_score(y_test, predictions)
conf_matrix = confusion_matrix(y_test, predictions)
print(f'Accuracy: {accuracy}')
print(f'Confusion Matrix:\n{conf_matrix}')
회귀(Regression)
회귀는 연속적인 값을 예측하는 문제입니다. 예를 들어, 주택의 가격이나 회사의 이익과 같은 값을 예측합니다.
- 주요 라이브러리 차이: 회귀 문제에서는 sklearn.metrics 모듈 내의 다른 평가 지표를 사용합니다. 대표적으로 평균 제곱 오차(Mean Squared Error, MSE), 평균 절대값 오차(Mean Absolute Error, MAE), R^2 점수가 있습니다.
- 모델 평가 방법 예제:
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 데이터 로딩
boston = load_boston()
X = boston.data
y = boston.target
# 훈련/테스트 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 모델 학습
model = LinearRegression()
model.fit(X_train, y_train)
# 예측
predictions = model.predict(X_test)
# 모델 평가
mse = mean_squared_error(y_test, predictions)
r2 = r2_score(y_test, predictions)
print(f'MSE: {mse}')
print(f'R^2: {r2}')
분류(Classification) 모델 예시
- 로지스틱 회귀(Logistic Regression): 이진 분류 문제에 주로 사용되며, 확률을 예측하는 데 사용됩니다.
- 결정 트리(Decision Tree): 데이터를 여러 조건에 따라 분리하여 클래스를 결정하는 모델입니다. 이해하기 쉽고 해석하기 좋습니다.
- 랜덤 포레스트(Random Forest): 여러 결정 트리를 결합하여 사용하는 앙상블 기법입니다. 각 트리의 예측을 평균내어 결정을 내립니다.
- 서포트 벡터 머신(Support Vector Machine, SVM): 데이터를 분류하는 최적의 경계를 찾는 모델입니다. 선형 및 비선형 분류에 사용할 수 있습니다.
- K-최근접 이웃(K-Nearest Neighbors, KNN): 새로운 데이터 포인트와 가장 가까운 k개의 트레이닝 데이터 포인트의 클래스를 기반으로 분류합니다.
회귀(Regression) 모델 예시
- 선형 회귀(Linear Regression): 하나 이상의 독립 변수와 연속적인 종속 변수와의 관계를 모델링합니다. 가장 기본적인 회귀 분석 방법입니다.
- 릿지 회귀(Ridge Regression): 선형 회귀의 일종으로, 계수의 크기를 제한하여 모델의 복잡도를 줄이는 데 도움을 줍니다. 오버피팅을 방지할 수 있습니다.
- 라쏘 회귀(Lasso Regression): 릿지 회귀와 비슷하지만, 일부 계수를 정확히 0으로 만들어 불필요한 특성의 영향을 제거할 수 있습니다.
- 결정 트리 회귀(Decision Tree Regression): 결정 트리를 사용하여 연속적인 값을 예측합니다. 데이터의 비선형 관계를 모델링하는 데 유용합니다.
- 랜덤 포레스트 회귀(Random Forest Regression): 여러 결정 트리를 평균내어 보다 정확한 연속적인 값을 예측합니다. 각기 다른 조건에서의 데이터의 다양성을 잘 반영할 수 있습니다.
모델의 선택은 데이터의 특성, 문제의 복잡도, 해결하고자 하는 문제의 유형 등에 따라 달라질 수 있다.
따라서 여러 모델을 실험해보고, 최적의 모델을 찾는 과정이 중요
이상입니다 ㅎㅎ
'KT에이블스쿨 5기 > DX컨설턴트' 카테고리의 다른 글
[KT에이블스쿨 5기 DX] 딥러닝 - Object Detection 주요 개념 (0) | 2024.04.16 |
---|---|
IT기술과 비즈니스의 연결다리 DX 컨설턴트(Digital Transformation Consultant)란? (0) | 2024.04.10 |
프로젝트 성공을 위한 필수 요소 '도메인지식' , 그리고 중요성 (0) | 2024.04.10 |
DX컨설턴트가 꼭 알아야 할 Feature Engineering이란? (2) | 2024.04.10 |
파이썬 코딩테스트 - 자주 쓰이는 함수나 메서드 (5) | 2024.03.11 |