728x90

코랩에서 택시수요예측 스태킹을 어젯밤부터 아침까지 실행하다가 

사용 용량 초과로 인해 초기화가 돼... 됐습니다..

 

그래서 주피터 노트북으로 실행했지만 6시간 이상이 걸리더라고요

제 노트북이 몇 년 된지라 계속하면 망가질까 걱정되다가 결국 중단했습니다 ㅠㅠ 

 

게다가 딥러닝도 막혔습니다 LSTM 하기 위해서 데이터 셋을 만들던 중에 

크기가 2 테라가 넘어서 뺀찌를 먹더군요 처음 알았습니다 딥러닝 이외에 다른 제한이 있다는 걸요 

2015년도 5월 데이터만 가져왔는데 이렇게 크기가 커진 거라면 아마 원핫인코딩을 많이 늘려서 그런 것 같습니다

피처가 450개인데 여기서 몇 개를 삭제해야 할 것 같아요 

 

게다가.. 지역별 개수가 다 다른 것 같더라고요 

예를 들어 강남역 오후 8시 택시 정보는 있는데 신도림역 오후 8시 택시 정보가 없는 것처럼요 

 

제가 처음에는 zip_code별 그룹바이 하니까 383개 zip_code가 나왔었습니다 

아~ 그럼 여기에 30분 단위로 쪼개니까 일괄적으로 계산하면 맞아떨어지겠구나 생각했었더랬죠 

 

But

역시 호락호락하지 않았습니다.. 스태킹도 안되고 딥러닝도 막히니까 두통이 느껴지는 것 같기도 하고 ㅎㅎ

오늘은 좀 일찍 마무리하고 쉬다가 낼 일어나서 다시 해봐야 할 것 같아요

 

 

 

728x90
728x90

예정대로 PCA진행화 스태킹까지 끝마쳤습니다

XGBoost로 gridSearch를 실행하니까 역시 오래 걸리더라구요

 

처음부터 LIghtGBM을 했다면 더 빨리 진도를 나갈수 있었을 건데 말이죠

오늘은 막히는 오류가 있거나 하진 않았습니다! 

 

그래서 내일은 LSTM이나 GRU같은 시계열 데이터 예측 딥러닝 모델을 사용해 볼까 해요

어떤 식으로 해야 할지는 내일 자세히 알아 볼려고합니다

 

여러곳을 찾아보니까 택시수요예측를 LSTM,GRU로 한 블로그를 못봐서 좀 희소성? 이 있지 않을까 생각합니다

카카오브레인팀은 30분씩 쪼개서 4시간씩 묶어 예측을 한것같더라구요 (제가 이해 하기로는)

 

이외에도 다른 정보를 구글링하고 참고해서 또 열심히 해보겠습니다

감사합니다:) 

728x90
728x90

택시 수요예측 프로젝트 전처리 부분을 진행했습니다 

날씨를 bad, normal로 변수를 추가하고 원핫인코딩을 zip_code와 함께 진행했습니다

그런데 여기 난관이 columns= 이부분 이였습니다

실습 때는 zip_code 하나라서 쉬었지만 변수 하나가 추가되니까 막히더라고요

 

pd.concat 파라미터 구글링을 해봤지만 원하는 결과를 찾지 못해서 꽤 헤매었습니다 

구글링을 멈추고 내가 원하는 형태는 뭘까 생각해 보며 이것저것 시도해 보다가 np.concatenate를 사용하니까

되더라고요 뿌~듯하고 문제 하나를 넘겼다는 생각에 숨통이 틔였습니다

#원핫인코딩
from sklearn.preprocessing import OneHotEncoder

#객체 생성
ohe= OneHotEncoder()
ohe.fit(base_df[['zip_code','wheather']])
ohe_output= ohe.transform(base_df[['zip_code','wheather']]).toarray()
ohe_df=pd.concat([base_df, pd.DataFrame(ohe_output, columns=np.concatenate([ohe.categories_[0],ohe.categories_[1]], axis=0))],axis=1)
ohe_df

 

 

이렇게 문제 하나를 통과하니까 또 다른 문제가 뙇!!!

 

iplot 사용제한이 있을 줄은 몰랐는데..  정말 생각지 못한 곳에서 문제가 생기는 게 프로그래밍의 매력이 아닐까...라는 새.. 생각.. 이.. 듭니ㄷ ㅏ  . .   으흠 

 

iplot이 깔끔하고 고급져 보여서 좋아했는데 말이죠 ㅠ 급한 대로 해당 사이트 들어가서 application을 제출하라고 하더라고요 그래서 일단은 보냈는데 결과가 어떻게 나올지는 지켜봐야 할 것 같아요

 

