AI 모델링 및 모델 평가 파트는 총 4~5문항으로 구성되며, 전체 배점은 총 40점이다. 가장 큰 배점을 가진다.
상세 항목은 아래와 같이 구성되어 있다.
1. Scikit-learn, Tensorflow 등을 활용하여 머신러닝/딥러닝 모델링
2. 모델 성능 평가 및 그래프 출력
이번 게시물에서는 1번 내용과 2번 내용을 함께 정리해보도록 한다.
총 두 개의 모델을 만들기 때문에, 다양한 모델을 생성 및 학습시킬 수 있어야 한다.
1. 머신러닝/딥러닝 모델링 및 성능평가
(1) 의사결정나무 (Decision Tree): 회귀 모델 - MAE(Mean Absolute Error)
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import mean_absolute_error
dt = DecisionTreeRegressor(random_state=42, min_samples_split=3)
dt.fit(X_train, y_train)
y_pred_dt = dt.predict(X_test)
dt_mae = mean_absolute_error(y_pred_dt, y_test)
(2) 랜덤포레스트 (RandomForest): 회귀 모델 - MAE(MeanAbsolute Error)
from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor(random_state=42, min_samples_split=3)
rf.fit(X_train, y_train)
y_pred_rf = rf.predict(X_test)
rf_mae = mean_absolute_error(y_pred_rf, y_test)
(3) 딥러닝 모델
# 이진분류
from keras.models import Sequential
from keras.layers import Dense, Flatten, SimpleRNN, LSTM, Flatten
from keras.backend import clear_session
from keras.optimizers import Adam
model1 = Sequential( [Dense(32, input_shape=(n,), activation='relu'),
Dense(16, activation='relu'),
Dense(8, activation='relu'),
Dense(4, activation='relu'),
Dense(2, activation='relu'),
Dense(1, activation='sigmoid')] )
model1.summary()
model1.compile(optimizer=Adam(learning_rate=0.01), loss='binary_crossentropy')
history1 = model1.fit(x_train, y_train, epochs=50, validation_split=0.2).history
# 이진분류 Dropout 적용
from keras.models import Sequential
from keras.layers import Dense, Flatten, Dropout
from keras.backend import clear_session
from keras.optimizers import Adam
clear_session()
model2 = Sequential( [Dense(128, input_shape = (nfeatures,), activation= 'relu'),
Dropout(0.4),
Dense(64, activation= 'relu'),
Dropout(0.4),
Dense(32, activation= 'relu'),
Dropout(0.4),
Dense(1, activation= 'sigmoid')] )
model2.compile(optimizer= Adam(learning_rate = 0.001), loss='binary_crossentropy')
hist = model2.fit(x_train, y_train, epochs = 50, validation_split=0.2, verbose = 0).history
# LSTM을 이용한 시계열 모델링
from keras.models import Sequential
from keras.layers import Dense, Flatten, SimpleRNN, LSTM, Flatten
from keras.backend import clear_session
from keras.optimizers import Adam
clear_session()
model1 = Sequential([LSTM(16, input_shape=(timesteps, nfeatures), return_sequences=True),
LSTM(8, return_sequences=True),
LSTM(4, return_sequences=True),
Flatten(),
Dense(16, activation='relu'),
Dense(1)])
model1.summary()
model1.compile(optimizer=Adam(0.01), loss='mse')
history = model1.fit(x_train, y_train, epochs=100, verbose=0, validation_split=.2).history
'Certifications > AICE' 카테고리의 다른 글
4. 샘플 문제로 함께 알아보는 [데이터 분석] 파트 내용 정리하기 (2) xy데이터 분리, 데이터 정규분포화, 표준 (0) | 2024.06.20 |
---|---|
3. 샘플 문제로 함께 알아보는 [데이터 분석] 파트 내용 정리하기 (1) 시각화, 전처리 (0) | 2024.06.20 |
2. AICE [데이터 탐색] 파트 내용 정리하기 (0) | 2024.06.20 |
1. AICE 시험 소개 (0) | 2024.06.20 |