AICE 총론 / 기타 / 후기 AICE 시험 대비 요약 : aice 시험 대비 ml 요약
2023.09.10 23:44
AICE 시험 대비 요약 : aice 시험 대비 ml 요약
데이터 탐색하기
데이터 전처리
-
데이터 복사 : df.copy()
-
결측치 채우기 : fillna
-
단일 값 : df.fillna( 777 )
-
주변 값 활용 : df.fillna(method={'backfill', 'bfill', 'pad', 'ffill', None}, default None)
-
method 파라미터 사용시 첫,마지막 값이 결측치 인지 확인해야 한다.
-
-
최빈값으로 채우기
-
df[col].mode()[0]
-
df[col].median()
-
-
-
결측치 제거하기 : dropna
-
listwise 방식 : df.dropna
-
record의 항목 중 1개의 값이라도 NA이면 해당 데이터 행 전체 제거
-
-
pairwise 방식: df.dropna(how='all')
-
모든 항복이 NA인 데이터 행만 제거
-
-
임계치를 설정해서 제거 : df.dropna(thresh=14)
-
NA의 갯수에 따라 제거
-
-
특정 열에 있는 NA만 참고하여 결측치를 제거 : df.dropna(subset=['col_name_for_remove']
-
subset에 여러 칼럼 설정시 or 로 제거 됨
-
-
-
이상치 처리하기
-
범주형 데이터
-
value_counts()로 값의 분포와 함께 Trash 값이 있는지 확인
-
이상치 변경 replace('이상치', '정상 값')
-
-
수치형 데이터
-
describe() 로 기술 통계 확인
-
차트를 그려서 이상치 확인
-
sns.boxplot( df[col] )
-
-
이상치 제거
-
q1, q3 구하기 : df['col'].quantile(0.25), df['col'].quantile(0.75)
-
iqr = 1.5*(q3-q1)
-
제거 : df = df.loc[ df['col'].between(q1-iqr, q3+iqr, inclusive=[True, 'left', 'right'])
-
-
이상치 변경
-
대체 값 설정 : min = q1-iqr, max = q3+iqr
-
변경 : df.loc[ df[col]<min] = min
-
-
-
데이터 시각화
-
기본 사용법
-
목적별 차트 그리기
-
차트 꾸미기
-
기본 사용법
-
영역 지정 : plt.figure()
-
-
목적별 차트 그리기
-
선 그래프 plt.plot(), sns.lineplot() : 시간에 따른 데이터의 변화 추세를 볼 대 유용하다.
-
산점도 scatter() : 두 값이 양의 상관관계인지 음의 상관관계인지를 파악할 수 있다.
-
히스토그램 hist() : 수치형 데이터의 분포를 나타낸다.
-
박스 그래프 boxplot() : 수치적 자료로부터 얻어낸 통계량인 5가지 요약 수치
-
최소값, 1,2,3 분위 값 최대값
-
-
상관관계 heatmap() : 상관관계 확인. 모덴 데이터가 continuous 해야 한다
-
-
차트 꾸미기
-
제목 레이블 추가
-
범례 추가 legend([col1, col2..])
-
Feature Engineering
-
Binning
-
Encoding
-
Binning
-
연속형 변수를 범주형 변수로 만드는 방법
-
ex_ 나이 -> 나이대
-
-
Encoding
-
Label Encoding : 문자를 숫자로 변환
-
숫자로 되어 있어 가중치로 인식하여 값이 왜곡될 수 있다. -> 선형 회귀에는 적용하지 않는다.
-
-
One-Hot Encoding : 한 개의 요소는 True 나머지 요소는 False로 만들어 주는 기법.
-
get_dummies()
-
-
모델링
-
데이터셋 분할
-
train_test_split(x, y, stratify=y, test_size=0.3)
-
stratify = 지정된 타겟의 class 비율을 train/validation에 유지시켜준다.
-
-
-
데이터 스케일링 ( 표준화, 정규화)
-
칼럼 별 차이를 왜곡하지 않고 공통 척도로 변경하기 위함이다.
-
Standard Scaler 표준화
-
0주위에 표준편차 1의 값으로 배치되도록 표준화하는 것
-
StandarScalert()
-
-
MinMax Scaler 정규화
-
모든 피처가 정확하게 [0, 1] 사이에 위치하도록 데이터를 변경
-
MinMaxScaler
-
-
-
모델 구현
-
단일 분류예측 모델 : LogisticRegression, KNN, DecisionTree
-
앙상블 모델 : RandomForest, XGBoost, LGBM, Stacking, Weighted Blending
-
모델 성능 평가
-
confusion_matrix, classification_report
-
accuracy_score, precision_score, recall_score, f1_score
-
-
랜덤포레스트
-
Hyperparameter
-
n_jobs : CPU 사용 갯수
-
max_depth : 최대 깊이, 과대적합 방지용
-
n_estimators: 트리 갯수
-
max_features : 최대로 사용할 feature의 갯수, 과대적합 방지
-
min_samples_split : 트리가 분할할 때 최소 샘플의 갯수, 과대적합 방지
-
-
-
XHBoost
-
!pip install xgboost
-
from xgboost import XGBClassifier
-
Hyperparameter
-
learning_rate :
-
학습율. 너무 큰 학습율은 성능을 떨어뜨리고, 너무 작은 학습율은 학습이 느리다.
-
적절한 값을 찾아야함. n_estimators와 같이 튜닝. default=0.1
-
-
n_jobs : CPU 사용 갯수
-
n_estimators : 부스팅 스테이지 수. (랜덤포레스트 트리의 갯수 설정과 비슷한 개념). default=100
-
max_depth : 트리의 깊이. 과대적합 방지용. default=3.
-
subsample : 샘플 사용 비율. 과대적합 방지용. default=1.0
-
max_features : 최대로 사용할 feature의 비율. 과대적합 방지용. default=1.0
-
-
-
딥러닝
-
딥러닝 모델 구현 DNN
-
라이브러리
-
import tensorflow as tf
-
from tensorflow.keras.models import Sequential
-
from tensorflow.keras.layers import Dense, Activation, Dropout
-
-
모델 생성 : Sequentional 모델
-
model = Sequential()
-
model.add(Dense(5, activation='relu', input_shape=(78,)))
-
model.add(Dropout(0.3)) .....
-
model.add(Dense(2, activation='sigmoid')) 2진 분류 모델 softmax 다중 분류
-
-
모델 컴파일
-
model.compile()
-
optimizer = 'adam'
-
loss = 'binary_crossentropy' & 'categorical_crossentropy'
-
metrics = []
-
-
-
모델 학습
-
model.fit(X_train, y_train,
-
validation_data=(X_test, y_test),
-
epochs=20,
-
callbacks=[es, mc],
-
batch_size=16,
-
verbose=1)
-
-
Callbacks 함수 설정 : EarlyStopping, ModelCheckpoint
-
EarlyStopping(monitor='val_loss', patience=3, mode='min', verbose=1)
-
monitor : EalryStopping의 기준이 되는 값
-
min_delta : 개선된 것으로 간주하기 위한 최소한의 변화량
-
patience : 개선이 없을 때 최적의 값을 기준으로 몇 번의 epoch를 더 진행할 지 정하는 값
-
mode : monitor가 최소가 되어야 하는 지, 최대가 되어야 하는지 ('val_accuracy'는 max, 'val_loss'는 min)
-
-
ModelCheckpoint('my_checkpoint.h5', monitor='val_loss', save_best_only=True, verbose=1)
-
filepath : 모델을 저장할 경로
-
monitor : 모델을 저장할 때, 기준이 되는 값
-
mode : auto로 할 경우, 모델이 알아서 min, max 판단하여 모델 저장
-
-
-
모델 성능 평가(시각화)
-
performance = pd.DataFrame(model.history.history)
-
cols -> loss, accuracy, val_loss, val_accuracy
[출처] aice 시험 대비 ml 요약|작성자 minqt98
-
-
[출처] https://blog.naver.com/minqt98/222911247401
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 8 |
[전산회계1급/2급] 전산회계1급정리파일
| 졸리운_곰 | 2023.09.05 | 539 |
| 7 |
[전산세무1급] 이론요약 정리 공유
| 졸리운_곰 | 2023.09.05 | 3045 |
| 6 |
[전산회계1급] 전산회계1급 108회 기출문제
| 졸리운_곰 | 2023.09.05 | 282 |
| 5 |
[전산세무회계] 전산세무회계 시험 개요
| 졸리운_곰 | 2023.09.02 | 355 |
| 4 |
[전산세무회계] 간편장부 - 국세청 프로그램 / 엑셀간편장부
| 졸리운_곰 | 2023.09.01 | 354 |
| 3 |
[전산회계 2급] 전산회계2급 핵심요약 및 정리
| 졸리운_곰 | 2023.08.28 | 662 |
| 2 |
[전산회계2급] [전산회계 2급] 이론 정리 무료배포
| 졸리운_곰 | 2023.08.28 | 334 |
| 1 | [전산세무회계] ■ 회계의 기본개념 | 졸리운_곰 | 2023.08.28 | 302 |

