본문 바로가기

분류 전체보기194

ROC Curve를 해석하는 방법 머신 러닝에 대한 본격적인 공부를 시작한지 꽤 오랜 시간이 되어가고 있다. 하지만 그 동안 수 없이 접했던 평가에 대한 방법론은 언제나 어렴풋이 이해하는 정도였다. 특히나 ROC curve가 그랬다. 데이터 마이닝이나 통계학 전공자가 아닌 나로서는 이 방법론에 대한 수식적 이해도 전무했으며, 인터넷 어디에서도 속을 시원하게 긁어주는 설명을 찾기 힘들었다. 단지 원인과 결과만을 나열한 문서들 뿐이었다. 언젠가 해법을 찾아야지 하고 미뤄두던 도중, 우연히 제대로 설명된 글을 읽게 되었다. 물론 아직까지도 100% 이해했다고 장담할 순 없지만, 나와 비슷한 사람들을 위해 현재까지 이해한 내용을 정리하고 공유하고자 한다. 분류문제를 학습한 모델을 평가할 때 빠지지 않는 단어가 바로 Confusion Matrix.. 2018. 6. 17.
영화 이야기 : 영화의 탄생 [영화의 역사 이야기 시리즈] [1] 영화의 탄생[2] 볼거리로서의 영화[3] 1차 대전 전후의 할리우드 영화[4] 20년대의 할리우드 영화[5] 30~40년대의 할리우드 영화[6] 2차 대전 전후의 할리우드 영화[7] 독일 표현주의 영화, 소비에트 영화[8] 프랑스의 아방가르드와 시적 리얼리즘[9] 네오 리얼리즘과 뉴 이탈리안 시네마[10] 50년대 이후의 할리우드 영화 영화 탄생은 광학을 이용한 일련의 장난감으로부터 시작되었다. 현실의 요소들을 시각적으로 생생히 기록하고 움직임을 관찰하려는 욕구가 그 주요한 동기였다고 할 수 있다. 사진들이 움직이기 시작하면서 지속시간이 생기고, 점점 더 시간구성이 요구되기 시작한 것이다. 최초의 영화들은 에디슨(Thomas Alva Edison)이 제작한 영화들로,.. 2018. 6. 17.
Google Colaboratory를 활용하여 Keras 개발환경 구축 오랜만에 딥러닝 프레임워크 관련 글을 작성하는 것 같다. 근래에는 분산처리, 파이썬 개발, 추천 시스템 공부에 치중하다 보니 딥러닝을 접할 시간이 부족했었다. 하지만 이제 추천 시스템에도 딥러닝 적용을 해야 하기도 하고, 역시나 개발은 딥러닝 개발이 가장 재미있으므로, 본격적으로 딥러닝 공부를 시작하지 않을까 싶다. 우연한 기회에 Google Colaboratory(이하 Colab)와 Keras를 함께 사용하는 스터디를 했었는데, 오늘은 이에 대한 개발환경 구축 포스팅을 하고자 한다. Colab이 발표된 지 꽤 많은 시간이 지났지만, 아직까지 딥러닝 프레임워크 사용자들에게 많이 각광받는 툴은 아닌 것 같다. Colab은 Jupyter Notebook으로 협업을 진행하게 될 때의 문제점, 협업 진행자들 소.. 2018. 6. 8.
Python으로 logistic regression 학습 구현하기 파이썬으로 basic한 머신러닝 이론들을 구현하는 Implementation 프로젝트중 일부로(github 링크), 본 포스팅에서는 간단한 python 코드를 이용하여 logistic regression을 공부해 보았다. 1. 로지스틱 회귀의 이해와 Hypothesis 로지스틱 회귀모델은 y값이 범주형 변수인 경우(binary)에도 다중선형회귀모델을 적용시키기 위해 고안된 것이다. 만약 회귀식의 결과값이 0, 1로만 도출된다면, 회귀식의 경우 이에 근사하는 직선 혹은 모델을 만들기가 어려워진다. (아래 이미지 참고 - 출처 : ratsgo's blog) 그래서 생각해낸 것은 타겟변수를 확률로 만들자는 것이다. 이 아이디어를 통해 (0, 1)을 0 ≤ Pr⁡(Y=1│X) ≤ 1 로 나타내게 된다. 하지만 .. 2018. 5. 27.
데이터 분석가 인터뷰에 나올법한 용어 정리 github 자료와 메모 자료들을 정리하던 도중, CS 관련 지식들을 정리해놓은 자료들을 발견했다.아주 기초적이고 쉬운 내용들이지만, 복습 겸 블로그에 다시 정리하고자 한다. 이번 블로깅은 데이터 분석가 인터뷰에 나옴직한 용어들을 정리한 것이다. 이전에 정리했던 개발자 인터뷰에 나올만한 IT 용어 정리와 연장선상에 있는 글이다. 이전 포스팅 - 1이전 포스팅 - 2 1. 머신 러닝 VS 데이터마이닝 머신 러닝은 기존 데이터로 모델을 학습시킨 뒤 새로운 데이터를 입력했을 때, 이를 예측 및 분류해주는것. 데이터마이닝은 가지고 있는 데이터에서 특성이나 패턴을 찾아내기 위한 것이다. 더 쉽게 말하면, 머신 러닝은 기계와 프로그래밍적 관점에서의 학습이고, 데이터마이닝은 통계학적 관점에서의 접근이다. 하지만 경계.. 2018. 5. 26.
개발자 인터뷰에 나올법한 용어 정리 - 2 github 자료와 메모 자료들을 정리하던 도중, CS 관련 지식들을 정리해놓은 자료들을 발견했다.아주 기초적이고 쉬운 내용들이지만, 복습 겸 블로그에 다시 정리하고자 한다. 이번 블로깅은 IT 인터뷰에 나옴직한 용어들을 정리한 것이다. 이전에 개발직군 취업을 준비하면서 (물론 현재 하는 일과 직접적인 관련은 없지만) IT 관련 용어들을 정리한 적이 있는데, 그것을 바탕으로 쓴 글이다. 실제로 취업이나 인터뷰에 매우 큰 도움이 되었던 것으로 기억하며, 현재 하는 일에서도 꽤나 자주 접하는 용어들이니 한 번 익혀두면 피와 살이 될 용어들이다. 더 많은 내용들이 있지만, 개인적으로 중요하다고 생각하는 내용들만 정리해보았다. 이전 포스팅 8. 다형성 영어로는 polymerphism. 여러 가지 형태를 가질 수.. 2018. 5. 25.
개발자 인터뷰에 나올법한 용어 정리 - 1 github 자료와 메모 자료들을 정리하던 도중, CS 관련 지식들을 정리해놓은 자료들을 발견했다. 아주 기초적이고 쉬운 내용들이지만, 복습 겸 블로그에 다시 정리하고자 한다. 이번 블로깅은 IT 인터뷰에 나옴직한 용어들을 정리한 것이다. 이전에 개발직군 취업을 준비하면서 (물론 현재 하는 일과 직접적인 관련은 없지만) IT 관련 용어들을 정리한 적이 있는데, 그것을 바탕으로 쓴 글이다. 실제로 취업이나 인터뷰에 매우 큰 도움이 되었던 것으로 기억하며, 현재 하는 일에서도 꽤나 자주 접하는 용어들이니 한 번 익혀두면 피와 살이 될 용어들이다. 더 많은 내용들이 있지만, 개인적으로 중요하다고 생각하는 내용들만 정리해보았다. 1. OS 관점에서의 동기와 비동기 동기적 방식은 무언가의 완료 사인을 받은 뒤, .. 2018. 5. 25.
Python으로 싱글톤 패턴 사용하기 github 자료와 메모 자료들을 정리하던 도중, CS 관련 지식들을 정리해놓은 자료들을 발견했다.아주 기초적이고 쉬운 내용들이지만, 복습 겸 블로그에 다시 정리하고자 한다. 이번 포스팅에서는 파이썬으로 싱글톤 패턴을 사용하는 매우 간단한 방법에 대해 정리하겠다. 싱글톤 패턴이란 프로그래밍 디자인 패턴의 하나로, 가장 간단하면서도 유용한 디자인 패턴이다. 인스턴스를 하나만 생성하여 사용하기 위한 디자인 패턴이 싱글톤 패턴의 정의이다. 실행중인 프로세스(OOP로 구현된)에서 오로지 하나의 인스턴스만을 유지하기 위해 생성자에 접근 제한을 두고, 유일한 단일 객체를 반환하기 위해 정적 메소드를 사용한다. 또한, 유일한 단일객체 역시 정적 참조변수가 필요하다. Java, C++과 같은 대표적인 OOP 언어와 마.. 2018. 5. 24.
CS(Computer Science) - 컴퓨터 네트워크 관련 기초 용어들 github 자료와 메모 자료들을 정리하던 도중, CS 관련 지식들을 정리해놓은 자료들을 발견했다.아주 기초적이고 쉬운 내용들이지만, 복습 겸 블로그에 다시 정리하고자 한다. 이번 포스팅에서는 컴퓨터 네트워크 이론에서 가장 핵심적이고 기초적인 용어들을 설명하겠다. 1. REST API HTTP URI로 잘 표현된 리소스에 대한 행위를 HTTP 메소드를 통해 정의하는 것. 서비스의 리소스에 접근하는 것. 리소스의 내용은 json, xml등의 잘 정의된 자료를 씀. 2. TCP / UDP tcp는 1:1 통신으로, 서로의 연결을 3-way handshake로 확인함. 리액션에 따라 데이터를 재전송해준다. 반면 UDP 는 1:N 통신으로, 서로의 연결을 확인하지 않고 통신이 가능하다. 확인하지 않으므로 못받은.. 2018. 5. 23.
파이썬 언어에 대한 참고사항들 github 자료와 메모 자료들을 정리하던 도중, CS 관련 지식들을 정리해놓은 자료들을 발견했다.아주 기초적이고 쉬운 내용들이지만, 복습 겸 블로그에 다시 정리하고자 한다. 이 중 파이썬 언어와 관련된 참고사항들을 정리할 것이다. 1. 파이썬의 네이밍 원칙 어느 언어들이 그렇듯이, 파이썬 역시 네이밍 원칙 즉 code convention이 존재한다. 간략한 내용은 다음과 같다. - 하나의 알파벳으로 변수의 이름을 지어서는 안된다. - 모듈 : 모듈 이름은 짧아야 하고, 소문자여야만 한다. 문장이 길어지는 경우 가독성을 위한 언더스코어 사용은 허용된다. - 패키지 : 무조건 소문자여야 한다. - 클래스 이름 : CapWords 형식을 따른다. 첫글자는 대문자로 한다. - exception : 클래스와 동.. 2018. 5. 23.