728x90
오늘은
- kaggle playground s3e9 LGBM, XGBoost 개념 정리 + CatBoost model 테스트까지 진행.
- --> 내일은 ensemble model 정리까지 하면 될 듯
- 그리고 다음날부터
- google - Isolated Sign Language Recognition 이거 해볼 예정..
- 강남에서 진행한 StableDiffusion 과 chatGPT 모두팝을 듣고 왔다.
피어슨 상관계수 vs 스피어만 상관계수
- 두 변수 간의 관계를 측정하는 지표.
- 피어슨 상관계수
- 두 변수가 선형적으로 연관되어 있는 경우 적합한 지표
- 두 변수가 서로 직선 형태의 관계를 갖고 있는 경우, 하나의 변수가 증가할 때 다른 변수도 비례하여 증가하거나 감소하는 경우.
- -1부터 1까지 값을 갖는다.
- 스피어만 상관계수
- 두 변수 간의 관계가 비선형적일 때 적합
- 변수 간의 rank를 기준으로 계산. 두 변수가 같은 방향으로 등수를 가지는 경우 값이 1에 가까워진다.
- Kendall Tau 상관계수
- 비모수적인 방법 중 하나. 스피어만 상관계수와 유사한 방식으로 계산
- 두 변수 간의 등수의 일치도를 측정하여 상관선을 파악.
- 참고) 비모수적인 관계: 변수 간의 관계를 측정할 때 변수의 분포가 정규분포를 따르지 않는 경우. 변수간의 관계를 측정할 때 등간척도나 비율척도가 아닌 순서척도 등 변수 간의 순위를 이용하여 계산하는 방법을 의미. 변수의 분포가 대칭적이지 않거나 이상치가 존재하는 경우에도 적용 가능.
LGBM
- tree 기반 머신 러닝 알고리즘.
- 속도와 효율적인 메모리 사용. GBM이나 XGBoost와 같은 다른 트리 기반 알고리즘보다 훨씬 빠르기 때문에 'light'라는 이름을 붙인 듯. 주요 장점은 메모리 사용 속도와 효율성
XGBoost
- Gradient Boosting 알고리즘의 일종. 트리 기반 학습 알고리즘.
- 분류, 회귀 문제 모두에 적용될 수 있으며, 다른 트리 기반 알고리즘보다 높은 예측 성능을 보인다.
- 트리 기반 모델에서 발생하는 과적합 문제를 해결하기 위해, 정규화(Regularization) 방법을 적용한다. L1(Lasso), L2(Ridge) 규제 모두 사용. 가지치기 기법을 적용해 모델의 복잡도를 제한.
- 빠른 학습과 예측 속도를 제공. 다양한 최적화 기법을 적용하며, 병렬 처리를 지원.
- 데이터셋의 특정과 hyperparameter에 따라 최적화된 모델을 생성하며, feature importance를 계산해 중요한 변수를 파악할 수 있다.
optuna
- optuna를 쓸 때, objective function을 만드는 것이 매우 중요하다는 걸 알았다.
- 다행이 만들 때 들어가는 순서는 비슷한 것 같다.
- 순서는 다음 예시 코드와 비슷하다.
def objective(trial):
# 최적화 시킬 hyperparameter를 정의한다.
param = {
'objective': 'reg:squarederror',
'eval_metric': 'rmse',
'reg_lambda': trial.suggest_float('reg_lambda', 1e-3, 1e2, log=True),
'learning_rate': trial.suggest_float('learning_rate', 1e-4, 1e0, log=True),
...
}
# split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Train the model
model = xgb.XGBRegressor(**param)
model.fit(X_train, y_train)
# Evaluate the model
y_pred = model.predict(X_test)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
return rmse
- hyperparameter 정의
- train test split
- train model
- evaluate model
- loss값을 구한 후, return
그 후, study object를 만든 다음, 몇 번 돌려주면 best parameter를 구할 수 있다.
best_params = study.best_trial.params
print("Best Parameter For XGB is")
print(best_params)
정리한 캐글 노트는 다음과 같다.
https://www.kaggle.com/shineyourlife/pg-s3e9-2nd
모두팝 - stable Diffusion과 ChatGPT
- 처음 들었을 때 목적은 업계 동향 + GAI나 LLM이 앞으로 어떻게 될지에 대해서 참고하려고 간 것이었다. 그래서 처음에 지금 현재 ChatGPT가 나오기까지 역사를 들었을 때는 "음... 모지? 잘못왔나?" 싶었는데, 이야기가 너무 재미있었고 지금의 AI 시장을 이해하기 쉽게 만들었다.
- ChatGPT의 openAI뿐만 아니라 굵직한 기업이 현재 어떤 상황에 있는지 알 수 있었으며, 가장 재미있었던 것은 AI의 탈 중앙화(?) 였다. 거대 자본의 독점을 견제한 비영리 단체의 또다른 독점, 혹은 타락? 아니면 자만?을 비판하며 또다른 커뮤니티가 만든 stable diffusion이야기.
- 이렇게 형성된 시장에서 어떻게 하면 살아남을 수 있는지 약간의 힌트도 얻은 것 같다. 코어 기술을 익히는 사람 보다는 제품, 서비스를 기획하는 사람을 더 원하는 시장이 더 커질것이라고 했다. 이 부분은 조금 의외였지만, 한편으론 chatGPT를 경험한 나로서는 납득이 가는 말이었다. AI 코딩쪽은 아마 앞으로 정말 스페셜리스트 아니면 AI로 커버 가능할 수 있을 것 같다는 생각도 든다. 대신 엔지니어를 cloud나 GAI와 같은 기술, 서비스가 뒷받침 해주니 일당백이 가능한 일인기업이 탄생할 확률도 높아질 것 같다. 토요일에 커피챗을 했을 때 들었던 생각과 같이, GAI는 최고의 assistant가 될 것이라고 생각한다.
- 한국어 시장도 우려와 달리 학습이 빨리 될 것 이라고 했다.
- AI의 과거, 현재, 미래에 대해서 들을 수 있었고, 또 현재와 미래에 대해서 스스로 생각해 볼 수 있는 시간이었다.
- 다시보기는
https://www.youtube.com/watch?v=qPZdD15R8sE&t=233
728x90
'진행중' 카테고리의 다른 글
[TIL] 2023-03-09 kaggle notebook review (1) (0) | 2023.03.09 |
---|---|
[TID] 2023-03-08 - kaggle (1) | 2023.03.08 |
[TIL] 2023-03-06 kaggle playground: Concrete Strength Prediction (0) | 2023.03.06 |
[TID] 2023-03-04 GAI, LLM에 대한 커피챗 (0) | 2023.03.04 |
[TIL] 2023-03-03 (0) | 2023.03.03 |