목록공부 (172)
꿈 많은 사람의 이야기
포스팅 개요 이번 포스팅은 제가 참여하고 활동하고 있는 글또 모임에 대한 회고를 하는 글입니다. 어느새 4기부터 5기까지 1년이라는 시간을 보냈습니다. 이 1년이라는 시간동안 글또를 하면서 어떤 점을 느꼈는지에 대한 내용과 5기에 대한 회고를 작성하고자 합니다. 지난 회고 글에서는 다짐글을 작성할 때와 글또가 끝났을 때의 비교를 했다면, 이번에는 좀 다른 방식으로 회고를 하고자 합니다. 글또를 하면서 느껴진 변화와 최근 블로그에 대한 생각을 위주로 작성하려고 합니다. 4기 시작 글 : lsjsj92.tistory.com/576 4기 회고 글 : lsjsj92.tistory.com/595 5기 시작 글 : lsjsj92.tistory.com/603 글 쓰는 개발자, 글또 5기를 참여하며 - 글 쓰는 또라이..
파이썬 알고리즘 기본을 계속 하고 있다. 지난 번에 공부 했던 힙 정렬, 삽입 정렬, 선택 정렬, 버블 정렬 등도 계속 복습도 해야하는데.. 주말에 해야하는데 참 쉽지 않다. 아무튼 이번 포스팅은 정말 기본적인 알고리즘이다. 숫자 뒤집는 방법(거꾸로 출력하는 방법), 소수 값 출력하는 방법과 배수 출력하는 방법이다. 너무 간단한다 먼저 배수이다 만약 3의 배수를 구하고 싶으면 어떤 값을 3으로 나누었을 때 0으로 떨어지면 그 값은 3의 배수이다 3과 5의 배수를 동시에 구하고 싶으면 n % 3 == 0 and n % 5 == 0 의 조건이 성립되면 된다 이 조건을 가지고 코드를 작성하면 된다. 아래와 같다. 숫자를 거꾸로 출력하는 방법(혹은 문자열을 거꾸로 출력)은 reverse 방법을 이용하는 방법이나..
이번 포스팅은 파이썬으로 자료구조, 알고리즘 공부하기 쉘 정렬(shell sort)과 버블 정렬(bubble sort)에 대해서 정리합니다. 여러가지 정렬 알고리즘이 있습니다. 지난 포스팅에선 삽입 정렬, 선택 정렬에 대해서 보았는데요 기본적인 정렬 중 버블 정렬이라는 것이 있습니다! 버블 정렬은 말 그대로 거품처럼 뽀글뽀글 올라가며 정렬을 하는데요 예시를 들면 이렇게 진행됩니다. 처음부터 하나씩 비교를 하면서 큰 것을 뒤쪽으로 몰아넣죠. 그리고 fix 시킵니다. 그리고 그 다음 루틴에서 또 돌고.. 이렇게 진행합니다. 바로 파이썬 코드로 봅시다 핵심은 def bubble_sort입니다. 정렬되지 않은 list를 입력 받습니다. 2개의 for문을 돌면서 진행합니다. 맨 처음 for문은 len - 1 범위..
파이썬으로 알고리즘, 자료구조 공부하기! 이번에는 삽입 정렬, 선택 정렬이다 정렬 알고리즘에서 많이 나오는 것들이 버블 정렬, 삽입 정렬, 선택 정렬 등이 있는데 당분간 이 정렬에 대해서 공부하고 정리하려고 한다! 먼저 선택 정렬(selection sort)이다 선택 정렬은 위 그림을 보면 이해가 편하다 매 step으로 나뉘어 진행하는데 첫 번째에 스탭을 돌면 가장 작은 값이 맨 처음으로 온다. 그리고 첫 번째 값을 fixed 시켜놓고 2번째 값 부터 시작하고 또 다시 비교한다. 그렇기 때문에 비교는 N * (N-1)만큼 비교를 하게 된다. 하지만 교환 횟수는 N - 1 정도이다 파이썬으로 코드를 구현해보자 이렇게 간단한 하나의 함수로 만들 수 있다. 2개의 for문을 돈다. N * (N -1)이므로 그..
최근 다시 한 번 알고리즘, 자료구조를 공부하고 싶었다 솔직히 알고리즘까지는 아니더라도 자료구조라도 공부를 하고 싶었다 그래서 파이썬으로 코드를 작성하며 공부를 해보려고 한다 이번 편은 파이썬으로 해보는 자료구조 연결 리스트(linked list)이다 연결리스트는 어찌보면 배열과 비슷하지만 구조적으로 다르다 배열은 같은 성질끼리(요즘엔 언어에 따라서 다른 성질도 묶어도 되지만) 연속적으로 되어 있는 상태이다 연결 리스트(linked list)는 구조상으로 봤을 때 계속 링크를 따라서 이어지는 구조이다 이런식으로 말이다 하나의 노드에 데이터와 다음 노드를 가리키는 next point가 있다 이런 식으로 쭉 이어나가고 중간에 삽입, 삭제도 가능하도록 코드를 구성해보겠다 파이썬으로! python data st..
이번에도 딥러닝으로 자연어 처리 하는 파트 입니다. deep learning Natural Language Processing(NLP) kaggle에서 spooky-author 데이터가 있는데요. 글이 있으면 저자가 누군지 예측하는 그런 데이터입니다!아마 캐글 자연어 처리 대회중 toxic, quora 이후 유명한 데이터가 아닌가 싶습니다시작하죠! 역시 필요한 라이브러리를 먼저 불러옵니다keras를 사용해서 딥러닝 모델을 구축하기에 keras library를 불러옵니다그리고 사이킷런(scikit-learn)의 LabelEncoder도 사용합니다카테고리 데이터를 라벨화 시켜주기 위해서요! 간단하게 EDA를 먼저 진행합니다.카테고리 value_counts() 값은 거의 비슷합니다완전 unbalanced하지는..
텐서플로 책을 보다가 햇갈려서 정리하는 부분이다바로 concat인데이해를 했다가도 햇갈리고 그런다특히 axis 부분..axis = 0이냐axis = 1이냐axis = -1이냐3차원이면 axis = 2까지..tf.concat을 정리하면서 다시 정리한다 https://www.tensorflow.org/api_docs/python/tf/concat참고 tensorflow를 import하고 t1, t2가 저렇게 있다고 가정하자 모양은 (2, 3)이 된다즉, 바깥쪽에 2개가 있고 안쪽에 3개씩 있는 2차원 매트릭스이다. 이제 이것을 concat할 것이다 tf.concat([t1, t2], axis = 0)을 하게 되면 결과는 아래와 같이[[1,2,3], [4,5,6], [7,8,9], [10,11,12]로 나온다..
이전에 캐글(kaggle) nlp인 toxic 데이터를 가지고 필사를 했습니다https://lsjsj92.tistory.com/448 이번에도 마찬가지로 toxic 데이터를 가지고 캐글 커널을 필사합니다.기존에 했던 것과 같습니다. 하지만 어텐션 메커니즘이 추가된 코드이고 glove 데이터를 이용해서 모델 weight를 제공해줍니다.특히 glove 데이터를 추가해서 word embedding을 하는 방법은 정말 많이 사용해서 이번 기회에 정리하고자 합니다. 언제나 그렇듯이 필요한 라이브러리르 불러옵니다keras를 사용했고 모델과 전처리에 필요한 Tokenizer 및 LSTM, Embedding, Dropout 등을 가지고 옵니다그리고 이번 모델에서는 Attention을 class로 만들어서 사용하기 때문..
어제 텐서플로와 머신러닝으로 시작하는 자연어 처리 책을 보면서 sequence-to-sequence 모델을 공부했습니다.챗봇을 만들 때 사용하던 모델이었는데 과연 케라스(keras)에서는 어떻게 사용되는지 궁금해서 공부를 했고지금 정리를 하려고 합니다. 이 자료는 케라스 코리아 운영자이신 김태영님의 블로그를 많이 참고했습니다!https://tykimos.github.io/2018/09/14/ten-minute_introduction_to_sequence-to-sequence_learning_in_Keras/ 기계번역(NMT, Neural Machine Translation)에서 많이 쓰이는 seq2seq 모델은 작성된 소스 문장들(source sentences)을 인코더(Encoder)를 이용해서 생각 ..
이번 커널 필사편은 7주차 이후로 또 다시 자연어 처리 편입니다이 커널은 toxic 이라는 데이터로 알려져 있는데요. 캐글에서 자연어 처리(nlp) 데이터 셋으로 많이 유명합니다.일종의 분류 문제입니다. 하지만 label이 1개가 아닌 6개를 가진 특이한 데이터 구조입니다 처음 캐글을 시작할 때 타이타닉 다음으로 이 데이터 셋으로 했었는데..당시에는 아무것도 모를 때라 그냥 너무 어렵다.. 하고 포기했었는데요처음 봤을 때보다 지금이 7개월 정도 흘렀는데 이젠 좀 눈에 보이네요 ㅎㅎ 필사를 하면서 이해가 되더군요제가 그 만큼 공부를 했다는 거겠죠 ㅎㅎ 바로 진행합니다 역시 처음에 필요한 라이브러리를 가져와줍니다keras, matplotlib, seaborn, pandas, numpy 등을 가져와줍니다lay..