용어 정리
모델 : 데이터에서 패턴을 찾아 수학식으로 정리한 것
모델링 : 오차가 작은 모델을 만드는 과정
독립변수 : 변수 간 연관 없이 독립적으로 변할 수 있는 값. X
종속변수 : 종속적으로 변하는 값. Y
오차 : 실제값과의 차이 (오차는 작을수록 좋다.)
#평균도 모델 중 하나. 따라서 적어도 평균의 오차보다 작은 오차를 내야한다.
과대적합 : 학습 데이터를 너무 깊이 학습해 학습 데이터만 잘 예측하고 실제 데이터를 예측하지 못하는 경우
과소적합 : 학습 데이터가 부족해 예측 성능이 떨어지는 경우
머신러닝 분류
| 머신러닝 분류 (기준: 학습 방법) | |
| 지도학습 | 정답이 있는 데이터. 규칙성, 데이터의 패턴을 배우게 하는 방법 |
| 비지도학습 | 정답이 없는 데이터 |
| 강화학습 | 선택 결과에 대한 보상을 통해 행동을 개선하며 배우게 하는 방법 |
| 머신러닝 분류 (기준 : 과제) | ||
| 지도학습 | 분류(범주형 결과) | 적절히 분류된 데이터를 학습하여 규칙을 찾고, 이 규칙을 기반으로 새로운 데이터를 적절히 분류하기 |
| 회귀(연속형 결과) | 결과값이 있는 데이터를 학습하여 입력값, 결과값의 연관성을 찾고, 새로운 데이터에 대한 값을 예측하기 |
|
| 비지도학습 | 클러스터링(군집화) | 데이터 학습을 통해 적절한 분류 규칙을 찾아 데이터를 분류하고 그룹으로 묶기 (정답이 없기 때문에 성능평가가 어려움) |
| 변환 | 쉽게 이해가능한 형태로 데이터 표현 | |
| 연관 | 연관된 특징을 찾기 | |
| 강화학습 | ||
| 머신러닝 분류 (기준 : 과제) | |||
| 지도학습 | 분류 | 알고리즘 | DecisionTreeClassifier KNeighborsClassifier LogisticRegression SVC RandomForestClassifier XGBClassifier |
| 평가 | accuracy_score recall_score precision_score classification_report☆ confusion_matrix☆ f1_score |
||
| 회귀 | 알고리즘 | LinearRegression KNeighborsRegressor DecisionTreeRegressor SVR RandomForestRegressor XGBRegressor |
|
| 평가 | mean_absolute_error mean_squared_error rootmean_squared_error mean_absolute_percentage_error r2_score |
||
데이터 나누기
# x, y 분리
target = '타겟열이름'
x = data.drop(target, axis=1) #타겟열 외 나머지를 x에 할당
y = data.loc[:, target] #data 중 타겟열을 조회해 y에 할당
# train, test데이터로 나누기(순서 중요!)
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split ( x, y, test_size = 0.3 )
분류, 회귀 별 불러오기
| 회귀 | 분류 | |||
| 알고리즘함수 불러오기 |
from sklearn.______ import 알고리즘함수 | from sklearn.______ import 알고리즘함수 | ||
| LinearRegression KNeighborsRegressor DecisionTreeRegressor SVR RandomForestRegressor XGBRegressor |
DecisionTreeClassifier KNeighborsClassifier LogisticRegression SVC RandomForestClassifier XGBClassifier |
|||
| 알고리즘평가함수 불러오기 |
fromsklearn.metrics import 알고리즘 평가 함수 | fromsklearn.metrics import 알고리즘 평가 함수 | ||
| mean_absolute_error mean_squared_error rootmean_squared_error mean_absolute_percentage_error r2_score☆ |
accuracy_score☆ recall_score precision_score classification_report confusion_matrix f1_score |
|||
모델링 구조
#불러오기
from sklearn.linear_model import 알고리즘함수
from sklearn.metrics import 알고리즘 평가 함수
#선언하기
model = 알고리즘함수( )
#학습하기
model.fit (x_train, y_train)
#예측하기
y_pred = model. predict (x_test)
#평가하기
알고리즘 평가 함수 (y_test, y_pred)
#파이썬 오류가 아닌 '경고' 메세지가 뜨지 않게 하기
import warnings
warnings.filterwarnings(action='ignore')
%config InlineBackend.figure_format='retina'
#Tree의 가지가 얼마나 뻗어나갈지 정해주는 옵션.
따로 설정하지 않으면 기본값은 끝까지 뻗어나간다. (max_depth)
Ex) model = DecisionTreeClassifier(max_depth=3)
'오늘의 복습 정리' 카테고리의 다른 글
| 머신러닝_기본 알고리즘들 개념 이론공부 (0) | 2023.03.08 |
|---|---|
| 머신러닝_성능평가 (0) | 2023.03.07 |
| 데이터 수집(웹 크롤링) (1) | 2023.02.28 |
| 데이터 수집(API) (0) | 2023.02.24 |
| 데이터 분석/이변량 분석(target이 범주일 때) (0) | 2023.02.23 |