그리고 지금은 XGBoot를 gridSearch로 진행 중인데 지금 1시간째 돌아가고 있네요 

연산량이 많진 않은 것 같은데 말이죠.. 지금은 중단하고 내일 다시 조정해서 돌려봐야 할 것 같아요 

 

내일은 스태킹을 해보고 연관 있는 변수끼리 PCA를 통해서 차원 축소한 성능을 비교해볼 생각이긴 합니다

계획만 그렇게 잡고 있고 또 내일이 가면 어떻게 바뀔지는 내일 공부 기록에 남겨 놓겠습니다:)

 

728x90
728x90

RNN을 적용해서 택시 수요예측을 진행하고 싶어서 계속 공부를 했습니다

케라스 창시자에게 배우는 딥러닝 책을 보면서 기온예측 실습이 있길래 쭉 훑어 봤는데

 

음.. 이해가 가질 않았습니다  

10분마다 나오는 센서 데이터를 가지고 기온을 예측해야 하는 내용인데 

 

책에서는 10일전 데이터로 돌아가는 lookback,  1시간마다 데이터 포인트 하나를 샘플링, 24시간이 지난 데이터가 타킷이 되는 delay 같은 개념이 나오는데 

 

아직 제 수준으로는 저자가 어떤 의도로 이렇게 했는데 이해가 가질 않더라구요.. 

그러다 보니 뒤에 내용도 당연히 모르겠고, 집중력이 흩어졌습니다 ;; 

 

사실 이책을 보기 전 부터 평소와 다르게 계속 졸아 버려서 집중력이 좋진 않았습니다 

공부를 분명 했는데 뭘 했는지 모른걸 보면 하는 둥 마는 둥 시간만 축 낸것같네요  내시간 돌리도 ㅠ

 

내일부터는 본격적으로 적용을 해야 할텐데 

아직 갈피를 못잡고 있어서 숨이 턱턱 막히네요 ㅎㅎ 

 

힘들수록 보람은 커지는 법이니까 

오늘 제대로 자고 내일은 집중력 있게 

해보겠습니다 !

728x90
728x90

택시 수요예측에 적용할 모델을 정하기 위해서 저번 주에 이어서 앙상블 기법을 공부했습니다 

Smote와 LightGBM을 기반한 신용카드 사기 검출 실습을 진행했죠

 

조금 많은 페이지였는데 중간마다 생각 좀 해야 할 부분들이 있어서 예상보다 진도를 많이 못 나간 것 같아요 

중요한 건 진도보다는 이해가 중요하니까 이번만큼은 시간에 쫓기지 않고 임하려고 합니다 

 

지금은 방법만을 배우고 있는 것 같아서 미완성이라는 느낌을 받습니다 

내가 쓰고있는 알고리즘이 수학적으로 어떻게 연결이 되고 작동이 되는지를 알아야 비로소 속이 좀 풀릴 것 같아요 지금은 많은 기법들을 실습하고 이해하는데만 꽤 많은 시간이 걸릴 것 같더라고요 정말 많~~ 은 기법들이 있어서 깜짝 놀랐습니다 잠시 딴 얘기로 넘어갔네요;  다시 본론으로 와서

 

실습을 끝난 후에는 카카오브레인의 TGnet을 다시 봤습니다 초보 지식으로는 이해하는데 무리가 있었고 적용하기에도 힘들 것 같더군요 

 

하지만 좀 깜짝놀랄만한 걸 알게 되었습니다 시간 안내 임베딩이라는 건데 

정말 사람처럼 시간적인 개념을 학습 시켜서 방대한 시퀀스 데이터가 필요 없게끔 만드는 기술인 것 같아요 

이런 개념이 딥러닝과 가깝다고 기재한 카카오브레인팀이 대단해 보였습니다 

 

덕분에 저도 딥러닝에 대해서 좀더 다른 시각을 바라볼 수 있는 눈이 생긴 것 같아서 기뻤습니다 

제 프로젝트에 이런 아이디어를 적용 할순 없는지 , 그리고 새로운 아이디어는 있는지 탐색을 하고 싶은 욕구가 오릅니다! 

 

스태킹 기법은 말로만 들었지 실제로 실습해본 건 오늘이 처음이었습니다

예측한 데이터를 기반으로 다시 예측하는 과정이 흥미로웠습니다:) 그런데 서적에서는 실제 현실에서는 잘 사용되지 않는다는 말에 좀 아쉬웠습니다 ㅠ 예측을 다시 예측한다는 개념이 현실에서는 잘 맞아떨어지지 않은가 봅니다 

 

그리고 문뜩 생각이 드는 게, 

예측을 100%로 끌어올리는 미지의 숫자가 있진 않을까 라는.. 

 

