![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/zH9lM/btsFR1dCHNu/1bDT7If3q1xuPzX7y2MDkk/img.png)
주제 미세먼지 농도 예측 머신러닝 모델링 목표 탐색적 데이터 분석 복습 데이터 전처리 과정 복습 머신러닝 모델링 과정 복습 머신러닝 모델 평가 프로젝트 내 역할 개인 프로젝트 다만, ppt에서는 피처 요약표와 모델링 지표 등을 담당 1. 데이터 분석 1.1 구성 air_2022, air_2023 미세먼지 및 오염물질(SO2, CO, O3, NO2, PM25, PM10) 정보 weather_2022, weather_2023 날씨 정보(기온, 강수량, 풍속, 풍향, 습도, 시정 등) 1.2 분석 가장 먼저 피처 요약표 분석 명목형에서 고유값이 1인 것들은 타겟 예측력이 없으므로 제거할 생각을 하고 들어간다. 연속형이어도 결측값 개수가 5000개보다 많고, 의미 없는 변수(QC값)이라 생각되면 drop해주었다..
kaggle에는 /kaggle/working/에 모듈을 저장해서 불러올 수 있는 기능이 있다.이 기능을 사용하면 하나의 노트북에서는 각 세션마다 모듈을 pip install로 받지 않아도 계속해서 지속된다. 필자는 pycaret으로 진행하였는데, classification 모듈을 import할 때 오류가 나는 부분이 발생했다.cannot import name 'is_datetime64tz_dtype' from 'pandas.core.tools.datetimes' (/kaggle/working/pandas/core/tools/datetimes.py) 어느 부분이 문제인지 몰라, 조건을 바꿔가면서 실험했다. 1. pycaret을 다운받을 때 사용하는 각 모듈의 문제인가? -> 아니였다. 세션을 종료하고 다시..
dtype의 defalut 값이 bool로 바뀌면서, 원핫 인코딩을 할 때 int로 만들어야 한다. 왜냐하면 True, false로 나오기 때문이다. 앙상블 여러 개의 약한 모델이 올바르게 결합하면 훨씬 더 정확하고 견고한 모델이 된다. 보팅 배깅 부스팅 스태킹 보팅 여러 모델들을 만들고, 예측 결과를 투표를 통해 최종 예측 결과를 결정한다. 하드 보팅 : 다수 모델이 예측한 값이 최종 결과 값이다. 만약 1,2,1,1이 있다면, 1로 예측. 소프트 보팅 : 모든 모델이 예측한 레이블 값의 결정 확률 평균을 구한 후, 가장 확률이 높은 값을 최종적으로 선택한다. 확률을 따진다. 1일 확률이 0.7,2일 확률이 0.3, ...이런식으로 나오는데 이걸 확률 평균 1일 확률이 배깅 bootstrap Aggre..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cT8rdQ/btsFKRizoVE/UeOJzxRy9h9FKxN9M7bSkK/img.png)
과대적합이 발생하는 가능성 -> 모델이 너무 복잡하다. 선형회귀의 경우 독립변수가 많을 때 복잡해진다. 모든 변수의 가중치를 다 계산해야 하기 때문이다. 항상 모델을 만들고 나면 회귀 계수를 살펴보자. print(list(x_train)) print(model.coef_) print(model.intercept_) 편향과 회귀 개수 릿지, 랏소, 엘라스틱 넷 가중치를 할당하지 않거나, 가중치를 줄여주는 모델. knn은 언제 모델이 복잡해지나? k가 작을수록 복잡해진다. k가 크다면 단순한 모델이 된다. 피타고라스 거리, 맨해튼 거리. 거리를 측정하는 것이기 때문에 각 0~1사이로 바꾸는 정규화를 해야 한다. 평가용 데이터에도 학습용 데이터를 기준으로 스케일링을 수행한다. sklearn이 제공하는 함수를 ..
LIS 문제는 주어진 수열에서 증가하는 부분 수열 중 가장 긴 것의 길이를 찾는 문제입니다. 예를 들어, 수열 [10, 20, 30, 5, 15, 25, 35, 40]이 주어졌을 때, 최장 증가 부분 수열은 [10, 20, 30, 35, 40]이며 길이는 5입니다. 상어의 크기를 수열로 보면, 연속적으로 먹히는 관계를 가진 상어들의 최대 마리 수는 그 수열에서 최장 증가 부분 수열의 길이와 같습니다. 다만, 주어진 문제에서는 순서가 중요하므로 단순히 LIS 알고리즘을 적용하기는 어렵습니다. LIS 문제와 관련된 유명한 다른 문제들로는 다음과 같은 것들이 있습니다: 가장 긴 공통 부분 수열(Longest Common Subsequence, LCS) 문제 가장 큰 증가 부분 수열의 합(Maximum Sum ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bXJ2kB/btsFHtAWX75/8GCY8x6ppcD03hbIskUgP0/img.png)
일주일 간의 목표 알고리즘 성능 비교 하이퍼파라미터 튜닝 라이브러리를 불러오고, 데이터 불러오고, 불필요한 변수를 제거하며 Nan 조치를 한다. 불필요한 변수의 제거 NaN이 77%인 경우, 채울 방법이 마땅치 않으므로 제거하는 게 합리적이다. 타깃값을 예측하는 데 있어서 너무 유니크한 값들(범주의 변수가 너무 많은 값들)은 도움이 되지 못한다. 그러므로 제거한다. 결정을 하고, 타당한 이유를 댈 수 있어야 한다. 비율을 제시하거나, 해당 값을 왜 그렇게 정했는지. 항상 반복을 위해서 원본을 .copy하여 보관한다. NaN 확인은 .isna().sum()으로. 비율로 알려면 len으로 나눠서 100으로 곱해주면 된다. df.isna().sum() / len(df) * 100 NaN 값이 포함된 행이나 열..