BRIC 연재 초심자를위한생물학 + 정보학 _37_ - 다양한거리계산 - 고주온 (John Go, Ph.D.) 지난번에코사인유사도를확인하는데사용했던파이썬의 scipy 모듈에서거리 (distance) 의계산에적용할수 있는다양한함수들을보면, 다음과같다. 표 1. scipy

Similar documents
3장 함수

17장 클래스와 메소드

쉽게 풀어쓴 C 프로그래밍

歯MW-1000AP_Manual_Kor_HJS.PDF

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

Microsoft Word - pv_0602.doc

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

170

006- 5¿ùc03ÖÁ¾T300çÃâ

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint Presentation

11장 포인터

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Microsoft PowerPoint - bioinfo_09lect12_shpark_microarray.ppt [호환 모드]

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

슬라이드 1

Microsoft PowerPoint - ch07 - 포인터 pm0415


PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

8장 문자열

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

PowerPoint Presentation

3. 다음은카르노맵의표이다. 논리식을간략화한것은? < 나 > 4. 다음카르노맵을간략화시킨결과는? < >

Microsoft PowerPoint - e pptx

gnu-lee-oop-kor-lec06-3-chap7

PowerPoint 프레젠테이션

금오공대 컴퓨터공학전공 강의자료

02장.배열과 클래스

JAVA PROGRAMMING 실습 05. 객체의 활용

Microsoft PowerPoint - Java7.pptx

슬라이드 1

윤성우의 열혈 TCP/IP 소켓 프로그래밍

Microsoft PowerPoint - additional01.ppt [호환 모드]

기술통계

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

JVM 메모리구조

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

쉽게 풀어쓴 C 프로그래밍

chap x: G입력

Data Structure

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

쉽게 풀어쓴 C 프로그래밍

설계란 무엇인가?

UI TASK & KEY EVENT

Microsoft PowerPoint - [2009] 02.pptx

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - C++ 5 .pptx

Secure Programming Lecture1 : Introduction

PowerPoint Presentation

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

PowerPoint 프레젠테이션

<31302E204D43545F47535FC3D6C1BEBAB8B0EDBCAD2E687770>

39호

Secure Programming Lecture1 : Introduction

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

<C0FCB9AEB1E2BCFA20BFDCB1B9C0CEB7C220B3EBB5BFBDC3C0E520BAD0BCAE2E687770>

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont

C 언어 프로그래밊 과제 풀이

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint Relations.pptx

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Contents Activity Define Real s Activity Define Reports UI, and Storyboards Activity Refine System Architecture Activity Defin

Microsoft Word - Lab.4

이 발명을 지원한 국가연구개발사업 과제고유번호 A 부처명 지식경제부 연구관리전문기관 연구사업명 IT핵심기술개발 연구과제명 융합형 포털서비스를 위한 이용자 참여형 방송기술개발 기여율 주관기관 전자부품연구원 연구기간 2008년 03월 01일 ~ 2

