목록데이터 사이언스 (13)
꿈 많은 사람의 이야기
포스팅 개요 이번 포스팅은 추천 시스템 평가(Evaluation Metrics for recommender system)에 대해서 지극히 '개인적인' 생각을 정리한 포스팅입니다. '추천 시스템 평가는 어떻게 하면 좋을까?' 이 부분을 추천 시스템 프로젝트를 하면서 그리고 추천 시스템 스터디를 진행하면서 정말 많이 생각했었습니다. 그래서 제가 리딩을 했던 추천 시스템 스터디 마지막 날에 이 주제를 가지고 제가 발표를 했었고 그 내용을 이번 포스팅에 정리해보고자 합니다. 참고한 자료는 아래와 같습니다. towardsdatascience.com/an-exhaustive-list-of-methods-to-evaluate-recommender-systems-a70c05e121de medium.com/@cfpine..
포스팅 개요 이번 포스팅은 2020년 02월 말. 글또 4기를 시작하고, 2020년 08월 글또 4기를 활동을 마무리 지으며 작성하는 회고 글입니다. 2020.02.27 글또 4기 참여하는 다짐글을 작성한 이후에 제가 어떤 글을 작성했는지, 그 목표는 이루었는지, 반성사항은 무엇인지, 앞으로 어떤 글을 작성하고 싶은지를 정리합니다. 저의 글또 4기 다짐글은 아래와 같습니다. https://lsjsj92.tistory.com/576 글 쓰는 또라이가 세상을 바꾼다 - 글또 4기를 참여하며 포스팅 개요 이번 포스팅은 글또 4기를 참여하며 어떤 목적으로 글또를 참여하게 되었고 어떻게 활동할 것인지에 대한 다짐글입니다. 글또란 무엇인지, 제가 어떠한 다짐을 가지고 참여를 신청� lsjsj92.tistory.co..
이번에도 딥러닝으로 자연어 처리 하는 파트 입니다. deep learning Natural Language Processing(NLP) kaggle에서 spooky-author 데이터가 있는데요. 글이 있으면 저자가 누군지 예측하는 그런 데이터입니다!아마 캐글 자연어 처리 대회중 toxic, quora 이후 유명한 데이터가 아닌가 싶습니다시작하죠! 역시 필요한 라이브러리를 먼저 불러옵니다keras를 사용해서 딥러닝 모델을 구축하기에 keras library를 불러옵니다그리고 사이킷런(scikit-learn)의 LabelEncoder도 사용합니다카테고리 데이터를 라벨화 시켜주기 위해서요! 간단하게 EDA를 먼저 진행합니다.카테고리 value_counts() 값은 거의 비슷합니다완전 unbalanced하지는..
이전에 캐글(kaggle) nlp인 toxic 데이터를 가지고 필사를 했습니다https://lsjsj92.tistory.com/448 이번에도 마찬가지로 toxic 데이터를 가지고 캐글 커널을 필사합니다.기존에 했던 것과 같습니다. 하지만 어텐션 메커니즘이 추가된 코드이고 glove 데이터를 이용해서 모델 weight를 제공해줍니다.특히 glove 데이터를 추가해서 word embedding을 하는 방법은 정말 많이 사용해서 이번 기회에 정리하고자 합니다. 언제나 그렇듯이 필요한 라이브러리르 불러옵니다keras를 사용했고 모델과 전처리에 필요한 Tokenizer 및 LSTM, Embedding, Dropout 등을 가지고 옵니다그리고 이번 모델에서는 Attention을 class로 만들어서 사용하기 때문..
최근에 텐서플로우로 배우는 자연어 처리 책을 보고 있습니다 평소에는 케라스(keras)만 위주로 써서 이 책의 내용의 코드와 잘 맞지 않는 부분이 있는데요이 책도 텐서플로우 안에 있는 keras 모듈을 사용하기는 합니다.tf.keras.layer 등을 사용하고 때에 따라서 tf.nn.rnn 등을 사용하기도 합니다. 하지만 완전 순수 keras 라이브러리와는 좀 사용법이 다르네요그 중 하나가 저는 model summary 부분이 정말 궁금했습니다. 케라스에서는 그냥 model.summary()를 하면 모델 요약이 나왔었는데요!tf.keras를 사용하다보니까 사용 방법이 좀 달랐습니다 model을 요약(summary)해서 shape 등의 정보를 볼 수 있는 방법을 소개합니다(tensorflow model s..
이번 캐글 필사 편은 지난 필사 편(https://lsjsj92.tistory.com/435)에 이은 home credit의 두 번째 필사입니다. 이번에는 다른 커널을 진행해봅니다.지난 커널에서는 EDA를 위주로 봤는데요이번에는 실제 모델을 만들고 제출을 해봅니다.그리고 application_train.csv의 기본 파일 외에 bureau라는 data를 가지고 고객이 이 회사에서 대출하기 전에 다른 금융 기관에서 대출했던 내역을 참고해서 모델을 만들어 봅니다. 필사한 커널은 사진 위에 나와있습니다.마찬가지로 기본적인 numpy, pandas, matplotlib, seaborn을 import합니다.그리고 application_train, test.csv를 가져오지 않고 bureau.csv를 가져옵니다.이..
안녕하세요! 이 글을 쓰는 현재 설 연휴가 시작되었네요모두들 새해 복 많이 받으세요!올 한해 건강하시고 하는 일 다 잘 되시길 바랍니다! 어느덧 새벽 5시 캐글 필사 5주차입니다.벌써 5주차네요이제 3번째 주제로 넘어갔습니다.처음은 타이타닉, 두 번째는 porto 데이터였습니다.이제는 home credit 대회를 기준으로 진행해보려고 합니다.근데 여기까지 하면서 느낀점이 있다면 캐글 필사를 하면서 진짜 하나를 제대로 해야겠다는 느낌이 드네요계속 주제는 넘어가지만 porto 데이터와 타이타닉 데이터는 계속 중간중간 복습을 하고 있습니다.안그러면 계속 까먹네요 ㅠ 아무튼 시작하겠습니다. 이 데이터 셋의 배경은 위 설명과 같습니다.신용기록이 없는 사람들에게도 대출이 가능하도록 이 사람이 상환 능력이 되는가? ..
최근에 캐글을 하면서 가장 많이 헷갈렸던 부분이바로 StratifiedKFold와 pandas에서 axis=0, 1의 대한 개념이었다. 아무것도 모르는 상태도 아니었고 개념적으로는 알고 있었는데막상 코드를 필사하면서 보니까 정말 헷갈렸었다그래서 정리를 간단하게 해보려고 한다. 먼저 간단하게 데이터셋을 만들어본다.pd.DataFrame을 통해서 만든다 자, 처음으로는 StratifiedKFold를 해본다.from sklearn.model_selection import StratifiedKFold를 통해 라이브러리를 가져온다.사용법은 정말 간단하다. StratifiedKFold를 선언하고 splits 개수와 shuffle 여부, random_state 등을 설정해준다.그리고 저 상태에서 바로 .split(x..
https://lsjsj92.tistory.com/429지난 3주차 포스팅 글입니다. 3주차에 이은 4주차입니다. (말이 n주차지.. 글이 밀려서 한 번에 올리네욯ㅎㅎㅎㅎ). 4주차에서도 저는 porto 데이터 셋을 가지고 다른 커널을 필사했습니다. 솔직히 타이타닉 다음으로 porto를 하는데 있어 너무 어려웠습니다. 그래서 이 데이터는 몇 번 더 해봐야겠네요 ㅠ 지난 커널에서는 모르는 내용이 너무 많았습니다. 왜 데이터를 그렇게 복잡하게 조합하고 그러는지 이해도 안되고요. 하지만 이 커널은 정말 명확하더라구요! 시작하겠습니다. 맨 위에 커널 주소가 나와있습니다. 저 주소로 진행했습니다.먼저 필요한 라이브러리를 import 합니다. Numpy, pandas는 기본이고, sklearn에서 model_sel..
안녕하세요.새벽 5시 캐글 필사하기 3주차입니다.사실 캐글 필사는 계속 하고 있는데 블로그에 올리기가 너무 힘드네요요즘 바빠서 퇴근 시간이 늦다 보니(집오면 10시 ㅠ) 블로그에 올릴 시간이 없네요 ㅠ 3주차 주제는 porto 데이터 셋으로 진행합니다. 안전하게 운전을 하는 운전자를 예측하는 데이터입니다.데이터는 https://www.kaggle.com/c/porto-seguro-safe-driver-prediction 에 있습니다. 이번 주제도 1, 2주차에 걸쳐서 진행합니다. 1주차는 먼저 머신러닝 탐구생활이라는 책의 EDA 과정을 볼 것이고, 좀 이해하기 힘든 커널을 1개 필사했습니다.(아직도 이해가 안갑니다…) 시작해봅니다! 머신러닝 탐구생활 책을 기준으로 진행합니다. 역시 데이터부터 살펴보기 위..