본문 바로가기
IT 자격증/AICE Associate

AICE Associate 후기 (가져옴)

by ootd_info 2024. 6. 25.
반응형

가공해야할 데이터 확인하고 그 중에 타겟 변수를 확인

문제 1 라이브러리 Import

import seaborn as sns

문제 2 라이브러리 Import

import pandas as pd

문제 3 데이터 프레임 생성 - 데이터 모델링을 위해 준비된 데이터 파일을 변수에 할당

df = read_csv(or json, xml...)(/X0000.csv)

문제 4 특정 컬럼에 대한 일변량 그래프 확인 - barplot

문제 5 특정 컬럼에 대한 일변량 그래프 확인 - boxplot

문제 6 이상치 확인 및 이상치 삭제

문제 7 결측치 행 확인 및 결측치 삭제 (isnull.sum)

문제 8 불필요 컬럼 삭제 (drop)

문제 9 원-핫 인코딩 or 라벨 인코딩 (le = labelencoder())

주어진 데이터에는 범주형 컬럼이 포함되어 있고 이를 수치형으로 처리할 수 있는지 보는 문제

get_dummies or labelencoding 함수를 통해 수치형 (0,1,2...) 값으으로 바꾸는 과정 진행

변환과정을 확실히 익혀두고 기계적으로 작성할 줄 알아야 당황하지 않을 듯 하다.

문제 10 머신러닝 & 딥러닝 처리용 데이터셋 분리

타겟 변수를 y 값, 그 외 컬럼을 x 로 할당 (훈련 및 검증 데이터셋 분리)

x_train, y_train, x_val, y_val = train_test_split(x, y, random_state= 1)

문제 11 머신러닝 모델

회귀 및 분류 모델 종류 파악하기. 각 모델 별로 코드 작성법이 다르니 차이를 중점적으로 암기할 것.

시간이 많이 주어지는 시험이 아닌대신 오픈북이기 때문에, 문제를 보고 제시하는 모델의 코드틀을 검 후 바로 작성할 수 있도록 연습

문제 12 머신러닝 성능 평가

mse, mae ...

문제 13 딥러닝 모델

히든레이어, dropout 비율, 손실함수, 하이퍼파라미터(epochs, batch_size), history 변수에 저장

항상 같은 코드 작성을 요구하는 듯하니 딥러닝 작성 코드를 통째로 외워버리고 실제시험에서 당황할 수 있는 부분만 미리 준비를 해놓으면 될것 같다

문제 14 딥러닝 성능 평가

mse, mae

 

1.seaborn을 활용해서 데이터 간 상관관계를 히트맵 그래프로 시각화해라
그리고 하단에 가이드가 나왔어요.
데이터 프레임 이름이나 어노테이션 포함해라 등등...
import seaborn as sns
import matplotlib.pyplot as plt
해줘야 하는건 다들 알죠~?
 
2.지정된 컬럼으로 seaborn을 활용해 barplot그래프를 그려라
하단에 가이드 나오고 그대로 코딩 고고
sns.barplot(x='어쩌고', y='저쩌고', data=어쩌고)
오예 아직까지는 할만 했었음
 
3.데이터프레임 전처리
하단에 가이드 나옴.
제거해야 할 컬럼 어쩌고 저쩌고 나온 뒤에 데이터프레임에 저장하라고 나왔음.
데이터이름.drop(['컬럼들', '줄줄이', '쓰삼'], axis=1)
 
4.데이터 결측치 처리 후 전처리
일단 결측치를 확인해줘야겠죠?
임의로 이름 정해줬었나 = 데이터이름.isnull().sum()
결측치 0으로 변경해주자
데이터이름.fillna(0)

아 이거 생각보다 색깔 바꾸면서 코드 타자치기 쉽지 않네요
시간이 오래걸리네...
 
5.float타입 결측치데이터를 0으로 변환해서 지정된 이름으로 저장
동일하게 결측치 확인해준 후 fillna 해주고,
문제에서 지정한 이름으로 저장해줌.
지정된이름= 데이터이름.fillna(0)
 
6. Scikit-learn의 label encorder를 사용해서 범주형 데이터를 수치형 데이터로 변환
여기서부터 좀 난이도가 생긴 느낌
일단 (1)라벨인코더 객체 생성
이름 그냥 간단하게 label_encoder 라고 했었던듯? = LabelEncoder()
(2)대상 컬럼 목록을 묶어줌
(3)라벨인코딩 적용 고고
 
7.훈련과 검증에 필요한 데이터셋 분리
하단에 이것도 가이드 나오고
대상 데이터프레임이랑, 훈련 및 검증 데이트셋 등등
비율까지 나왔음 80:20이었던듯.
train_test_split함수 사용해라.

(1)일단 Features(x)와 Label(y)을 분리해야겠죠?
X = 데이터이름.drop('label_yn', axis=1)
y = 데이터이름['label_yn']

(2) 분리
X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)
(3)분리된 데이터셋 확인
print("훈련 데이터셋 크기:", X_train.shape, y_train.shape)
print("검증 데이터셋 크기:", X_valid.shape, y_valid.shape)
 
8.정규화하고 표준화해라
Minmaxscaler사용.
잘 기억이 안나네..
 
9.랜덤포레스트 모델로 학습 진행
결정트리개수 100개
최대 feature개수 13개
....
from sklearn.ensemble import RandomForestClassifier
(1)랜덤 포레스트 모델 생성 및 하이퍼파라미터 설정
모델 = RandomForestClassifier(n_estimators=100, max_features=13, 그 뒤는 기억이 안나 .....)
(2)모델 훈련
model.fit(X_train_normalized, y_train)
 
10. 랜덤포레스트 모델로, 하이퍼파라미터 설정값을 적용해 학습을 진행해라.
모델.fit(X_train_normalized, y_train)
 
11.모델 성능평가 및 히트
성능평가는 검증데이터셋 활용해
이전 문제에서의 모델로 Y값을 Y_PRED에 저장해
어쩌고 저쩌고
변수를 어디 변수에 저장해~~
from sklearn.metrics import confusion_matrix, classification_report
import seaborn as sns
import matplotlib.pyplot as plt

 

 

728x90

댓글