Python visualization package 중에 Cartopy라는 게 있다. 흔히 데이터를 출력하는데 있어 지리 정보를 포함하는 경우, 이를 실제 map에다가 투영시킬 때 이 package를 사용한다. Anaconda repo에서도 이를 배포하고 설치해야 import시킬 수 있다. 설치 방법은 간단하다.1conda install -c conda-forge cartopycs 다음 spyder에서 사용하면 된다. 아마 메인으로 쓰는 건 coordinate reference system (crs)와 coordinate feature(cfeature) 일 것이다. 내가 듣고 있는 강의에서는 3마리 새의 이동 경로를 그려보고 실제 지도상으로 투영시키는 작업을 했다. 그래서 그 과정을 취하면 이런 결과를 ..
이전 포스트에서 거리를 구하는 함수와 다수결 값을 구하는 함수를 정의했었고, 이번 포스트에서는 kNN 의 핵심인 가까운 이웃을 찾는 함수를 구현해보고자 한다. 우선 kNN의 처리 과정을 단계별로 써보면1. 전체 데이터 집단을 살펴보고, 2. 그중 한점과 다른 점간의 거리들을 구한 후 3. 그 거리를 나열해 기준에 적합한 점들을 반환해주면된다. 이게 kNN이 동작하는 원리다. 예를 들어 이런 케이스를 살펴보자위와 같이 빨간색 점들이 있는데 파란 점이 왔을때 어떤 빨간점이 파란점과 가깝다고 표현할 수 있을까? 당연히 딱 보기에도 (2, 2)에 있는 점과 (3, 2)에 있는 점이 파란 점에 가깝다고 할 수 있다. 이게 가깝다고 정의한것은 당연하다. 두 점 사이의 거리를 구해 그게 가장 짧은 거리를 찾은 것이다..
머신러닝의 수많은 주제 중 아마 제일 잘 다뤄지는 주제가 바로 Classification이 아닐까 생각된다. 물론 어떤 값을 예측한다던가, 어떤 일이 발생할 확률 같이 명확한 수치가 나오는 건 아니지만, 과거의 Data를 통해서 미지의 입력값이 어떤 종류로 분류하는 것 자체도 머신러닝에서 다뤄질 수 있는 주제가 아닐까 생각한다. 물론 이런 Classification 문제를 해결하는 여러 알고리즘들이 있겠지만 이번 포스트를 통해서 다루고자 하는 주제는 흔히 k-NN이라고 불리는 k-Nearest Neighborhood Algorithm 이다. 이름이 사실 거창해서 그렇지 두 점사이의 거리를 구하는 공식(보통 Euclidean Distance라고 표현한다.)만 알고 있으면 그 원리가 명확하게 설명되는 알고리..
내가 처음 edX를 통해 강의를 듣기 시작한 것은 2013년 겨울이었다. 한창 대학원에서 공부할 때 였었는데, 그때는 내가 전공 지식을 너무 못 따라가는 것 같다는 걱정이 들어서 시작했었다. 그때 처음 들었던 강의가 Computer Graphics와 Introduction to Computer Science and Programming이란 수업인데, 어떻게 보면 이 과목을 통해서 처음 python을 접하고, 지금까지 계속 접할 수 있었던 계기가 아닐까 싶다. 그때 당시에는 학교 어디에서도 python을 가르쳐 주는 강좌도 없었는데, 이렇게 인터넷만 접속할 수 있으면 python을 통해서 프로그래밍도 해보면서 과제도 해 볼수 있으니, 나한테는 좋은 기회였던 것 같다. 아무튼 처음 edX가 구축되면서 몇가지..
numpy package에는 random이라는 module이 있다.여기에 있는 random 함수를 쓰면 0에서 1 사이의 수를 반환해준다.123import numpy as np numpy.random.random()cs만약 여러개의 값을 한꺼번에 반환받고 싶으면, random 함수의 인자로 자기가 받고 싶은 자료의 크기를 넣어주면 된다. 예를 들어 1x5의 random 함수의 결과를 받고 싶으면 1numpy.random.random(5)cs를 해주면 되고, 만약 2행 2열의 행렬의 형태로 받고 싶으면1numpy.random.random((2,2))cs위와 같이 tuple의 형식으로 집어넣으면 된다. 물론 이에 대한 반환값의 자료는 numpy의 array 형태로 나온다. 물론 위의 형태는 단순한 rando..
( 이 포스트는 Udemy에서 진행되는 DeepLearning A-Z 강의를 요약, 정리한 내용입니다.) 지난 포스트까지 ANN을 구현해보고 실제로 84% 가량의 결과를 얻은 것을 확인했다. 그런데 실제로 해본 사람이라면 알겠지만, 할때마다 결과가 달라지는 것을 알 수 있을 것이다. 나같은 경우에도 처음 할때는 86% 정도의 Accuracy를 얻을 수 있었지만, 하면 할수록 낮아지는 것을 확인할 수 있었다. 그럼 내가 얻은 결과가 과연 신뢰할 수 있을만한 결과일까? 혹은 우연치않게 맞은 결과일까? 결국 확인해보는 수밖에 없다. 먼저 살펴보기에 앞서 왜 이럴 수 밖에 없는지를 보고자 한다. 우리가 처음 Dataset을 생성할 때, 학습을 시킬 Training Set과 검증을 할 Test Set으로 구분했다..
한번 이 글을 읽는 사람이라면 물어보고 싶은 내용이 한가지 있다. 과연 여러분은 자료구조와 알고리즘을 어떻게 배웠을까? 아마 컴퓨터 관련 전공을 가진 사람이라면 위의 책 중 하나는 읽지 않았을까 싶다. 특히 Cormen 책은 거의 알고리즘 계의 바이블 수준일 정도로 많이 읽을거라고 생각한다.(물론 아닐수도 있고, 내가 모르는 알고리즘 책이 또 있을 수 있다.) 참고로 나는 맨 밑의 책(Horowitz 책)으로 공부했었는데, 과도 컴퓨터과도 아니고, 그렇게 심도있게 배웠다는 생각이 없다. 물론 C에 대해서 잘 알기 전에 이 책으로 자료구조부터 배워서 그런지, 이 책을 처음 접할때는 뭔가 읽기도 난해했고, 재미없었던 기억이 난다. 그래도 알고리즘의 기초부터 구현까지 단계별로 설명한 좋은 책이었다고 생각한다...
- Total
- Today
- Yesterday
- Kinect SDK
- Kinect
- 강화학습
- processing
- 파이썬
- arduino
- PowerPoint
- RL
- Offline RL
- 딥러닝
- ColorStream
- DepthStream
- Expression Blend 4
- dynamic programming
- Distribution
- End-To-End
- windows 8
- SketchFlow
- Variance
- TensorFlow Lite
- Kinect for windows
- Off-policy
- Pipeline
- Python
- Policy Gradient
- bias
- Windows Phone 7
- Gan
- 한빛미디어
- reward
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |