2015년 8월 29일 토요일

대상을 새로운 차원으로 사상 시키는 SVM 비선형 분류 기법

1편 "대상을 바라보는 시선과 정량적 대상 비교"에서 우리의 시선과 다른 차원을 받아들이는 연습이 되었다면, 차원을 응용하는 다음 예제를 보자. 참고 : https://ko.wikipedia.org/wiki/서포트_벡터_머신 1. 2차원의 purple/green으로 분류된 학습 데이터를 SVM 비선형 분류 기법을 통해 학습 모델을 만든다. * 커널(Kernel)은 RBF 방사형 함수를 사용하고, 새로운 차원으로 사상될 값의 크기를 시각적으로 표현하기 위해 확률값을 출력하도록...

대상을 바라보는 시선과 정량적 대상 비교

필자는 인상주의 작품을 좋아한다. 사물을 바라 보는 작가의 생각이 담겨 있기 때문이다. 작가의 인생 스토리와 연결고리를 찾았을 때는 작품이 주는 감성은 배로 다가온다. 최근 들어 자주 언급되던 프리다 칼로의 작품은 마음이 너무 무거워서 오랫동안 보지도 못한다. 피카소의 2D의 캔버스에 그려진 3D의 표현은 사물의 숨겨진 차원(Dimension)을 표현했다는 점에서 놀라운 작품으로 본다. 약간 오버하자면, 피카소 이전에 고흐의 작품에서도 시각을 벗어난 감정이라는 차원을 작품에 녹여냈다는...

"돈의 비밀" 영상에 대한 사견

"돈의 비밀"에 대한 영상을 감명있게 보고, 사견을 달아 봅니다. https://www.youtube.com/watch?v=1_0li7LByTM * 진정한 부는 시간과 자유이다. 돈은 시간을 거래하는 도구일 뿐이다. * 진정한 돈과 거리가 있는 화폐를 통해 우리는 기만당하고 있다. 영상에 대한 찬/반 논쟁이 있으나, 몇 가지를 제외하고는 매우 잘 만든 영상이라는 공통된 의견이 있다. 시청 후 첫 반응은 "금을 사야겠다" 였고, 영상 제작한 곳이 http://goldsilver.com 라는 것을 확인 후 치우침 없이 볼려는 노력을 했다. 영상에서 소개한 10% 지급 준비율을 한국 지급 준비율 7%로...

2015년 8월 26일 수요일

최소 노력으로 유용한 가계부 만드는 방법

"적을 알고 나를 알면 백전백승이다."라는 말처럼 모든 일에 가장 중요한 시작은 현황을 객관적으로 파학하는 것이라 봅니다. 스타크래프트에서 초반 (몇 마리 없는) 드론 한마리를 보내서 상대방 진영을 파학하는 것도 현황 파학의 중요성을 보여줍니다. 우리의 생활도 현황을 먼저 알면 미래에 대한 전략을 더 잘 세울 수 있다는 가정 하에, 가계부를 만들어 봤습니다. 막연한 생각을 수치로 바라보는 순간, 걱정보다는 확신이 들었습니다. 두려움이라는 것이 불확실성에서 비롯된다는 어느 현자의 말을 다시금...

2015년 8월 25일 화요일

파이톤 프로퍼티(property)의 이해를 위한 예제

파이톤(python)의 프로퍼티(property)의 유용함에 대해서 예제와 함께 다룹니다. 파이톤에서 property란 "사물의 고유한 특성"을 나타내는 말입니다. 무지개라는 클래스를 상상해 봅니다. class rainbow:     colors = ['red','yellow','green','blue'] 심플하게 4가지 색상으로 정의를 했습니다. 정말 아름다운 언어입니다. 하지만, 프로그램 개발자 입장에서는 매우 위험하다는 생각을 할 수 있습니다. 속성(성질)에 대한 좀 더 명확한 정의를 property를 통해서 만들어 봅니다. 무지개 색상(colors)에 대한 property 정의 In [1]: class...

2015년 8월 24일 월요일

파이톤 패키지를 PyPI에 배포하는 방법

파이톤 패키지를 PyPI(Python Package Index)에 배포하는 방법을 소개 합니다. 참고 : * https://docs.python.org/3.4/distutils/ * https://docs.python.org/3.4/distutils/setupscript.html * https://docs.python.org/3.4/distutils/packageindex.html 다음과 같은 절차로 진행 합니다. PyPI에 계정을 생성 setup.py 파일을 생성 PyPI에 패키지를 업로드 간단한 예제를 바탕으로 설명합니다. 예제 폴더 구조 $ tree . ├── data_rider │...

2015년 8월 21일 금요일

구글 태그 매니저(GTM)에 대한 샘플 예제

웹 분석(Web Analytics)을 위해서 태그 생성 및 변경을 도와주는 GTM(Google Tag Manager)의 개괄적인 특징과 예제를 다룹니다. 먼저, GTM의 아름다운 구조(Architecture)를 사용자 입장에서 설명합니다. 준비 작업으로 GA와 GTM의 계정 그리고, GTM의 컨테이너에서 발급 받은 태그 코드를 분석하고자 하는 모든 페이지에 붙여 넣습니다. -END- GTM 컨테이너에서 트리거(TRIGGER)/변수(VARIABLE)를 활용해 태그(TAG)들을...

2015년 8월 20일 목요일

인스타그램 데이터 수집하는 방법을 소개 합니다. [DEADED]

