-
<TIL> 2024-02-21내일배움캠프(데이터 분석 부트캠프 1기)/TIL & WIL 2024. 2. 21. 23:28
- 오늘 진행한 일
- 스파르타 tableu 강의 수강
- 팀 프로젝트 내용 블로그 작성
- 팀 프로젝트 Develop, 튜터님께 문의
우선 본격적으로 tableud 강의를 수강하기 시작했다. 확실히 파이썬 코드로 치려면 한참 걸릴 만한 작업들을
UI 드래그 앤 드롭으로 해결할 수 있다는 점에서 상당히 매력적인 툴이다.
유료에 심지어 좀 비싸다는 부분만 빼면..스파르타에서 강의를 듣는 동안 쓸 수 있게 라이센스를 열어줘서 편안하게 학습할 수 있었다.
오늘은 다양한 기초적인 그래프를 시각화 하는 방법에 대해서 배웠고 대시보드를 간단하게 만드는 방법에 대해서 배웠다.
오늘 만든 그래프는 아래 그림과 같다.
태블로에 대해서는 따로 학습한 내용을 블로그로 정리하려고 한다.
맨날 쓴다 하면서 밀린 것들이 많은데 빠릿빠릿하게 적어야지
https://jinhyunbae.tistory.com/159
그리고 심화 프로젝트에 대해서 자세히 기록을 남기고자 블로그를 작성하고 있는 중이다. 열심히 작성을 했으나 워낙 내용이 많다보니 아직도 전처리 파트를 진행하고 있다. 내일 중으로는 작성을 마무리하고자한다.
팀프로젝트 Develop
예측변수 로그스케일 이상치 대체
로그 스케일을 한 뒤 이상치를 상하한 값으로 정제하여 구축한 모델 성능은 이를 하지 않았을 때보다 더 나빠졌다.
오차 자체는 줄어들었지만 R2 Score가 원래는 30퍼센트정도였는데 15퍼센트로 더 떨어진 것을 확인할 수 있었다.
해당하는 부분에 대해서는 튜터님께 질문을 드렸고 그 내용은 맨 아래에 정리하였다.
분류 알고리즘 task로의 전환
분류 알고리즘 task로 바꾸기 위해서 price_range변수를 생성하였다 변수를 생성한 코드는 아래와 같다.
wine_train.loc[wine_train['price']<30000, 'price_range'] = 0 wine_train.loc[(wine_train['price']>=30000)&(wine_train['price']<50000), 'price_range'] = 1 wine_train.loc[(wine_train['price']>=50000)&(wine_train['price']<70000), 'price_range'] = 2 wine_train.loc[(wine_train['price']>=70000)&(wine_train['price']<100000), 'price_range'] = 3 wine_train.loc[(wine_train['price']>=100000)&(wine_train['price']<150000), 'price_range'] = 4 wine_train.loc[(wine_train['price']>=150000)&(wine_train['price']<200000), 'price_range'] = 5 wine_train.loc[(wine_train['price']>=200000)&(wine_train['price']<300000), 'price_range'] = 6 wine_train.loc[wine_train['price']>=300000, 'price_range'] = 7
이렇게 나눈 예측변수에 대해서 RandomForest와 XGBoost의 Classifier모델을 구축하였고
다른 모델들과 마찬가지로 Optuna를 이용해 하이퍼 파라미터를 튜닝하였다.
8개의 다중분류를 했기 때문일 수도 있지만 분류 정확도는 36~38퍼센트 정도로 좋은 수준은 못되었다.
그래도 회귀 문제를 분류로 접근해볼 수도 있다는 생각에서 그치지 않고 실제로 시도해본 것은
좋은 경험이 되었다고 생각한다.
튜터님께 팀프로젝트에 대해서 Develop 해보려 시도한 부분을 질문했고 답변을 받았다.
질문과 답변 내용은 아래와 같다.
질문 : log_scale후에 이상치를 정제하고 이러한 절차가 성능에 도움을 주는가?
답변 : 정답은 없다. 다만 데이터가 이상치 때문에 선형성이 많이 깨져보였었는데이러한 부분들이 이상치 정제나 log_scale로 개선이 되려나 하는 생각에
이상치 정제 부분을 인상깊게 봤다고 말했던 것이었다.
회귀모델은 설명변수와 예측변수 간에 선형성이 존재해야 모델 성능이 좋게 나오는데
그러한 선형성이 전처리로 인해 생긴다면 성능에 도움이 될 것이다.
추가 피드백 : RandomForest나 XGBoost같은 모델은 원래 분류에 포커스가 맞춰져있는 모델이라
Regressor를 사용했으면 꼭 Regression 모델이라고 명시해주어야한다.
추가적인 내용 : kaggle 사이트에서 작성자의 멘트를 보니 분류나 회귀를 위해만들어진 데이터셋이 아니라 추천용 데이터셋인 것 같다.
해당 데이터에 대해서 원시적인 방법의 추천시스템 방법인
군집 알고리즘을 통한 추천 혹은 자연어처리 알고리즘 중 하나인 word2vec을 이용한
추천같은거를 해보면해당 데이터에 대해서 해볼 수 있는건
다해보는 거라고 할 수 있을 거 같다.
이상치를 정제하는 데 있어서 설명변수에 대한 이상치를 정제하는 것에 대한 이유는 이해하고 있었는데 예측변수의 이상치 정제에 대한 명확한 이유를 알 수 있게 된 것 같아서 좋았다.
또 프로젝트를 진행하면서 추천 시스템이나 추천 알고리즘에 관한 공부를 좀 해보아야겠다는 생각이 들었고 이를 활용할 수 있으면 좋을 거 같다.
'내일배움캠프(데이터 분석 부트캠프 1기) > TIL & WIL' 카테고리의 다른 글
<TIL> 2024-02-23 (0) 2024.02.23 <TIL> 2024-02-22 (0) 2024.02.22 <TIL> 2024-02-20 (0) 2024.02.20 <WIL> 2024년 2월 3주차 회고 (0) 2024.02.16 <TIL> 2024-02-16 (0) 2024.02.16 - 오늘 진행한 일