몇십 년 후 사람을 뛰어넘는 인공지능이 나왔을 때 

그 인공지능은 그 숫자를 찾아 내진 않을까 상상해봤습니다 

 

회귀에서 잡음은 어쩔 수 없는 현상이라고 배웠는데 이 잡음을 찾아내야 한다면 뭘 고려해야 할까 

평소에도 상상을 많이 하는 편이라서 공부하다가 나도 모르게 그쪽으로 빠집니다

 

아인슈타인? 잘 생각이 안 나지만 어느 수학자가 말하길 모든 현상은 수학적으로 표현 가능하다고 합니다

그러면 주식 예측이나 잡음처럼 예측하기 어려운 분야에 딱 들어맞는, 사회적 현상을 모두 고려한 최적의 숫자를 찾아낸다면 인공지능 개발자가 더이상 필요 없게 되진 않을까 합니다

 

공부 기록을 해야 하는데 적다 보면 맨날 생각의 흐름대로 흘러 가네요  

다음번엔 좀 더 공부 기록 다운 기록을 적어보도록 노력해 보겠습니다

 

오늘 실습한 내용은 매일 포스팅 작업 중입니다 ~ 이번주 안으로 완성해서 이 블로그 글에 url 남기겠습니다

728x90
728x90

택시 수요예측 시각화를 끝냈습니다 다만 에러가 한 가지 발생했는데

이 에러는 강사와 똑같은 코드인데도 불구하고 발생한 에러 현상입니다 도저히 이유를 알 수가 없었습니다 

plt.figure(figsize=(16,6))
sns.boxplot(x='hour', y='cnt', data=base_df3)

참고로 base_df3은 아래와 같습니다

제 생각엔 y축 cnt 맨 하단에 박스가 있는걸로 봤을 때 

전체를 대상으로 계산된 박스가 아니라 특정 몇개만을 가지고 박스가 계산된 걸로 생각됩니다

 

일단 이 문제를 뒤로하고 모델을 어떤걸 써야 할지 고민하다가 파이썬 머신러닝 완벽 가이드 책을 보면서 앙상블 기법을 공부했습니다 평소에 XGBoost, LightGBM에 관심이 있었던 터라(캐글에서 유명한 모델이라는 소문을 들었습니다) 실습도 진행해 가면서 살펴봤습니다 실습한 코드는 내일쯤에 업로드할 예정입니다 

 

그 외에도 스태킹과 딥러닝의 RNN 등 여러 모델을 공부해서 견문 좀 넓히려고 합니다:)

머리에 인풋이 있어야 활용을 할 수 있으니까요 

 

아마 다음주도 모델 공부를 계~속 할 것 같아요 

이번 프로젝트 기회로 여러가지를 경험할 수 있어서 좋은 것 같습니다

 

CNN이나 토픽 모델링을 했을 때와는 다르게 이번에는 시간을 좀 넉넉하게 하려고 합니다 

목표는 다음 주까지 완성하는 건데, 시간에 쫓겨서 대충 만들기는 싫으므로 완성도 있게 만들도록 노력해보겠습니다

 

실습 코드보기↓

ghdrldud329.tistory.com/12

728x90
728x90

어제에 이어서 시각화를 진행했습니다~

크게 막히는 것은 없었지만 생각을 많이 해야 했던 부분이 있었습니다

 

바로 데이터의 의미를 파악하는 것이죠 

시각화를 해도 무슨말인지 어떤 의미를 가지는지 모른다면 말짱 도루묵 이니까요

 

그래서 제 나름대로 좀 생각정리하는데 시간이 좀 걸렸죠

한 가지 특이한 점이

택시 운행 거리가 증가를 하는데 비용이 그만큼 들지 않았다는 겁니다

 

장거리 운행을 하게 되면 당연히 비용이 많이 오를 텐데... 그 반대 현상이 일어났죠

상관관계도 0.07을 보였습니다 

 

상당히 의아했고 좀 충격이었어요 이게 무슨 일인가 싶어서 뉴욕 택시 요금이나 구글링을 해봤는데 

확실한 근거는 못 찾았답니다 

 

새로운 발견을 한 것 같아서 재미있었고 흥미로웠습니다 빨리 데이터를 능숙히 다뤄서 재미있게 회사에 다니고 싶어요:)

오늘은 zip_code 위주로 시각화를 했고 내일까지는 시간대 별 시각화로 마무리 지을 예정이에요

 

그 이후로는 모델링을 어떻게 해볼 건지 공부하고 고민해볼 생각입니다 카카오 브레인의 택시 수요예측을 신기하게 다뤘더라고요 보고서를 다시 읽어 보면서 제가 비슷하게나마 적용할 수 있을지 시도해볼 겁니다:)  (만일 성공한다면 상당히 짜릿할 것 같다는 생각에 설레네요)