CHU 통계교육 Workshop (DAY 7. MDA 군집분석 ) 1. 개념 Individual Directed Technique + 범주 ( 그룹 ) 에대한사전정보가없음 + 다변량측정치를동시에고려하여데이터개체분류 + 개체의유사성 (simila

IoT FND8 7-SEGMENT api

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 26.pptx

쉽게 풀어쓴 C 프로그래밍

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

Microsoft PowerPoint - chap06-2pointer.ppt

슬라이드 1

2016남서울_수시모집요강_단면.pdf

Microsoft PowerPoint - lec2.ppt

13. 다차원척도법 (MultiDimensional Scaling) 13.1 개념및목적 다차원척도법 (mds) 는다차원관측값또는개체들간의거리 (distance) 또는비유사성 (dissimilarity) 을이용하여개체들을원래의차원보다낮은차원 ( 보통 2차원 ) 의공간상에

SMV Vending Machine Implementation and Verification 김성민 정혁준 손영석

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

Microsoft PowerPoint - C프로그래밍-chap15.ppt [호환 모드]

산업입지내지6차

Yonsei_436

PowerPoint 프레젠테이션

BY-FDP-4-70.hwp

자연채무에대한재검토 1. 서론 2. 선행연구 9 Journal of Digital Convergence 214 May; 12(5): 89-99

Microsoft PowerPoint - Chapter8.pptx

PHPoC vs PHP > 개요 개요 PHPoC 는솔내시스템 이자체개발한프로그래밍언어입니다. 당사의모든 PHPoC 제품들의펌웨어에는 PHPoC 인터프리터가내장되어있습니다. PHPoC 는범용스크립트언어인 PHP 를기반으로제작되었습니다. PHPoC 는매우간단하여 C 언어등

PowerPoint Template

Transcription:

BRIC 연재 초심자를위한생물학 + 정보학 _37_ - 다양한거리 - 고주온 (John Go, Ph.D.) 지난번에코사인유사도를확인하는데사용했던파이썬의 scipy 모듈에서거리 (distance) 의에적용할수 있는다양한함수들을보면, 다음과같다. 표 1. scipy 모듈의거리함수 모듈명 내용 ( 특기하지않는한 2 개의 1차원배열을대상으로함 ) braycurtis(u, v) 브레이-커티스거리 canberra(u, v) 캔버라거리 chebyshev(u, v) 체비쇼프 (Chebyshev) 거리 ( 체스판거리 ) cityblock(u, v) 맨해튼 (Manhattan) 거리 correlation(u, v) 연관거리 (correlation distance) cosine(u, v) 코사인거리 (cosine distance) dice(u, v) 1차원불배열 (boolean 1-D arrays)* 에대한다이스비유사도 (dice dissimilarity) euclidean(u, v) 유클리드거리 (Euclidean distance) hamming(u, v) 해밍거리 (hamming distance) jaccard(u, v) 1차원불배열에대한자카드-니덤비유사도 (Jaccard-Needham dissimilarity) kulsinski(u, v) 1차원불배열에대한쿨친스키비유사도 (Kulsinski dissimilarity) mahalanobis(u, v, VI) 마할라노비스거리 (Mahalanobis distance) matching(u, v) 1차원불배열에대한매칭비유사도 (matching dissimilarity) minkowski(u, v, p) 민코브스키거리 (Minkowski distance) rogerstanimoto(u, v) 1차원불배열에대한로저스-타니모토비유사도 (Rogers-Tanimoto dissimilarity) russellrao(u, v) 1차원불배열에대한러셀-라오비유사도 (Russell-Rao dissimilarity) seuclidean(u, v, V) 표준유클리드거리 (standardized Euclidean distance) sokalmichener(u, v) 1차원불배열에대한소칼-미쉬너비유사도 (Sokal-Michener dissimilarity) sokalsneath(u, v) 1차원불배열에대한소칼-스니스비유사도 (Sokal-Sneath dissim- 초심자를위한생물학 + 정보학 _37_ 다양한거리고주온 Page 1 / 5

ilarity) sqeuclidean(u, v) 제곱유클리드거리 (squared Euclidean distance) wminkowski(u, v, p, w) 가중민코브스키거리 (weighted Minkowski distance) yule(u, v) 1차원불배열에대한율비유사도 (Yule dissimilarity) * 0 또는 1만으로이루어진 1차원배열. 측정법 (metric) 이주어지지않을경우기본값. 파이썬의 scipy 모듈에있는거리관련함수는거리 (distance) 에상응하는개념인비유사도 ( 非類似度, dissimilarity) 에관한함수도포함하는데, 표 1에서볼수있는바와같이 scipy 모듈에서사용할수있는관련함수는 20여가지가있다. 이들거리, 비유사도등의개념은개체의분류 (classification) 또는군집화 (clustering) 등의수행에필수적으로적용되는중요한개념이다. 그런데, 여기서짚고넘어가야할중요한사항이있다. 자료또는각객체간의관계를확인하기위해서는보통거리, 유사도, 상관계수 (correlation coefficient) 등의개념을도입하여이를객관화하게되는데, 이과정에서용어나개념의혼란이있을수있다. 앞에서본코사인유사도 (cosine similarity) 와코사인거리 (cosine distance) 를예로하여 scipy 모듈의사용법과유의사항에대해알아보자. A = [1, 1, 0, 1] <-- (1) B = [2, 0, 1, 1] <-- (2) import scipy.spatial.distance <-- (3) scipy.spatial.distance.pdist((a, B), 'cosine') <-- (4) <-- (5) pdist((a, B), 'cosine') <-- (6) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'pdist' is not defined <-- (7) 지난번코사인유사도의예에서사용했던자료를재적용하고 (1, 2), scipy 모듈의거리기능을불러온다 (3). pdist() 를사용하여 (4) 코사인거리를한다 (5). 모듈을제외하고 pdist() 만실행할경우에는 (6) 정의되지않았다고오류를출력한다 (7). pdist() 는 scipy 모듈이포함한함수를실행할때 n-차원공간의객체간의짝거리 (pairwise distance) 를구하는기능으로서, 예시한바와같이 1차원배열쌍과적용하고자하는측정법을인수 (argument) 로한다. 그런데, 이런방식으로실행을하려면기능을호출할때마다매번원래의모듈명을모두입력해야하는번거로움이있다. 그래서, 반복적인을간편하게하기위해실제로실행할때에는다음과같은몇가지방법을사용하기도한다. A = [1, 1, 0, 1] B = [2, 0, 1, 1] from scipy.spatial.distance import * <-- (1) pdist((a, B), 'cosine') <-- (2) 초심자를위한생물학 + 정보학 _37_ 다양한거리고주온 Page 2 / 5

scipy.spatial.distance 모듈로부터 (from) 모든함수를불러온다음 (import *, 1), pdist() 를실행하여 코사인거리를한다 (2). 위의방법은거리모듈의전체함수를불러오는 (import *) 것이다. 또다른방법 으로는해당모듈에임의의모듈명 (dist1, 다른명칭도상관없다 ) 을지정하여다음과같이사용할수도있다. A = [1, 1, 0, 1] B = [2, 0, 1, 1] import scipy.spatial.distance as dist1 <-- (1) dist1.pdist((a, B), 'cosine') <-- (2) scipy.spatial.distance 모듈을 dist1 이라는이름으로불러온후 (1), dist1 에대한 pdist() 로코사인거리 를한다 (2). 참고로, pdist() 를사용하는방법으로는다음과같은것도있다. A = [1, 1, 0, 1] B = [2, 0, 1, 1] from scipy.spatial.distance import pdist <-- (1) pdist((a, B), 'cosine') <-- (2) scipy.spatial.distance 모듈로부터 pdist 함수를불러온다음 (1), 이를사용하여 A 와 B 의코사인거리를계 산한다 (2). 지금까지모듈의기본적인호출방법에대해약간알아보았는데, 여기서기억해두어야할내용은, 사용하고자하는함수를포함하는모듈명전체를호출하여해당함수를사용해야한다는것이다. 모듈을사용하는초기에는모듈을불러오는방법이쉽게익숙해지지않아서혼란스러울수있지만, 내친김에 pdist() 를사용하지않고직접함수를실행하는방법도알아보자. 아래예시한것들은내용이조금씩차이가나므로주의깊게보아야한다. import scipy.spatial.distance <-- (1) distance.cosine(a, B) <-- (2) scipy.spatial.distance 모듈을호출하고 (1) 코사인거리함수 (cosine(u, v)) 를실행하면 (2), 결과 가실수값 ( 부동소수점수 ) 으로출력된다 (3). from scipy.spatial import distance <-- (1) distance.cosine(a, B) <-- (2) 초심자를위한생물학 + 정보학 _37_ 다양한거리고주온 Page 3 / 5

코사인거리함수를포함하는모듈의호출방식을달리하여 (1) 코사인거리를해도 (2) 동일한결과를볼수있다 (3). import scipy.spatial.distance as dist2 <-- (1) dist2.cosine(a, B) <-- (2) 불러올모듈을임의의이름으로호출하여 (as dist2, 1) 코사인거리를하는것도가능하다 (2, 3). from scipy.spatial import distance as dist3 <-- (1) dist3.cosine(a, B) <-- (2) 모듈명칭의지정을달리하여도 (1) 동일한결과를보인다 (2, 3). 이처럼다양한방식으로모듈을불러거리을실행할수있는데, 이는파이썬모듈운영에있어서그계층적구조에대해잘이해하면쉽게응용할수있다. 또한, 모듈사용방식에대한사용자의취향도중요하므로, 가능한한많은경험을쌓으면서기존의개발자들이적용한개발표준을참조하여작업하는것이좋을것이다. 지금까지 scipy 모듈을이용한코사인거리의예를통하여사용방법에대해간략히알아보았다. 그런데, 코사인거리의결과를보면, 지난번의코사인유사도 (S c ) 결과 (0.70710678) 와이번코사인거리 (D c ) 의결과 (0.29289322) 사이에지난번에언급한것과같이 D c = 1 - S c 의관계가성립되는것을볼수있다. 이를달리말하자면, 함수나매개변수의명칭이같은 cosine이라고해도주어진기능에서의개념이무엇인지반드시확인해야한다. 유사도 (similarity), 거리 (distance), 비유사도 ( 부동성, dissimilarity), 계수 (coefficient) 등의표현도해당용어의실제개념과의미에따라서다르게사용될수있다. 파이썬의 scipy 모듈인자카드-니덤비유사도 (jaccard(u, v)) 와로저스-타니모토비유사도 (rogerstanimoto(u, v)) 는일반적으로언급되는자카드계수 (Jaccard coefficient) 나타니모토계수 (Tanimoto coefficient) 와는각각다른개념이다. 내용이다소혼란스러울수있으나, 간단히요약하자면용어및그개념에대한정의를정확하게확인하고해당기능을유의해서사용해야오류를피할수있다는것이다. 참고로, scipy.spatial.distance 모듈을사용한거리시, 적용하고자하는측정법을특정하지않으면, 다음예에서보는바와같이, 유클리드거리을기본값 (default) 으로한다. C = [0, 0] D = [1, 2] from scipy.spatial.distance import pdist <-- (1) pdist((c, D)) <-- (2) 초심자를위한생물학 + 정보학 _37_ 다양한거리고주온 Page 4 / 5

array([ 2.23606798]) <-- (3) scipy.spatial.distance 모듈로부터 pdist 를호출하여 (1), 측정법을지정하지않고 C 와 D 간의거리를 하면 (2), 기본값인유클리드거리를적용하여그결과를출력한다 (3). 보통유클리드거리는 R 패키지나 MATLAB 1 등의여러도구의다양한거리관련연산 (hierarchical clustering, K-means clustering, etc.) 에서기본측정법으로사용된다. 또한, scipy 모듈에관하여더자세하게알고싶다면 scipy.org 2 를참조해보기바란다. 거리에서짝으로구성된자료간의거리를하는 pdist() 외에도다른구조의자료에대해을수행하는기능에대해서도확인할수있다. 고주온 ( 필명 ) (http://bioprofiler.tistory.com) IBM-XT시절부터개인용컴퓨터를사용하였으나, 강산이변한지금도어제코딩한내용을오늘기억하지못하는자유인. 박사학위는분자유전학분야로받았으며, 물리학과화학에관심만있음. 현재대학교수로재직중. The views and opinions expressed by its writers do not necessarily reflect those of the Biological Research Information Center. 고주온 (2016). [ 초심자를위한생물학 + 정보학 ] _37_ 다양한거리. Available from http://www.ibric.org/myboard/read.php?board=news&id=272298 (May.20, 2016) Email: member@ibric.org 1 MathWorks 에서발매하는전산도구이다. 2 http://scipy.org 초심자를위한생물학 + 정보학 _37_ 다양한거리고주온 Page 5 / 5