AI 관련 자격증

AICE Associate 자격증 - 요약본 (3) 머신러닝

수진97 2025. 10. 19. 22:53

안녕하세요!

이번 포스팅은 AICE Associate 자격증 요약본 3편입니다.

AICE 시험에서 자주 등장하고 중요한 머신러닝 개념에 대해서 정리해 보겠습니다.

 

 

1. 우선 문제 풀기 전 데이터를 보고 분류 문제인지 회귀 문제인지 명확히 구분해야 함.

2. 아래 표에 있는 알고리즘과 평가 함수들을 분류와 회귀로 구분해서 외우기!

 

 

3. 사이킷런 라이브러리 임포트

1) from sklearn.model_selection import train_test_split  [학습용, 평가용 데이터 분리]

2) from sklearn.metrics import ... [평가함수]

3) [알고리즘 함수]

- from sklearn.linear_model import LinearRegression / LogisticRegression

- from sklearn.neighbors import KNeighbors ...

- from sklearn.tree import DecisionTree ...

- from sklearn.ensemble import RandomForest ...

- from xgboost import XGB...

 

 

 

 

 

4. 인코딩

1) 가변수화 (= One-Hot-Encoding)

- 범주형 데이터를 독립된 열로 변환

- 범주형 문자열 데이터 -> 숫자로 변환해야 머신러닝 알고리즘에 사용 가능

- drop_first=True : 가변수화 결과로 만들어진 열 중 하나를 제거해 다중공선성 문제 예방.

 

pd.get_dummies(data=데이터프레임, columns=[가변수화할 컬럼들], drop_first=True, dtype=int)

 

 

* AICE 시험에서 특정 데이터 타입(object 등) 의 변수들을 확인하여 가변수화하라는 문제가 나옴.

이때 df.select_dtypes('object', 'str', 'int', 'float' 등).columns 를 활용해 가변수화할 컬럼 리스트를 만들어 pd.get_dummies 에서 columns의 매개변수로 넘겨주면 됨

 

 

 

2) 라벨 인코딩

from sklearn.preprocessing import LabelEncoder

 

le = LabelEncoder()

df['범주형 열이름'] = le.fit_transform(df['범주형 열이름'])

 

 

 

 

 

 

5. 스케일링(정규화 / 표준화)

1) 정규화 : 각 변수의 값이 0과 1 사이 값이 됨.

2) 표준화 : 각 변수의 평균이 0, 표준편차가 1이 됨.

3) from sklearn.preprocessing import MinMaxScaler...

 

scaler = MinMaxScaler()

x_train = scaler.fit_transform(x_train)

x_test = scaler.transform(x_test)

 

 

 

 

 

 

6. 평가함수 해석방법

1) MSE, RMSE, MAE, MAPE : 오류(Error) 이므로 작을수록 좋음.

2) R2 Score : 결정 계수는 1이 되면 MSE = 0 이므로, 데이터를 완벽하게 학습한 것을 의미. 즉, 클수록 좋음. (= 1 - SSE / SST)

3) Accuracy : 정확도는 높을수록 좋음.

4) 결론적으로 회귀모델은 오차를 줄이기 / 분류모델은 예측 비율의 정확도를 높이기가 목표!

 

출처: https://sy-log.tistory.com/m/entry/%ED%9A%8C%EA%B7%80%EB%AA%A8%EB%8D%B8-%ED%8F%89%EA%B0%80%EC%A7%80%ED%91%9C-R2-score-%EA%B2%B0%EC%A0%95%EA%B3%84%EC%88%98-MAE-MSE-RMSE-MAPE-MPE

 

 

 

 

7. 모델링 코드 구조

1) 불러오기 : 사용할 알고리즘과 평가를 위한 함수 import

2) 선언하기 : model = LinearRegression()

3) 학습하기 : model.fit(x_train, y_train)

4) 예측하기 : y_pred = model.predict(x_test)

5) 평가하기 : mean_absolute_error(y_test, y_pred)

출처 : https://goldenrabbit.co.kr/2022/10/28/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%9E%85%EB%AC%B8%EC%9E%90%EA%B0%80-%EA%BC%AD-%EC%95%8C%EC%95%84%EC%95%BC-%ED%95%98%EB%8A%94-4%EA%B0%80%EC%A7%80/