728x90

'Data Diary' 카테고리의 다른 글

2021-01-25 공부기록(택시수요예측)  (0) 2021.01.25
2021-01-22 공부기록(택시수요예측)  (0) 2021.01.22
2021-01-20 공부기록(택시수요예측)  (0) 2021.01.20
2021-01-19 공부기록  (0) 2021.01.19
2021-01-16 공부기록  (0) 2021.01.16
728x90

오늘은 뉴욕 택시 수요예측 프로젝트를 시작한 첫날입니다. 

실습할 때는 1시간 단위로 잘라서 했습니다. 함수가 hour 단위가 있기 때문에 편하게 했는데 

 

30분 단위로 짜르려고하니까 식은땀이 났습니다. 크게 어렵지 않을 거라고 직감했던 부분에서 크게 뒤통수를 맞은 기분이었습니다. 구글링을 열심히 해봤지만 빅쿼리의 30분 단위로 자르는 예시가 없었지만 문법은 비슷하기 때문에 

 

적용해보려고 노력했지만

이해를 못했습니다 

sql 고수가 달아놓은 답변인 듯 질문자의 질문 내용조차 잘 이해가 되질 않았죠 :~|

 

그렇게 구글링만 2시간이 넘은 시점에서 

이러다가 하루종일 삽질만 할 것 같은 느낌이 들어서 

일단 부딪혀 보는 작전으로 생각을 바꿨습니다 

 

(바보 query)

위 코드가 어찌 저찌 해서 만든 첫 쿼리였습니다. 희망을 품고 실행을 눌렀습니다

10..20분..이 지나도 결과가 출력되지 않았습니다. 메모리를 거의 80~90까지 넘어갔습니다

 

컴퓨터가 바보라서 그런가, 새로 사야 하나 라는 생각을 했습니다  

그러다가 갑자기 화면이 블랙아웃이 되었습니다 

 

사실 작년 11월달쯤 실습을 하는 중에 컴퓨터가 지금처럼 블랙아웃이 된 적이 있었습니다

7만 원을 주고 센터에서 재부팅 수리를 받았고 기존에 쌓아뒀던 제 데이터들은 깔끔하게 사라졌었습니다 :)

 

그 공포가 다시 되살아난 저는 간신히 제 상태로 돌아와 준 컴퓨터에게 실행을 중단하고 백업 작업을 급하게 시작했습니다 그리고 코랩으로 작업장을 옮겼습니다 코랩도 출력이 되질 않았죠

 

이때 번뜩이는 생각이 났습니다. 바보는 컴퓨터가 아니라 나라면?

제 쿼리를 유심히 봤습니다 

네.. sql를 쪼금이라도 공부하신 분이라면 아주 기초적인 문제를 틀린걸 위 코드를 보며 단번에 아실 테죠

 

원인은 passenger_count, trip_distance, total_amount를 sum도 안 하고 groupby에 넣은 게 문제였습니다 

창피한 관계로 여기서 skip 하겠습니다.. 

 

그리고 30분으로 나누는 코드를 datetime으로 만들고 싶어서 여차저차 수정을 했습니다

(조금은 떳떳한 query)

 30분 단위는 concat을 이용해서 2021-01-20 20:30 형식으로 수정했습니다

이걸 to_datetime으로 타입을 변경해주면 제가 원하는 형식으로 만들 수 있었습니다 :))

 

그리고 기초적인 실수를 저질렀던 부분에는 위 그림처럼 수정해주었습니다

 

아침부터 여기까지 오는데 6~7시간이 걸렸답니다 ㅎㅎㅎㅎㅎㅎㅎㅎ

하지만 덕분에 여러 가지 함수를 볼 수 있었고 

무엇보다 스스로 해냈다는 것에 큰 뿌듯함을 느낍니다 

 

그리고 좀 전까지는 지역별 시각화를 하고 있었는데 

제 생각보다 재밌었습니다 

나의 의도를 시각화로 표현하는 작업이 참으로 흥미롭네요

 

갈길이 멀지만 설레는 마음으로 오늘은 이만 자러 가보겠습니다 

감사합니다  

 

 

728x90

'Data Diary' 카테고리의 다른 글

2021-01-22 공부기록(택시수요예측)  (0) 2021.01.22
2021-01-21 공부기록(택시수요예측)  (0) 2021.01.21
2021-01-19 공부기록  (0) 2021.01.19
2021-01-16 공부기록  (0) 2021.01.16
2021-01-15 공부기록  (0) 2021.01.15

+ Recent posts