June 1, 2016 부터 적절한 권한 승인을 받지 못한 앱의 서비스는 정지 되었습니다. 특히, "해쉬 태그"에 대한 미디어 수집이 새롭게 추가된 public_content 범주의 승인이 필요합니다. 승인 절차가 까다로워서 당분간 지켜봐야겠습니다. ** 일부 전문가들은 비 API 적으로 웹 파싱(parsing)을 시도하고 있습니다. 기존 블로깅에서 인스타그램 수집 절차에 대해서 개괄적으로 다루었던 부분을 상세하게 요약합니다. 전체 절차는 다음과 같습니다. 1. 관리 클라이언트(Manage...

SNS 공유 버튼에 대한 성능 고민

정보의 범람에 노아의 방주라 불릴만한 다양한 네트워크(SNS)가 믿음을 요구하는 세상이다. 인스타그램(instagram)은 태그(tag)를 통해 정보를 구분짓는 방법을 제공하고, 출처의 제약을 통해서 쓰레기 데이터들을 막아내고 있다. 핀터레스트(pinterest)는 보드이라는 사탕을 주면서 정보를 구분짓을 일을 유저에게 일임한다. 각각 자신만의 스타일로 방주를 자처하고 있지만 혼란한 시기에는 지켜보는 것이 현명해 보인다. 오늘은 컨텐츠를 여러 방주로 흘려 보내는 방법을 간략히 정리해...

2015년 8월 19일 수요일

크로스 플랫폼 개발 Kivy 오프닝 예제

다수의 플랫폼에서 동작하는 단 하나의 코드, 파이톤이 지향하는 편의성을 추구하는 Kivy 오픈소스에 대한 "Hello World!" 오프닝 시연 영상을 담아 봅니다. 홈페이지 : http://kivy.org/#home 간략한 앱 하나를 만들어서 배포하는 것을 목표로 조사 중이 었는데, 다양한 이유로 흔적만 남기는 것으로 일단락 합니다. ...

2015년 8월 18일 화요일

프로그래밍 언어의 필요성과 코드 관리 방법

데이터를 가공하고 관리하는 툴들은 정말 많다. 용도에 따라 다양하고 강력한 툴들이 존재한다. 하지만, 툴로만 해결 하기에는 제약으로 인한 비효율적인 상황이 자주 발생된다. UI적으로 해결이 안되는 부분에 대한 고민은 "액셀의 VB 매크로"가 대표적이다. 최근에 블로깅한 나임(KNIME)에서도 외부 확장 프로그램 언어 노드를 통해서, 데이터를 다루기 위한 만능 툴을 만들었다. 데이터를 다루는 사람이라면 어떤 식으로든 프로그래밍 언어에 대한 깊은 이해가 필요하다고 예기하고 싶다. 생각...

2015년 8월 13일 목요일

셀레니움(selenium)을 통한 인스타그램 자동 로그인 예제

편리한 웹 어플리케이션 테스팅 프레임워크(framework)인 셀레니움(selenium)을 통해서, 인스타그램 페이지에 자동 로그인 하는 예제를 다룬다. 일반적으로 크라울링(수집) 할때, 주소(url)에 의한 질의(Request)와 응답(Response) 이라는 단순한 패턴을 통해서 이루어진다. 하지만, 로그인과 같은 정보 제출(submit) 패턴을 만나면 난감해 진다. 이때, 셀레니움은 어려움에 처한 당신에게 구원에 손길을 제공할 것이고, 겸허한 마음으로 그 손길을 잡으면, 신세계를 경험할 수 있을 것이다. 예제는 인스타그램에 로그인 하는 패턴의 코드와 호출하는 과정을 담았다. 그리고, 수행 및 구동하는...

2015년 8월 12일 수요일

오픈소스 통합 분석툴 나임(KNIME) 소개

강호의 고수에게 소개 받은 분석 끝판왕 툴을 소개 하고자 합니다. 툴 이름은 KNIME * 사이트 : https://www.knime.org 간략히 한 줄로 표현하자면, 데이터 분석 전과정(수집,전처리,분석,시각화,리포트)이 단위 기능(함수)으로 세분화(노드) 되고, 파이프라인을 통해, 멀티 데이터 플로우(Data Flow)를 시각적으로 표현하고 수행합니다. 기본적으로 Weka의 기계학습, R의 통계 패키지들이 제공되고, 파이톤/펄과 같은 코드를 노드에 담을...

2015년 8월 11일 화요일

데이터베이스 DEAD LOCK에 대한 간략한 시연

DW(Data Warehouse)를 위한 분산 데이터베이스인 그린플럼(Greenplum)을 다루던 시절에, 코끼리(pgadmin) 창 2개를 열고 시연하던, 트랜잭션(Transaction)과 락(Lock) 매커니즘으로 인한 DEAD LOCK 발생에 대해서 구현해 보았다. 테스트 과정을 간략히 설명하면, * 시연 트랜잭션 - INSERT + TRUNCATE 수행 1. 2개의 트랜잭션이 들어 온다.     => INSERT (ROW EXCLUSIVE)는 동시 수행이 수행된다. 2. 1개의 트랜잭션에 INSERT가 끝나고 TRUNCATE가 들어온다.     => INSERT...

2015년 8월 7일 금요일

networkx 라이브러리를 이용한 뉴스 요약 예제

네트워크 그래프를 그리는데 유용한 networkx 라이브러리(library)와 함께, 문장 단위의 명사구 네트워크를 그리는 간략한 예제를 소개합니다. 아이디어는 같은 문장의 명사구들은 서로 관계가 있다라는 것에서 시작합니다. 문장의 명사구를 (network theory의) 노드(node|vertex)로 보고, 각 노드의 쌍을 edge로 사전을 미리 제작하였습니다. 반복되는 edge들에는 빈도 가중치(weight)를 적용해서, 빈도의 순위를 통해 대상을 추리는 작업을 할 수 있도록 했습니다. 참고 *...