본문 바로가기

AI15

(2024-03-14) Hydra Hydra에서 파라미터 관리를 위해 yaml이라는 데이터 포맷을 사용 config group: 여러개의 설정 파일을 그룹으로 묶어 관리 많은 수의 실험을 해야하는 경우, 편리하게 수행 가능 e.x. 모델2가지, 손실함수 2가지를 입력하면: 최종 4번의 실험을 알아서 수행 2024. 3. 14.
(2024-03-14) Pytorch Lightning Pytorch Lightning을 이용한 CNN Classifier class CNNClassifier(pl.LightningModule): def __init__(self): super(CNNClassifier, self).__init__() def forward(self, x): def configure_optimizers(self): def training_step(self, batch, batch_idx): def validation_step(self, batch, batch_idx): def test_step(self, batch, batch_idx): def predict_step(self, batch, batch_idx): model = CNNClassifier(num_classes=10, .. 2024. 3. 14.
(2024-02-02) XGBoost와 아이들 XGBoost 계열 모델은 하이퍼파라미터 튜닝이 매우 중요 하이퍼파라미터 튜닝보다는 피처 엔지니어링이 중요하긴 함 LgighGBM: depth를 여유롭게 잡고, 그 여유로운 범위 내에서 리프노드의 갯수를 제한하도록 셋팅 리프들만 확장하는 방식으로 성능 향상 num_leaves: 실효성이 있으려면 2의 최대제곱보다 작아야 의미가 있다 colsample_bynode 옵션이 아예 없음 colsample_bytree를 사용 GPU 사용시 이슈가 많음(안되는 경우가 많다) CatBoost Categorical feature 학습을 잘하도록 설계 Categorical feature가 많을때 사용하면 좋다(Categorical feature의 비율이 50% 이상) 칼럼 갯수는 200개 이하일 때 사용 row 갯수는 .. 2024. 2. 2.
(2024-01-17) 통계 ANOVA(Analysis of Variance) 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용 대표적인 가정Assumption 왜도(Skewness)와 이상치(Outlier)가 제일 중요 Remedy: Normality QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다 그 외 Shapiro, Kolmogorov Remedy: Independency 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다 시간적 자기상관성: e.g. 핵심: 내 모델이 문제가 있는지 여.. 2024. 1. 24.
(2023-12-29) Python EDA 타이타닉 탑승자 데이터를 이용하여 생존자를 예측하는 분석을 해보았다 data # Pclass: 티켓클래스 # SibSp: 함께 탑승한 형제 및 배우자의 수 # Parch: 함께 탑승한 부모 및 자녀의 수 # Embarked: 승선한 항구 # Survived: 1=생존/ 0=사망 data.corr() # 각 변수 간의 상관관계(-1 ~ +1) # 변수간 상관관계에 대한 히트맵 import matplotlib.pyplot as plt import seaborn as sns sns.heatmap(data.corr(), cmap='coolwarm', vmin=-1, vmax=1, annot=True) plt.show() # cmap='coolwarm': 0을 기준으로 대칭이 되는 색상 배열을 사용(상관관계의 강.. 2024. 1. 10.
(2023-12-26) 파이썬 프로젝트: 웹크롤링 온라인 쇼핑몰에서 내가 원하는 부분의 리뷰 데이터만 가져오는 웹크롤링을 해보기로 했다 1. 리뷰의 일부만 보여주는 부분을 '더보기' 버튼을 눌러서 더 많은 데이터를 펼쳐주는 함수 def click_show_more_button(browser): try: # Find and click the "더보기" button more_button = browser.find_element(By.ID, 'btnMoreGod') more_button.click() # Wait for the content to load (adjust the timeout as needed) WebDriverWait(browser, 10).until(EC.staleness_of(more_button)) except Exception as e.. 2023. 12. 28.