<B8D3BDC5B7AFB4D72DC3D6C1BE2E687770>

Size: px
Start display at page:

Download "<B8D3BDC5B7AFB4D72DC3D6C1BE2E687770>"

Transcription

1

2 MACHINE LEARNING IN ACTION by Peter Harrington Original English language edition published by Manning Publications, 178 South Hill Drive, Westampton, NY 08060, USA. Copyright c 2012 by Manning Publications Co. Korean edition copyright c 2013 by J-Pub. All rights reserved. 이 책의 한국어판 저작권은 대니홍 에이전시를 통한 저작권사와의 독점 계약으로 제이펍 출판사에 있습니다. 신저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단전재와 무단복제를 금합니다. 초판 1쇄 발행 2013년 6월 26일 지은이 피터 해링턴 옮긴이 김영진 펴낸이 장성두 펴낸곳 제이펍 출판신고 2009년 11월 10일 제 호 주소 경기도 파주시 문발동 파주출판도시 30-1 뮤즈빌딩 403호 전화 / 팩스 홈페이지 / 이메일 jeipub@gmail.com 편집부 이민숙, 이 슬 / 본문디자인 초심디자인 용지 신승지류유통 / 인쇄 한승인쇄사 / 제본 동호문화사 ISBN (93000) 값 30,000원 이 책은 저작권법에 따라 보호를 받는 저작물이므로 무단 전재와 무단 복제를 금지하며, 이 책 내용의 전부 또는 일부를 이용하려면 반드시 저작권자와 제이펍의 서면동의를 받아야 합니다. 잘못된 책은 구입하신 서점에서 바꾸어 드립니다. 제이펍은 독자 여러분의 책에 관한 아이디어와 원고 투고를 기다리고 있습니다. 책으로 펴내고자 하는 아이디어나 원고가 있으신 분께서는 책에 대한 간단한 개요와 차례, 구성과 저(역)자 약력 등을 메일로 보내주세요. 보내실 곳: jeipub@gmail.com

3

4

5 조셉과 밀로에게

6 역자 머리말 xvi 머리말 xviii 감사의 글 xxi 이 책에 대하여 xxiii 겉표지 삽화에 대하여 xxviii 제1부 분류 1장 기계 학습 기초 1.1 기계 학습이란 무엇인가? 센서 및 데이터 홍수 기계 학습은 점점 더 중요해질 것이다 주요 전문용어 기계 학습의 주요 기술 올바른 알고리즘 선정 방법 기계 학습 응용 프로그램 개발 단계 왜 파이썬인가? 실행 가능한 의사코드 인기 좋은 파이썬 장점 단점 NumPy 라이브러리로 시작하기 요약 21 vi

7 차 례 2장 k-최근접 이웃 알고리즘 2.1 거리 측정을 이용하여 분류하기 준비: 파이썬으로 데이터 불러오기 knn 분류 알고리즘 실행하기 분류기 검사하기 예제: knn을 이용하여 데이트 사이트의 만남 주선 개선하기 준비: 텍스트 파일의 데이터 구문 분석하기 분석: 매스플롯라이브러리로 scatter 플롯 생성하기 준비: 수치형 값 정규화하기 검사: 전체 프로그램으로 분류기 검사하기 사용: 모두에게 유용한 시스템 만들기 예제: 필기체 인식 시스템 준비: 이미지를 검사 벡터로 변환하기 검사: 필기체 번호에 knn 적용하기 요약 46 3장 의사결정 트리: 한 번에 하나의 속성으로 데이터 집합 분할하기 3.1 트리 구조 정보 이득 데이터 집합 분할하기 재귀적으로 트리 만들기 매스플롯라이브러리 주석으로 파이썬에서 트리 플롯하기 매스플롯라이브러리 주석 주석 트리 구축하기 분류기 검사와 저장 검사: 분류를 위한 트리 사용 사용: 의사결정 트리 계속 유지하기 73 vii

8 3.4 예제: 콘택트렌즈 유형 예측하기 요약 77 4장 나이브 베이스: 확률 이론으로 분류하기 4.1 베이지안 의사결정 이론으로 분류하기 조건부 확률 조건부 확률로 분류하기 나이브 베이스로 문서 분류하기 파이썬으로 텍스트 분류하기 준비: 텍스트로 단어 벡터 만들기 훈련: 단어 벡터로 확률 계산하기 검사: 실제 조건을 반영하기 위해 분류기 수정하기 준비: 중복 단어 문서 모델 예제: 스팸 이메일 분류하기 준비: 텍스트 토큰 만들기 검사: 나이브 베이스로 교차 검증하기 예제: 나이브 베이스를 사용하여 개인 광고에 포함된 지역 특색 도출하기 수집: RSS 피드 불러오기 분석: 지역적으로 사용되는 단어 표현하기 요약 105 5장 로지스틱 회귀 5.1 로지스틱 회귀와 시그모이드 함수로 분류하기: 다루기 쉬운 계단 함수 가장 좋은 회귀 계수를 찾기 위해 최적화 사용하기 기울기 상승 훈련: 기울기 상승을 사용하여 가장 좋은 매개변수 찾기 분석: 의사결정 경계선 플롯하기 115 viii

9 차 례 훈련: 확률적인 기울기 상승 예제: 말의 배앓이 치사율 평가하기 준비: 데이터에서 누락된 값 다루기 검사: 로지스틱 회귀로 분류하기 요약 127 6장 지지 벡터 머신 6.1 최대 마진으로 데이터 분리하기 최대 마진 찾기 분류기 관점에서의 최적화 문제 구성하기 일반적인 기본 구조로 지지 벡터 머신에 접근하기 SMO 알고리즘으로 효율적인 최적화하기 플랫의 SMO 알고리즘 간략한 형태의 SMO로 적은 양의 데이터 집합 해결하기 전체 플랫 SMO를 이용해 최적화 속도 올리기 더 복잡한 데이터를 위해 커널 사용하기 고차원의 데이터를 커널을 이용해 매핑하기 반지름 성향 함수 검사를 위한 커널 사용 예제: 필기체 인식 예제 다시 적용하기 요약 162 7장 에이다부스트 메타 알고리즘으로 분류 개선하기 7.1 데이터 집합의 다양한 표본을 사용하는 분류기 배깅: 임의로 추출한 재표본 데이터로부터 분류기 구축하기 부스팅 훈련: 오류에 초점을 맞춘 분류기 개선 167 ix

10 7.3 의사결정 스텀프로 약한 학습기 생성하기 전체 에이다부스트 알고리즘 구현하기 검사: 에이다부스트로 분류하기 예제: 에이다부스트에 복잡한 데이터 집합 적용하기 분류 불균형 또 다른 성능 측정 방법: 정확도, 재현율 그리고 ROC 비용 함수를 가진 분류기의 의사결정 다루기 분류 불균형이 있는 데이터를 처리하기 위한 데이터 샘플링 요약 189 제2부 회귀로 수치형 값 예측하기 8장 회귀: 수치형 값 예측하기 8.1 회귀로 최적선 찾기 지역적 가중치가 부여된 선형 회귀 예제: 전복 나이 예측하기 데이터를 이해하기 위한 축소 계수 능형 회귀 라소 전방향 단계별 회귀 성향 / 변화량 관계 예제: 레고 가격 예측하기 수집: 구글 쇼핑 API 사용 훈련: 모델 구축 요약 225 x

11 차 례 9장 트리 기반 회귀 9.1 지역적으로 복잡한 데이터 모델링하기 연속적이고 이산적인 속성으로 트리 구축하기 회귀를 위해 CART 사용하기 트리 구축하기 코드 실행하기 트리 가지치기 사전 가지치기 사후 가지치기 모델 트리 예제: 일반 회귀와 트리 방법 비교 파이썬에서 GUI를 생성하기 위해 Tkinter 사용하기 Tkinter에서 GUI 구축하기 매스플롯라이브러리와 Tkinter 접속하기 요약 257 제3부 비지도 학습 10장 k 평균 군집화: 항목 표시가 없는 아이템 그룹 짓기 10.1 k 평균 군집화 알고리즘 후처리로 군집 성능 개선하기 양분하는 k 평균 예제: 지도상의 지역점 군집화 274 xi

12 야후! 위치찾기 API 지리적인 좌표 군집화 요약 장 어프라이어리 알고리즘으로 연관 분석하기 11.1 연관 분석 어프라이어리 이론 어프라이어리 알고리즘으로 빈발 아이템 집합 찾기 후보 아이템 집합 생성 전체 어프라이어리 알고리즘 사용 빈발 아이템 집합으로 연관 규칙 마이닝하기 예제: 국회 투표 패턴 알아보기 수집: 국회 투표 기록에 대한 트랜잭션 데이터 집합 구축 검사: 국회 투표 기록의 연관 규칙 예제: 독버섯과 유사한 속성 찾기 요약 장 FP-성장 알고리즘으로 빈발 아이템 집합 찾기 12.1 FP-트리: 데이터 집합을 부호화하는 효과적인 방법 FP-트리 구축하기 FP-트리 데이터 구조 생성하기 FP-트리 구축하기 FP-트리로 빈발 아이템 집합 마이닝하기 기본 패턴 조건 추출하기 FP-트리 조건 생성하기 예제: 트위터 피드에서 함께 발생하는 단어 찾기 331 xii

13 차 례 12.5 예제: 뉴스 사이트에서 클릭 스트림 마이닝하기 요약 337 제4부 부가적인 도구들 13장 데이터 간소화를 위한 주요 구성요소 분석 사용하기 13.1 차원 축소 기술 주요 구성요소 분석 좌표 축 이동 NumPy에서 PCA 수행하기 예제: PCA로 반도체 제조 데이터 차원 축소하기 요약 장 특이 값 분해로 데이터 간소화하기 14.1 SVD 응용 프로그램 잠재적 의미 색인 추천 시스템 행렬 인수분해 파이썬 SVD 협력적 여과 기반 추천 엔진 유사도 측정 아이템 기반 유사도와 사용자 기반 유사도 추천 엔진 평가하기 예제: 레스토랑 메뉴 추천 엔진 구축하기 367 xiii

14 맛보지 못한 음식 추천하기 SVD로 추천 개선하기 추천 엔진이 가지고 있는 과제 예제: SVD로 이미지 압축하기 요약 장 빅 데이터와 맵 리듀스 15.1 맵 리듀스: 분산 컴퓨팅의 기본 구조 하둡 스트리밍 평균과 분산 매퍼 분산처리 평균과 분산 리듀서 분산처리 아마존 웹 서비스로 하둡 작업 실행하기 AWS에서 제공하는 서비스 아마존 웹 서비스 시작하기 EMR에서 하둡 작업 실행하기 맵 리듀스에서의 기계 학습 파이썬에서 mrjob을 사용한 맵 리듀스 자동화 EMR로 매끄러운 통합을 위해 mrjob 사용하기 mrjob에서 맵 리듀스 스크립트의 구조 예제: SVM 분산처리를 위한 페가소스 알고리즘 페가소스 알고리즘 훈련: mrjob으로 지지 벡터 머신 맵 리듀스 맵 리듀스, 정말로 필요한가? 요약 410 부록 A 파이썬 시작하기 A.1 파이썬 설치 412 A.1.1 윈도우 412 xiv

15 차 례 A.1.2 맥 OS X 413 A.1.3 리눅스 413 A.2 파이썬에 대한 간단한 소개 414 A.2.1 데이터 유형 414 A.2.2 구조 제어 416 A.2.3 함축 리스트 417 A.3 NumPy에 대한 간단한 소개 418 A.4 뷰티플 수프 423 A.5 Mrjob 423 A.6 스마트 투표 424 A.7 파이썬 트위터 425 부록 B 선형대수학 B.1 행렬 427 B.2 역행렬 430 B.3 표준 432 B.4 미분행렬 432 부록 C 확률 다시 보기 C.1 확률 434 C.2 결합 확률 435 C.3 확률의 기본 규칙 436 부록 D 리소스 찾아보기 440 xv

16 역자 머리말 이 책은 기계 학습에 관한 내용을 알기 쉽고 활용하기 편하게 설명하고 있습니다. 기계 학습은 말 그대로 컴퓨터에게 학습을 시킨다는 의미를 가지고 있습니다. 하지만 말을 할 수도, 사람의 언어를 이해할 수도 없는 컴퓨터에게 무엇을, 어떻게 가르칠 수 있을까요? 바로 이러한 것을 다루 는 분야가 기계 학습 분야이며, 기계 학습 대부분의 내용은 수학과 통계학 을 기반으로 다루어지고 있습니다. 하지만 이 책은 기계 학습의 각 방법론 을 설명하는 데 수학과 통계학을 사용하지 않고 있습니다. 방법론을 설명 할 때는 우리 주변에서 쉽게 접할 수 있는 내용을 가지고 설명하고, 예제 로 다루어지는 데이터들도 이에 맞게 준비되어 있습니다. 그리고 무엇보 다 중요한 것은 여기서 다루고 있는 소스 코드를 독자가 원하는 곳에 바로 사용할 수 있다는 것입니다. 이 책의 주요 도구인 파이썬 프로그램이 이것을 가능하게 해 주고 있습니다. 파이썬은 그동안 제가 다루었던 그 어떤 프로그램들보다 쉽고 편리한 프로그램이라고 생각합니다. 이 책은 파이썬을 설명하는 책은 아니지만, 따로 공부하지 않아도 이 책의 설명대 로 따라가다 보면 어느새 파이썬을 다루는 자신을 발견하게 될 것입니다. 또한, 다각도의 실험에 사용할 수 있는 데이터의 출처들도 소개하고 있어 연구원들에게도 좋은 참고자료가 될 수 있을 것으로 생각합니다. 이 책을 번역하면서 감사의 말을 전하고 싶은 분들이 많이 있습니다. 우선 책을 번역하는 것이 처음인 저에게 이 책을 번역할 기회를 주시고, 긴 시간 기다려 주신 제이펍 장성두 대표님과 저의 어설픈 번역을 다듬어 주시느라 고생하신 이슬 님께 감사드립니다. 이 분야를 공부하는 데 있어 부족함이 많은 제자인 제게 많은 가르침을 주시고 이끌어주신 숭실대학 교 김명원 교수님께도 깊은 감사와 존경을 표합니다. xvi

17 역자 머리말 첫 번역을 마무리하기까지 함께 고생해 준 나의 사랑하는 배우자이자, 이 책을 예쁘게 만들어 준 초심디자인 조찬영 님께도 고맙다는 말을 전하고 싶습니다. 그리고 갑자기 전화해 이것저 것 물어 귀찮게 했는데도 조언을 아끼지 않았던 나의 선배 류정우 박사님과 김은주 박사님, 그리고 연구실에서 동고동락하며 많은 도움과 응원을 보내 준 나의 동기 송원문 박사와 송성렬 후배에게도 감사의 말씀을 전합니다. 그리고 항상 믿고 지켜봐 주시는 부모님, 감사합 니다. 그리고 사랑합니다. 2013년 6월 김영진 xvii

18 머리말 대학 졸업 후 나는 캘리포니아와 중국 본토에 있는 인텔(Intel)에서 일했 다. 원래 계획은 2년 후 대학원으로 돌아가는 것이었으나, 일에 빠져 있다 보니 그 시간이 6년이 되었다. 물론 내가 돌아가야 할 때가 되었다는 것을 알았으나, 야간 학교에 다니거나 온라인 학습을 하는 것은 원하지 않았다. 나는 캠퍼스에 머물면서 대학에서 누릴 수 있는 모든 것에 흠뻑 빠지기를 원했다. 대학에서 가장 좋은 것은 수업을 받거나 연구를 하는 것이 아니라 사람들을 만나고, 세미나에 참가하며, 조직에 가입하는, 수업 이면의 무언가를 배우는 일일 것이다. 2008년쯤, 직업 박람회 준비를 도운 적이 있었다. 나는 누군가와 대형 금융기관에 대해 이야기하기 시작했고, 신용 위험 위치 모델링(position modieling credit risk, 누군가의 대출 청산 가능성에 대하여 계산해 내는 것)에 대해 인터뷰를 했다. 그들은 나에게 확률 미적분(stochastic calculus)을 얼마나 알고 있는지 물었다. 물론 당시에 나는 확률이라는 단어가 어떤 의미를 가지는지 알지 못했다. 그들은 지리적인 위치 때문에 나를 고용했 지만, 나는 일을 견디지 못하고 그만두기로 했다. 하지만 확률에 흥미가 있었던 나는 수강 과목에 확률 이라는 단어가 포함된 강의가 있기를 기대하면서 수강 편람을 보러 갔고, 이산 시간 확률 시스템(discrete time stochastic systems) 이라는 과목을 찾았다. 난 무작정 강의에 참석하기 시작했다. 결국, 교수에게 발각되었지만 그녀는 매우 감사하게도 내가 계속 강의를 들을 수 있도록 허락해 주었다. 수업 첫날, 확률을 적용한 알고리즘을 보았다. 이전에 데이터를 입력하는 것처럼 평균값을 처리하는 알고리즘을 본 적이 있다. 하지만 이것은 그와 달리 편차(variance)와 평균(mean)이 알고리즘의 내부 값으로 존재했다. 이 과정은 시계열(time series) 데이터에 관한 것이었으며, 그래서 데이터 xviii

19 머리말 의 모든 부분이 주기적인 간격을 갖는 샘플이었다. 나는 수강 제목에 기계 학습(machine learning) 이 포함된 다른 수업을 찾았다. 이 수업에서는 데이터가 시간에 대해 균등하게 간격을 둔다고 간주하지 않았다. 나는 나중에서야 경제학, 전기 공학, 컴퓨터 과학 분야에서 도 비슷한 방법이 사용되고 있다는 것을 깨달았다. 2009년 초에 대학을 졸업하고 소프트웨어 컨설턴트 같은 일을 하기 위해 실리콘 밸리(Silicon Valley)로 갔다. 그 후 2년 동안 매우 폭넓은 기술들을 가진 여덟 개의 회사와 함께 일하면서 크게 두 가지를 깨달았다. 첫 번째는 매력적인 응용 프로그램을 개발하기 위해서는 보다 더 많은 데이터를 다룰 필요가 있다는 것이고, 두 번째는 고용주가 필요로 하는 사람은 이론을 이해하면서 프로그램도 다룰 수 있는 사람이라는 것이다. 프로그래머의 주요 작업은 파이프를 연결(connecting pipes, 프로그래머가 데이터의 흐름을 연결 하는 것을 뜻함)하는 것으로 구성된다. 예를 들면, 당신은 온라인으로 물건을 파는 응용 프로그 램을 만들 수 있다. 물건을 게시하고, 사람들이 그 게시물을 볼 수 있도록 해야 한다. 이를 위해 당신은 사용자가 판매하고자 하는 물건에 대한 데이터를 입력할 수 있게 하고, 입력된 데이터를 저장소로 보내는 웹 형태를 만들 수 있다. 그런 다음, 팔 물건을 다른 사용자가 볼 수 있도록 데이터를 규칙에 맞게 데이터 저장소 밖으로 보내야만 하며, 그것을 적당하게 전시해야 한다. 나는 사람들이 계속해서 이러한 방법으로 돈을 만들 것이라고 확신한다. 그러나 정말로 좋은 응용 프로그램을 만들기 위해서는 지능(intelligence)적인 수준이 좀 더 필요하다. 이러한 지능은 부적절하게 배치된 것을 제거하고, 사기 거래를 감지하고, 사용자가 좋아할 만한 것을 직접 알려주며, 사이트 트래픽(traffic) 예측 등의 작업을 자동으로 할 수 있게 한다. 이러한 목적을 완수하기 위해서는 기계 학습을 적용하는 것이 필요할 것이다. 최종 사용자는 이러한 것들이 장면 뒤에서 일어나고 있는 마술이라는 것을 알지 못한다. 이들에게 당신의 응용 프로그램은 단지 작업 이며, 이미 잘 구축된 제품일 뿐이다. 어떤 단체는 직원을 고용하기 위해 이론적인 연구자(thinkers) 나 현실적인 개발자(doers) 중 한쪽을 선택하게 될 것이다. 연구자는 학계에서 많은 시간을 보낼 것이며, 이들이 매일같 xix

20 이 하는 일은 논문으로부터 생각을 이끌어 내고 매우 높은 수준의 툴이나 수식을 모델링하는 것이다. 반면 개발자는 코드를 작성하고, 기계가 멈추 거나 잡음이 생기는 것과 같은 비이상적인 세계의 결함을 처리하여 실세 계와 대면한다. 개발자와 연구자를 분리하는 것은 좋은 생각이 아니며, 성공적인 단체는 이 사실을 알고 있다. (제조업에 군살을 없애는 원칙 중 하나는 연구자를 위하여 그들이 그들의 손으로 직접 실천하게 하는 것이다.) 채용 에 소비되는 금전적인 한계가 언제쯤 올 것이며, 연구자와 개발자 중 누가 더 쉽게 고용될 것인가? 아마도 개발자일 것이다. 하지만 실질적으 로 고용주는 둘 다 원한다. 사고는 프로그램 구축을 위해 필요하다. 즉, 더욱더 까다로운 알고리즘이 필요한 응용 프로그램이 요구될 때, 논문을 읽고, 좋은 생각을 끄집어내며, 실제 코드에서 프로그램을 실행하고, 이러 한 작업을 반복할 수 있는 누군가가 옆에 있다면 유용할 것이다. 나는 기계 학습 알고리즘의 맥락에서 연구자와 개발자 사이의 틈을 연결 해 주는 책을 보지 못했다. 이 책의 목적은 따라 하기 방법을 이용하여 기계 학습 알고리즘 사용방법을 소개하는 것이며, 이를 통해 독자가 더 좋은 응용 프로그램을 구축할 수 있도록 한다. 피터 해링턴 xx

21 감사의 글 감사의 글 이 글이 이 책에서 가장 쓰기가 쉬웠다. 첫째, 매닝(Manning) 출판사 사람들에게, 그리고 이상 모든 사람들에게 감사함을 전한다. 나의 편집자 Troy Mott에게 감사를 전한다. 그의 도움과 열정이 없었다면, 이 책은 결코 만들어지지 못했을 것이다. 또한 마지막 원고에서 글다듬기를 즐겁게 도와준 Maureen Spencer에게도 감사를 전한다. 다음으로, 애리조나 주립 대학교(Arizona State University)에 있는 Jennie Si에게 감사를 전한다. 그녀는 이산 시간 확률 시스템이라는 그녀의 수업을 청강할 수 있게 해 주었다. 또한 데이터 마이닝의 상위 10개의 알고리즘 주1 에 관한 논문을 선정해 준 MIT의 Cynthia Rudin은 이 책을 집필하기 위한 접근 방법에 대해 영감을 주었다. 그 외에 Mark Bauer, Jerry Barkely, Jose Zero, Doug Chang, Wayne Carter, Tyler Neylon 등은 간접적으로 도움을 주었다. 1) 특히, 이 책을 집필하는 동안 여러 단계에서 원고를 읽고 매우 소중한 충고를 해 준 Keith Kim, Franco Lombardo, Patrick Toohey, Josef Lauri, Ryan Riley, Peter Venable, Patrick Goetz, Jeroen Benckhuijsen, Ian McAllister, Orhan Alkan, Joseph Ottinger, Fred Law, Karsten Strøbæk, Brian Lau, Stephen McKamey, Michael Brennan, Kevin Jackson, John Griffin, Sumit Pal, Alex Alves, Justin Tyler Wiley, John Stevenson 등 동료들에게 감사를 전한다. 기술 전문 교정자 Tricia Hoffman과 Alex Ott는 원고가 인쇄되기 전에 기술적인 내용을 빠르게 검토했다. 이들의 지적과 충고에 감사를 전한다. 이제 와 말하지만, 알렉스는 코드를 검토할 때 악마와 같았다! 덕분에 좋은 책을 만들 수 있었다. 주1 Xindong Wu, et al.. Top 10 Algorithms in Data Mining, Journal of Knowledge and Information Systems 14, no. 1 (December 2007). xxi

22 또한 원고 이전 버전을 구입하여 읽은 모든 사람들에게 감사를 전한다. 이 책은 그들 없이는 존재하지 못했을 것이다. 이 책을 집필하는 동안 나를 지원해 준 나의 가족에게 감사를 전한다. 늘 격려를 잊지 않은 나의 아내에게 감사의 빚을 졌다. 원고를 작성하는 동안 아내는 내 인생의 모든 잘못을 참아주었다. 마지막으로, 나는 실리콘 밸리(Silicon Valley)에 감사를 전한다. 실리콘 밸리는 나의 아내와 내가 작업을 하는 데 큰 장소를 제공해 주었으며, 우리는 이곳에서 생각과 열정을 공유할 수 있었다. xxii

23 이 책에 대하여 이 책에 대하여 이 책은 기계 학습 알고리즘에 영향력이 있는 사람들을 소개하는 것으로 시작한다. 이들이 사용한 도구와 응용 프로그램은 오늘날 독자에게 알고리즘이 어떻게 사용되는지 체감할 수 있도록 소개된다. 기계 학습에 관한 책은 매우 많아 선택의 폭이 넓다. 대부분의 책은 수학적으로 설명되어 있으며, 알고리즘을 어떻게 프로그래밍하는지는 자세히 소개하지 않았 다. 이 책은 행렬 형태로 존재하는 알고리즘부터 실제로 동작하는 프로그램까지 다리를 놓는 것을 목표로 한다. 중요한 것은 이 책은 코드 측면에서는 무겁고, 수학적 측면에서는 가볍다 는 것이다. 대상 독자 여기서 다루는 모든 기계 학습 방법은 무엇이며, 누구에게 필요한가? 간단히 말해, 기계 학습은 데이터의 의미를 만드는 것이다. 따라서 만약 당신이 이해하고자 하는 데이터를 가지 고 있다면, 이 책은 당신을 위한 것이다. 만약 당신이 데이터를 얻어 그것의 의미를 만들어 내기를 원한다면, 이 역시 당신을 위한 책이다. 당신이 반복되는 처리 같은 약간의 기초적인 프로그램 개념과 트리(tree) 같은 간단한 데이터 구조를 알고 있다면, 이 책은 당신을 도와줄 것이다. 이 책을 습득하는 데 있어 선형대수학(linear algebra)과 확률(probability) 분야에 대한 전문 지식은 필요하지 않으나, 만약 당신이 선형대수학과 확률에 대한 기초 지식이 있다면, 이 또한 도움이 될 것이다. 마지막으로, 이 책은 과거에 실행 가능한 의사 코드 (executable pseudo code) 라고 불렸던 파이썬(Python)을 사용하며, 당신이 파이썬에 대한 기본적인 조작 방법을 알고 있다고 가정한다. 만일 당신이 파이썬에 대한 전문가가 아니라도 걱정하지 말자. 파이썬을 익히는 것은 어렵지 않다. xxiii

24 데이터 마이닝의 상위 10가지 알고리즘 데이터와 데이터 기반 결정(data based decisions)을 만드는 것은 중요하 다. 이 책의 개념 역시 데이터로부터 생겨난 것이다. 이 내용은 데이터 마이닝의 상위 10가지 알고리즘(Top 10 Algorithms in Data Mining) 이 라는 제목의 논문에서 다루고 있으며, 이 논문은 데이터 마이닝 국제 학회인 IEEE에 제출되어 2007년 12월, 지식 및 정보 시스템 잡지(Journal of Knowledge and Information Systems)에 출간되었다. 이 논문은 KDD 학회에 상위 10개의 기계 학습 알고리즘을 제시하였고, 이에 수상한 논문 이다. 이 책의 일반적인 개요는 이 논문에서 확인된 알고리즘들을 따른다. 눈치가 빠른 독자라면, 논문에서 다룬 알고리즘은 10개인데 이 책은 15개 장으로 되어있다는 것을 알아챘을 것이다. 그 이유에 대해서는 나중에 설명하겠지만, 먼저 상위 10개의 알고리즘이 무엇인지 알아보도록 하자. 이 논문에 있는 알고리즘의 목록은 C4.5(trees), k 평균(k means), 지지 벡터 머신(support vector machines), 어프라이어리(Apriori), 기대 극대화(Expectation Maximization), 페이지랭크(PageRank), 에이다부스트(AdaBoost), k 최근 접(k Nearest Neighbors), 나이브 베이스(Naïve Bayes), 카트(CART)이다. 이 10개의 알고리즘 중 이 책에서는 8개의 알고리즘을 소개하였으며, 제외된 것은 페이지랭크와 기대 극대화이다. 페이지랭크 알고리즘은 구 글(Google)이 출시한 것으로, 많은 책에서 설명하고 있기 때문에 포함하 지 않았다. 전적으로 페이지랭크만을 다루는 책도 있다. 기대 극대화(EM) 는 이 책에서 다루고 싶었으나 불행히도 아직 그러지 못했다. EM의 중요 한 문제는 수학적으로 매우 무겁다는 것인데, 이를 간단한 버전으로 줄이 면 이 책에 소개하는 다른 알고리즘과 유사해져 하나의 장으로 다루기에 부족하다고 느꼈다. xiv

25 이 책에 대하여 이 책은 어떻게 구성되었나? 이 책은 네 개의 부와 15개의 장 그리고 네 개의 부록으로 구성되어 있다. 1부 기계 학습 기초 이 책에서 다루는 알고리즘은 위 논문과 같은 순서대로는 나오지 않으며, 소개부터 시작한다. 1부에 있는 여섯 개의 장은 분류(classification)의 하위 주제로 아이템에 분류 항목 표시를 붙이는 과정이다. 2장에서는 기본적인 기계 학습 알고리즘인 k 최근접(k Nearest Neighbors)을 소개한다. 3장은 의사결정 트리(decision tree)가 등장하는 첫 번째 장이다. 4장에서는 분류와 나이브 베이스(Naïve Bayes) 알고리즘을 다루기 위해서 확률 분포(probability distributions)에 관해 논한다. 5장에서는 로지스틱 회귀분석(Logistic Regression)을 소개한다. 이것은 상위 10개의 목록에는 없지만 최적화(optimization) 알고리즘의 하위 주제를 소개하는 데 중요하 다. 5장 끝 부분에서 누락된 값이 있는 데이터를 처리하기 위한 방법에 대하여 논한다. 6장에서 는 강력한 지지 벡터 머신(Support Vector Machines)에 관해 논한다. 마지막으로, 7장에서는 에이다부스트 앙상블(AdaBoost ensemble) 방법을 보면서 분류에 대한 논의를 결론짓는다. 또, 훈련 예제가 고르게 분포되지 못한 분류 불균형 문제를 다룬다. 2부 회귀 분석을 이용한 수치형 값 예측 2부는 두 개의 장으로 구성되며, 회귀분석이나 연속형 값을 예측하는 것에 관해 논한다. 8장은 회귀분석, 수축 방법(shrinkage methods), 위치적 가중치 선형 회귀분석(locally weighted linear regression)에 대해 이야기하며, 추가적으로 성향 변화량 거래(bias variance tradeoff)에 대해 다룬다. 이는 기계 학습 알고리즘을 훈련할 때 참고해야 하는 부분으로 9장과 연결되며, 9장에서는 트리 기반 회귀분석(tree ased regression)과 카트(CART) 알고리 즘에 대해서 논한다. 3부 비지도 학습 1, 2부에서는 지도 학습(supervised learning)에 초점을 두었으며, 이는 목적 값(target value) 을 가지고 있다고 가정하거나 무엇을 찾아야 하는지 알고 있는 경우에 사용되는 방법이다. xxv

26 3부에서는 비지도 학습 이라고 하는 새로운 주제에 관해 이야기한다. 여기서 당신은 무엇을 찾아야 하는지 모른다. 대신에 이 데이터들은 어 떠한 공통점이 있는가? 라는 물음을 기계에 던진다. 첫 번째로 논의할 알고리즘은 k 평균 군집화(k Means clustering)이다. 다음에는 어프라이 어리(Apriori) 알고리즘으로 연관 분석(association anslysis)에 대해 살펴 본다. 12장은 FP 성장(FP Growth)이라고 하는 연관규칙 분석의 개선된 알고리즘을 살펴봄으로써 비지도 학습에 대한 논의를 결론짓는다. 4부 추가적인 도구 이 책은 기계 학습에 사용되는 몇 가지 추가적인 도구를 살펴봄으로써 끝을 맺는다. 13장과 14장에 나오는 첫 번째와 두 번째 도구는 데이터로 부터 불필요한 값(noise)을 제거하기 위해 수학적 연산을 사용한다. 이것 들은 중요한 요소를 분석하고 단일 값으로 분해한다. 마지막으로, 하나의 간단한 기계로 접근하는 것이 충분하지 못한 거대한 데이터 집합(dataset) 을 위해 기계 학습의 크기를 변경하는 데 사용되는 도구에 대하여 논한다. 예제 이 책에 포함됨 대부분의 예제는 현실 세계에서 여러분이 알고리즘을 어떻게 사용할 수 있는지를 보여준다. 우리는 어떠한 실수도 저지르지 않기 위해 다음 단계를 적용한다. 1. 매우 간단한 데이터를 가지고 작업의 개념을 잡는다. 2. 사용할 알고리즘에 맞는 형태로 실세계 데이터를 가져온다. 3. 실세계 데이터 집합에서 결과를 확인하기 위해 1, 2단계 모두를 가지고 실험한다. 3단계로 바로 넘어갈 수 없는 이유는 복잡한 시스템을 다루는 공학기술의 기본이다. 점진적으로 어떤 것을 만들기를 원한다면, 언제, 어디서, 왜 오류가 발생하는지를 이해해야만 한다. 만약 이것들을 모두 건너뛴다면, 알고리즘이 올바르게 수행되고 있는 것인지 또는 데이터의 형태가 올바 르게 되었는지를 알 수 없게 된다. 따라서 당신이 관심을 보일 만한 xxvi

27 이 책에 대하여 몇 가지 과거에 있었던 일을 기록에 포함한다. 코드 규약 및 다운로드 리스팅(listings)이나 텍스트로 존재하는 모든 소스 코드는 일반적인 텍스트와 구별하기 위해 고정폭 글꼴(fixed width font)로 표현한다. 코드 주석은 대부분 중요한 개념을 강조하기 위해 목록에 같이 나온다. 어떤 경우에는 중요한 목록 다음에 번호를 매겨 설명과 연결한다. 이 책에 나오는 예제의 소스 코드와 텍스트 파일은 Action에서 다운로드하여 이용할 수 있다. xxvii

28 표지 삽화에 대하여 이 책의 표지 그림은 이스트리아의 남자(Man from Istria) 다. 이스트리 아는 크로아티아 외곽 아드리아(Adriatic) 해에 있는 큰 반도이다. 이 삽화 는 2008년, 스플리트(Split)에 있는 민속 박물관(Ethnographic Museum) 에서 출간한 발타자르 헤케트의 서남 동부 웬다, 일리리아족, 슬라브족 에 대한 그림과 묘사(Images and Descriptions of Southwestern and Eastern Wenda, Illyrians, and Slavs) (재판본)에서 발췌하였다. 오스트리아의 의사이자 과학자였던 헤케트(1739~1815)는 다년간 식물학, 지질학, 민족학 등 오스트리아에 관해 연구하였으며, 베네토(Veneto), 줄 리안 알프스(Julian Alps), 서부 발칸(western Balkans) 등 과거 일리리아 부족의 흔적에 대해서도 연구하였다. 그가 손으로 그린 삽화는 많은 과학 논문과 책에 포함되었다. 헤케트의 출판물에 있는 그림의 풍부한 다양성은 200년 전의 동부 알프스 와 북서부 발칸 지역의 진귀함과 개성을 생생하게 이야기한다. 몇 마일을 사이에 두고 두 마을의 복장 규정이 서로 달랐을 때, 자신과 비슷한 복장 과 그렇지 않은 것으로 부족을 확인했다. 즉, 사회 집단이나 거래의 구성 원들은 무슨 옷을 입었는지에 의해 쉽게 구별될 수 있었다. 이후 복장 규정은 지역별로 다양하게 변하여 그들 특유의 확인 방법은 사라져버렸 다. 이제 이러한 것으로는 이 대륙 주민이다, 저 대륙 주민이다. 라고 말하기 어렵다. 오늘날 슬로베니아(Slovenian)의 알프스에 있는 그림 같 은 도시와 촌락의 주민이나, 발칸 반도 해안 도시의 주민은 유럽이나 미국 등의 다른 지역 주민들과 쉽게 구별되지 않는다. xxviii

29 표지 삽화에 대하여 매닝 출판사는 2세기 전 의상을 기반으로 한 삽화를 표지에 넣어 우리와 가까이 했으며, 컴퓨터 사업에 재미를 더하였다. 이와 같은 매닝 출판사의 독창성과 진취력에 찬사를 보낸다. xxix

30

31 Machine Learning in Action 제1부 분류 이 책의 1, 2부에서는 지도 학습(supervised learning) 방법에 대해 다룬다. 지도 학습에서는 데이터를 학습할 때 목적 변수를 명시해야만 하며, 이렇게 얻어진 목적 변수는 입력 데이터에서 패턴을 찾는 데 필요한 컴퓨터의 작업량을 줄인다. 우리는 목적 변수에 대한 두 가지 경우를 다루게 된다. 첫 번째는 목적 변수가 명목형 값을 가지는 경우로, 참 또는 거짓을 판별할 수 있는 파충류, 어류, 포유류, 양서류, 식물, 균류 등의 형태이다. 두 번째는 목적 변수가 한정되지 않은 수치형 값을 가지는 경우로, 0.100, , 등의 형태이다. 두 번째 경우를 회귀(regression)라고 부르며, 2부에서 공부하게 될 것이다. 1부에서는 첫 번째 목적 변수를 가지는 분류(Classification)를 중점적으로 다룬다. 우리가 공부할 분류 알고리즘은 이 책의 처음 일곱 개 장에 포함되어 있다. 2장에서는 k-최근접 이웃(K Nearest Neighbors)이라 불리는 간단한 분류 알고리즘을 소개하며, 이는 아이템을 분류하기 위해 거리 측정을 사용한다. 3장에서 는 2장보다 조금은 어렵지만, 의사결정 트리(decision trees)라는 알고리즘의 수행을 이해하기 쉽게 소개한다. 4장에서는 분류를 하는 데 있어 확률 이론(Probability theory)을 어떻게 사용할 수 있는지에 대해 다룰 것이며, 5장에서는 로지스틱 회귀(logistic regression)를 살펴볼 것이다. 여기서 우리는 데이터를 적절하게 분류하는 데 가장 좋은 매개변수를 찾는다. 그리고 가장 좋은 매개변수를 찾는 과정에서 강력한 최적화 알고리즘을 만나게 된다. 6장에서는 강력한 지지 벡터 머신(support vector machines)을 소개한다. 마지막으로 7장에서는 메타 알고리즘인 에이다부스트(AdaBoost)를 보게 될 것이다. 이는 여러 개의 분류기들을 한데 모은 하나의 분류기이다. 7장은 분류 불균형에 관한 부분과 함께 분류에 대한 1부의 결론을 내린다. 여기서 분류의 불균형이란, 어떤 분류 항목이 다른 분류 항목보다 더 많은 데이터를 가진다는 것을 의미하며, 이는 곧 현실적인 문제가 된다.

32

33 1장 기계 학습 기초 Machine Learning in Action 학습 목표 기계 학습의 간단한 개요 기계 학습의 주요 과제 기계 학습에 관해 배워야 하는 이유 파이썬이 기계 학습을 다루는 데 훌륭한 이유 내가 어떤 부부와 식사를 하고 있을 때, 그들이 내게 최근 무슨 일을 하고 있는지 물었다. 나는 기계 학습 이라고 대답했다. 아내는 남편에게 물었다. 여보, 기계 학습이 뭐예요? 남편은 싸이버다인 시스템(Cyberdyne Systems) T 800이야. 라고 대답했다. 만약에 당신이 터미네이터 란 영화를 잘 모른다면, T 800이 인공지능이라는 것을 전혀 알 수 없을 것이다. 그렇다고 이 책에서 우리는 컴퓨터 프로그램과 대화를 시도하지는 않으며, 삶의 의미도 물어 보지 않는다. 다만 여기서는 기계 학습을 이용하여 데이터에 대한 통찰력을 얻을 수 있게 한다. 즉, 컴퓨터를 사용하여 데이터에 대한 의미를 만들어 낼 것이다. 여기서 우리가 배우고 자 하는 것은 사이보그의 기계적 암기나 지각력이 있는 존재를 생성하는 것이 아니다. 기계 학습(machine learning)은 아마도 당신이 예상하는 것보다 더 많은 곳에서 활발하게 사용되고 있을 것이다. 당신은 가상의 어느 날, 여러 번 기계 학습을 만나게 될 것이다. 가령, 당신은 친구의 생일에 우편으로 카드를 보내고자 한다. 재미있는 카드를 검색하면, 검색 프로그램은 가장 관련이 있는 10개의 링크를 보여줄 것이고, 이 중 두 번째 링크를 클릭하면 검색 프로그램은 이러한 상황을 학습한다. 이메일을 살펴볼 때는 어떤가? 제약회사 광고처럼 당신에게 관심이 없는 메일은 스팸 필터에 의해 스팸 폴더로 보내지게 된다. 그러고 나서, 생일 카드를 사기 위해 가게에서 카드를 고르고, 친구의 아이를 위한 기저귀를 집어 든다. 당신이 고른 상품을 계산하려고 할 때, 점원은 당신에게 여섯 개들이 맥주 한 박스의 할인 쿠폰을 건네준다. 이는 기저귀를 구매하는 사람들이 맥주를 함께 구매하는 경향이 있기

34 4 1장 기계 학습 기초 때문에 금전 등록 프로그램이 생성한 쿠폰일 것이다. 이제 우체국에서 카드를 보내면, 기계는 적절한 배달 트럭으로 우편을 전달하기 위해 당신이 손으로 쓴 글씨를 인식한다. 그렇다면 대출을 받을 땐 어떤가? 당신은 여신 담당자에게로 가서 당신의 대출 가능 여부를 묻는다. 그러면 담당자는 컴퓨터로 당신에 관한 약간의 재정 정보를 살피고 대출을 결정하게 된다. 마지막으로, 늦은 밤 여흥을 즐기기 위해 카지노에 들린다. 당신이 입구로 들어갈 때, 보안 요원처럼 보이는 사람들이 갑자기 나타나 당신 뒤에서 들어오던 사람에게 접근한다. 그들은 그에게 죄송합니다. 쏠프씨, 카지노에서 나가주십시오. 트럼프 도박꾼은 들어올 수 없습니 다. 라고 말했다. 그림 1.1은 이렇게 사용되고 있는 몇 가지 프로그램을 보인 것이다. 그림 1.1 오늘날 수행되고 있는 기계 학습의 예. 왼쪽 위에서 시계방향으로 얼굴 인식, 필 기체 숫자 인식, 이메일 스팸 필터링, 아마존 닷컴(Amazon.com)의 제품 추천 앞에서 언급한 모든 시나리오에 기계 학습이 사용된다. 회사에서 사업의 의사결정을 개선하 거나 생산성을 높이기 위해, 또는 질병을 감지하고, 날씨를 예보하는 등 이미 많은 부분에서 기계 학습을 사용하고 있다. 기술의 기하급수적인 성장에 따라, 당신에게는 현재 가지고 있는 데이터를 이해하기 위한 더 좋은 도구가 있어야 하며, 우리가 얻을 수 있는 데이터를 이해하기 위한 우리 자신의 준비 또한 필요하다.

35 1.1 기계 학습이란 무엇인가? 5 기계 학습을 이해할 준비가 되었는가? 이번 장에서 당신은 기계 학습이 무엇인지 알게 될 것이며, 당신의 주변 어디에서 벌써 사용되고 있는지, 미래에 당신을 어떻게 도울 수 있는지 알게 될 것이다. 그런 다음, 기계 학습을 가지고 문제를 해결하기 위한 몇 가지 일반적인 접근 방식에 대해 논의할 것이다. 마지막으로, 왜 파이썬이 기계 학습을 다루는 데 훌륭한 언어인지 알게 될 것이다. 게다가 우리는 NumPy라는 파이썬 모듈을 사용하여 아주 간단한 예제를 다룰 것이며, 여기서 당신은 개념과 행렬 계산을 다루게 될 것이다. 1.1 기계 학습이란 무엇인가? 대부분의 통찰력이나 지식은 가공되지 않은 원시 데이터(raw data)를 뚫어지게 살펴본다고 해서 얻어지는 것이 아니다. 예를 들어 스팸 메일을 잡아낼 때, 어떤 한 단어의 발생 여부만을 주시하는 것은 많은 도움이 되지 못한다. 하지만, 확실한 단어들의 발생 여부를 주시하는 것과 함께 이메일의 길이와 다른 요소들을 결합하여 사용한다면, 해당 이메일이 스팸인지 아닌지 훨씬 더 명확하게 알아낼 수 있다. 기계 학습은 데이터를 정보로 변환하는 것이다. 기계 학습은 컴퓨터 과학과 기술 그리고 통계학의 교차로에 놓여있으며, 때로는 다른 학문에 서 사용되기도 한다. 나중에 보면 알 수 있겠지만, 이것은 정치에서 지구과학까지 많은 분야 에서 응용될 수 있다. 이것은 다양한 문제들에 적용할 수 있는 도구이다. 데이터를 해석하고 실행해야 하는 분야에서 기계 학습 기술을 사용한다면 이득을 얻을 수 있다. 기계 학습은 통계학을 사용한다. 대부분의 사람들에게 통계학은 회사에서 그들의 제품이 얼마나 좋은지를 알아보기 위해 사용되는 소수만이 알고 있는 주제이다. (통계학 관련 베스트셀 러로 데럴 후프(Darrell Huff)의 How to Lie with Statistics 가 있다.) 그럼 왜 우리에게 통계학 이 필요한가? 공학기술은 문제를 해결하기 위해 과학적 방법을 적용하고 있다. 공학기술에서 통계학은 결정적 문제를 해결하기 위해 사용되며, 언제나 문제를 해결해 준다. 만약에 우리가 자판기를 제어하기 위한 소프트웨어 제작을 의뢰한다고 해 보자. 의뢰 내용은 다음과 같다. 이 자판기는 돈이 들어오거나 버튼을 누르는 것에 상관없이 항상 더 좋은 작업을 할 수 있어야 한다. 이러한 방식의 제작 의뢰에는 많은 문제가 있다. 무엇을 해결해야 하는지 알 수 없기 때문이다. 즉, 우리는 문제에 대해 충분히 알지 못하고 있거나 문제를 제대로 모델링하기에 충분한 연산 능력을 갖추지 못한 것이다. 이러한 문제를 해결하기 위해 통계학 이 필요하다. 일례로서, 아직까지 인간의 동기라는 문제를 모델링하는 것은 너무 어려운 과제이다.

36 6 1장 기계 학습 기초 사회과학에서는 60%가 옳은 경우 성공적인 것으로 간주한다. 만약, 사람이 행동하는 방법을 60% 정도 예측할 수 있다면 아주 잘한 것이다. 어떻게 이럴 수 있는가? 항상 옳아야 하지 않을까? 항상 올바른 것이 아니라면, 우리가 무엇인가 잘못하고 있다는 것을 의미하는 것은 아닐까? 완전하게 모델링할 수 없는 문제를 설명하기 위한 하나의 예를 들어보자. 인간은 자신의 행복을 극대화하기 위해 행동하지 않는가? 우리의 이러한 가정을 바탕으로 인간과 관련된 사건의 결과를 예측하는 것이 가능하지 않을까? 하지만, 사람을 행복하게 만드는 것은 개인 마다 큰 차이가 있기 때문에 이를 정의하기는 어렵다. 비록 인간이 자신의 행복을 극대화 하는 것에 관한 우리의 가정이 옳다고 하더라도 행복에 대한 정의가 너무 복잡하기 때문에 모델링을 할 수 없다. 또한, 인간의 행동에 관한 것 외에도 아직까지 다른 다양한 예들이 모델링하는 데 어려움을 겪고 있다. 이러한 문제를 해결하기 위하여 통계학 기반의 도구를 사용하는 것이 필요하다 센서 및 데이터 홍수 우리는 월드 와이드 웹(World Wide Web)으로부터 인간을 위해 생성된 엄청난 양의 데이터 를 가지게 되었으며, 최근에는 온라인을 사용하면서 인간을 위해 생성된 것이 아닌 기기들 간의 소통을 위해 생성된 데이터가 더 많아지게 되었다. 센서(sensor) 뒤에 감춰진 기술은 새로운 것이 아니지만 웹에서 이들 간의 연결은 새로운 것이었다. 아마도 이 책 출간 후 얼마 지나지 않아, 물리적 센서에 의해 생성되는 비동영상 데이터가 인터넷 통신량(traffic)의 20%를 차지할 것으로 추정된다. 주1 2) 다음은 열람이 자유로운 많은 자료를 근거로 작성된 예제로서, 데이터 정리가 필요하다. 1989년, 로머 프리에타(Loma Prieta) 지진은 북부 캘리포니아를 강타하여 63명이 사망하고 3,757명이 다쳤으며 수천 명이 집을 잃었다. 2010년, 비슷한 크기의 지진이 아이티 섬을 강타하여 23만 명 이상이 사망하였다. 로머 프리에타 지진 이후 얼마 지나지 않아, 저주파 자기장(low frequency magnetic field) 측정을 이용한 지진 예언을 주장하는 연구가 발표되었다. 주2 3)그 뒤 많은 후속 연구들은 다양 주1 주2 Fraser-Smith et al., Low-frequency magnetic field measurements near the epicenter of the Ms 7.1 Loma Prieta earthquake, Geophysical Research Letters 17, no. 9 (August 1990),

37 1.1 기계 학습이란 무엇인가? 7 한 이유로 원래의 연구에 결함이 있다고 발표하였다. 주3, 주4 우리가 이 연구를 다시 진행한다고 가정하고 지진을 예측하기 위한 방법을 계속해서 찾는다면, 끔직한 결과를 피할 수도 있을 것이며 우리의 행성을 더 잘 이해할 수 있게 될 것이다. 무엇이 이 연구에 가장 좋은 방법인가? 우리는 돈을 들여 자기탐지기(magnetometer)를 구매하거나 그곳의 땅을 조금 살 수도 있다. 또, 돈과 자기탐지기를 설치할 곳의 땅을 주고 정부에 도움을 요청할 수도 있다. 그렇다면 누가 자기탐지기를 설치하러 갈 것이며, 어떻게 자기탐지기를 판독할 것인가? 여기에 비용이 저렴한 다른 해결책이 있다. 4)5) 요즘은 3축 자기탐지기가 설치된 모바일 폰이나 스마트폰을 구입할 수 있다. 스마트폰은 운영체제를 가지고 있으며 개인 프로그램을 실행시킬 수 있다. 따라서, 몇 개의 코드 라인을 가지고 자기탐지기에서 발생하는 초당 수백 개의 데이터를 판독하는 것이 가능하다. 또, 휴대폰은 이미 자체적으로 통신 시스템이 설치되어 있다. 따라서 사람들이 당신이 만든 프로 그램을 설치하고 실행할 수 있도록 확산시키는 것이 가능하다면, 당신은 매우 적은 투자로 많은 양의 자기탐지 데이터를 얻을 수 있다. 스마트폰은 자기탐지기 외에도 요레이트 자이로 (yaw rate gyros) 센서, 3축 가속도(three axis accelerometers) 센서, 온도(temperature) 센서, GPS 수신기(GPS receivers) 등 다른 센서의 데이터도 대량으로 운반한다. 모바일 컴퓨팅 과 센서 생성 데이터(sensor generated data) 라는 두 가지 동향은 미래에 우리가 다량의 데이터를 가지게 될 것이라는 것을 의미한다 기계 학습은 점점 더 중요해질 것이다 20세기 후반 50년이라는 기간 동안, 기술 발전으로 세상이 급변하면서 노동자의 과반수 이상이 육체 노동에서 지식 노동(knowledge work)으로 이동하였다. 이것을 저기로 옮겨, 여기에 구덩이를 파라 처럼 명료한 일의 정의는 사라지고, 모호한 일들이 일반화되었다. 이제는 이익 최대화, 손실 최소화, 최상의 영업방법 찾기 같이 일을 배정하는 것이 모두에 게 더욱더 일반적이다. 월드 와이드 웹에서 사용 가능한 물밀듯이 밀려오는 정보들은 지식 근로자의 일을 더욱 어렵게 하고 있다. 이러한 관심 속에서 모든 데이터를 이해하는 일은 구글의 최고 경제 전문가인 핼 베어리언(Hal Varian)이 말한 것처럼 더욱 더 중요한 기술이 되고 있다. 주3 W. H. Campbell, "Natural magnetic disturbance fields, not precursors, preceding the Loma Prieta earthquake," Journal of Geophysical Research 114, A05307, doi: /2008ja (2009). 주4 J. N. Thomas, J. J. Love, and M. J. S. Johnston, On the reported magnetic precursor of the 1989 Loma Prieta earthquake, Physics of the Earth and Planetary Interiors 173, no. 3 4 (2009),

38 8 1장 기계 학습 기초 나는 앞으로 10년 동안 통계학자가 매력적인 직업이 될 것이라고 생각한다. 사람들은 내가 농담을 한다고 할 것이다. 과연 1990년대의 컴퓨터 기술자가 다시 매력적인 직업을 가지게 될 것이라고 누가 추측이나 하겠는가? 데이터를 얻고, 이해하고, 처리하고, 데이터에서 가치를 추출하고, 시각화하고, 전송하는 것과 같은 능력은 앞으로 10년 안에 아주 중요한 기술이 될 것이다. 전문적인 수준뿐만 아니라 초 중 고 대학교 학생들이 배우는 수준까지도 그리 될 것이다. 왜냐하면 오늘날 데이터는 기본적으로 무료이면서 실제로 언제 어디서나 찾아볼 수 있기 때문이다. 그런데 여기서 부족한 것은 데이터와 데이터로부터 추출된 값을 상호 보완적으로 이해하는 능력이다. 나는 통계학이 바로 이러한 부분을 담당하는 분야라고 생각한 다. 당신 역시 데이터를 시각화하고 전달하는 등 데이터를 효과적으로 활용할 수 있어야 한다. 데이터에 접근하고 이해하고 전송하는 등의 기술은 데이터 분석을 통해 얻어지는 것이 므로 이러한 통찰력은 매우 중요한 기술이 될 것이다. 그렇기 때문에 관리자는 스스로 데이터 에 접근하고 이해하는 능력이 있어야만 한다 년 1월, <맥킨지(Mckinsey Quarterly)>에서 이렇게 정보에 의존적인 수많은 경제활동 속에서 데이터에만 빠져 있을 여유가 없다. 바로 기계 학습이 모든 데이터에 대하여 정보를 추출할 수 있도록 도움을 줄 것이다. 이 책을 통해 우리는 기계 학습에서 일반적으로 표현하는 몇몇 어휘에 대하여 명확하게 집고 넘어갈 필요가 있다. 1.2 주요 전문용어 기계 학습 알고리즘을 다루기 전에 몇몇 전문용어를 먼저 설명하는 것이 더 좋을 것이다. 설명을 하기에 가장 좋은 방법은 만들고자 하는 가상의 시스템을 예로 들어 설명하는 것이다. 여기서 우리는 새 분류 시스템을 만드는 예를 가지고 설명하고자 한다. 여기에서 다루고자 하는 시스템의 종류는 종종 기계 학습 분야에서 전문가 시스템(expert system)이라고 불리는 것으로 흥미로운 주제이다. 새를 인식하기 위한 컴퓨터 프로그램을 만듦으로써, 컴퓨터로 조류학자를 대신할 수 있게 된다. 조류학자는 새에 관한 전문가이며 우리는 이러한 전문가 시스템을 만들기로 한다. 표 1.1은 여러 종류의 새에 대하여 네 가지 항목을 측정한 것이다. 측정한 네 가지 항목은 무게, 날개의 길이, 물갈퀴 존재 유무, 등의 색상이다. 실질적으로는 이것보다 더 많은 것이 측정되어야 하지만, 여기서는 중요하지 않다. 여기서 다루려는 것은 측정하고 정렬할 수

39 1.2 주요 전문용어 9 있는 거의 모든 것에 대한 일반적인 연습일 뿐이다. 여기서 측정한 네 가지를 속성(features)또 는 특성(attributes)이라고 하며, 이 책에서는 속성이라는 용어를 사용할 것이다. 표 1.1에서 각각의 열은 속성들로 구성된 사례들이다. 표 1.1 네 가지 속성을 기반으로 한 새의 종 분류 무게(g) 날개 길이(cm) 물갈퀴 등의 색상 종 없음 갈색 Buteo jamaicensis 없음 회색 Sagittarius serpentarius 없음 회색 Sagittarius serpentarius 있음 검정색 Gavia immer 없음 녹색 Calothorax lucifer 없음 검정색 Campephilus principalis 표 1.1에서 처음 두 개의 속성은 수치형(numeric)이며 십진수 값을 갖는다. 세 번째 속성(물갈 퀴 존재 유무)은 이진수로 0 또는 1을 갖는다. 네 번째 속성(등의 색상)은 색상표의 목록 중 가장 일반적인 색상을 선택해서 사용했다. 이는 사람들에게 일곱 개의 색상 중 하나를 선택하 여 측정하도록 한 것이며, 따라서 등의 색상은 곧 정수가 된다. (나는 하나의 색상으로 새의 등 색상을 표현하는 것이 무리한 선택이라는 것을 알고 있으나, 이것은 설명을 위한 것임을 이해해 주기 바란다.) 만약 아이보리색 부리를 가진 딱따구리를 발견한다면 가능한 빨리 나에게 전화를 주기 바란 다. 새에게서 눈을 떼지 말고 내가 그 곳으로 갈 때까지 그것을 보았다고 아무에게도 말하지 말고, 꼭 나에게만 전화해 주기를 바란다. (살아있는 아이보리색 부리를 가진 딱따구리를 생물학자 에게 인도하면 보상으로 $50,000를 받게 된다.) 분류(classification)는 기계 학습에서 다루는 하나의 과제이며, 표 1.1을 사용하여 설명할 것이 다. 그리고 아이보리색 부리를 가진 딱따구리에 관한 정보로 $50,000를 주는 것은 사실 우리이다. 우리는 다른 새 무리 이외에 이러한 새를 찾기를 원하고 있으며, 이것으로부터 이득을 얻기를 원한다. 여러분들이 아이보리색 부리를 가진 딱따구리를 보고 우리에게 전화 를 주면, 우리는 새의 먹이통을 설치한 다음 그것을 보기 위해 조류학자를 고용한다. 사람은 한 번에 한 장소에만 있을 수 있기 때문에 이 방법은 비용이 많이 든다. 이 작업 역시 자동으로 할 수 있다. 즉, 카메라를 부착한 새 먹이통을 많이 설치하고 그곳에 컴퓨터를 설치하면 그곳으로 오는 새들을 확인할 수 있다. 그리고 새의 먹이통 안에 측정 장치를 넣어 새의

40 10 1장 기계 학습 기초 무게를 얻을 수 있으며, 컴퓨터 영상 코드를 이용해 새의 날개 길이, 발의 형태, 등의 색상 등을 추출하여 기록할 수 있다. 우리는 이러한 순간을 포착하기 위한 모든 정보를 가지고 있다. 그렇다면, 먹이통 안에 있는 새가 아이보리색 부리를 가진 딱따구리인지 어떻게 구분할 수 있을까? 이 과제를 분류라고 하며, 분류에 좋은 많은 기계 학습 알고리즘이 있다. 이 예제에서의 분류 항목은 새의 종류이다. 더 명확하게 아이보리색 부리를 가진 딱따구리와 다른 모든 새로 분류 항목을 줄일 수도 있다. 말하자면, 기계 학습 알고리즘에서는 분류를 사용하여 결정하게 된다는 것이다. 다음에 해야 할 것은 알고리즘을 훈련하거나 이를 배우는 것이다. 알고리즘을 훈련하기 위해 훈련 집합 (training set)이라고 알려진 양질의 데이터가 주어진다. 훈련 집합이란 예제를 훈련하기 위한 집합으로 기계 학습 알고리즘을 훈련하는 데 사용될 것이다. 표 1.1에서 우리의 훈련 집합은 여섯 개의 훈련 예제(training examples)를 가지고 있다. 각각의 훈련 예제는 네 개의 속성과 하나의 목적 변수(target variable)를 가지며 이를 그림 1.2에서 묘사하고 있다. 목적 변수는 기계 학습 알고리즘을 가지고 예측을 하고자 하는 것이다. 분류에서 목적 변수는 명목형 값을 가지며, 회귀(regression)에서 목적 변수는 계속 되풀이될 수 있다. 훈련 집합 내에 목적 변수는 이미 알려져 있다. 기계 학습은 속성과 목적 변수 간에 관계를 찾고자 하는 것이다. 목적 변수는 앞에서 언급한 것처럼 새의 종류이며 이를 명목형 값으로 변경하여 데이터의 크기를 줄일 수 있다. 분류 문제에서 목적 변수를 분류 항목이라고 하며 분류 항목의 한정된 수를 추정한다. 주의 훈련 예제를 구성할 때에는 다른 속성들과 함께 결합하여 만들게 된다. 그래서 속성이나 특성은 개별 적으로 측정한다. 이것은 보통 훈련 집합이나 검사 집합에서 칼럼(columns)에 해당한다. 무게 날개 길이 발갈퀴 등 색상 종 없음 갈색 없음 회색 속성 목적 변수 그림 1.2 속성과 목적 변수의 구분

41 1.3 기계 학습의 주요 기술 11 기계 학습 알고리즘을 검사하기 위해서는 보통 데이터의 훈련 집합과 검사 집합(test set)이라고 불리는 따로 분리된 데이터 집합이 사용된다. 처음 기계 학습을 진행할 때, 훈련 예제를 먼저 프로그램에 넣는다. 그런 다음 검사 집합을 프로그램에 넣는다. 프로그램을 실행할 때 검사 집합에 있는 각각의 예제에는 목적 변수가 주어지지 않으며, 프로그램이 각 예제가 어떤 분류 항목에 속하는지 결정하게 된다. 목적 변수나 분류 항목은 훈련 예제에 있으므로 예측 값을 서로 비교할 수 있으며, 이를 통해 알고리즘이 얼마나 정확한지 짐작할 수 있게 된다. 검사 집합과 훈련 집합을 모두 사용하는 것이 좋으며, 이에 대해서는 나중에 다루기로 한다. 새를 분류하는 예제에서 추측컨대 프로그램은 정확하게 우리가 원하는 수준을 만족하도록 검사하게 될 것이다. 우리는 기계가 학습한 것을 볼 수 있을까? 이것을 지식 표현(knowledge representation)이라고 한다. 물음에 대한 답은 이 지식 표현이라고 하는 것에 의해 표현된다. 지식 표현을 하는 어떤 알고리즘은 다른 알고리즘보다 사람이 더 잘 이해할 수 있도록 한다. 지식 표현은 규칙의 집합, 즉 확률 분포나 훈련 집합에 있는 예제의 형태를 띤다. 어떤 경우에는 지식 표현에 관심을 갖지 않을 수도 있지만, 전문가 시스템을 구축하는 경우에는 지식 표현에 관심을 둔다. 이러한 지식 표현은 기계 학습 알고리즘을 훈련함으로써 습득되는 것이다. 기계 학습에는 중요하게 다루어야 할 많은 요소들이 있지만, 여기서 이 모든 것을 다루지는 않는다. 더 중요한 요소는 마지막 장에서 소개할 것이다. 지금은 기계 학습을 가지고 무엇을 할 수 있는지에 대하여 다룰 것이다. 1.3 기계 학습의 주요 기술 이 부분에서는 기계 학습의 주요 기술과 기본 구조를 설정하는 것에 대해 요약할 것이며, 기계 학습 알고리즘을 쉽게 이해할 수 있도록 견고한 응용 프로그램 작업을 수행하게 될 것이다. 예제는 이전에 분류 작업을 위해 설명했던 것을 포함한다. 여기서 하고자 하는 것은 데이터의 사례가 어떤 분류 항목에 속하는지 예측하는 것이다. 기계 학습에는 또 다른 학습 방법으로 회귀가 있다. 회귀는 수치형 값으로 예측한다. 아마도 대부분의 사람들은 특정 데이터 지점을 기반으로 데이터 지점을 일반화할 수 있는 가장 적합한 선을 그리는 회기의 예를 본 적이 있을 것이다. 분류와 회귀는 둘 다 지도 학습(supervised learning) 방법이다. 문제에 대한 이러한 설정이 지도라고 알려지게 된 이유는 알고리즘에 무엇을 예측할 것인지를 제공하기 때문이다.

42 12 1장 기계 학습 기초 지도 학습의 반대는 비지도 학습(unsupervised learning)으로 이 학습 방법은 주어진 데이터에 분류 항목 표시나 목적 변수가 없다. 비지도 학습 방법에는 유사한 아이템들을 함께 모으는 군집화(clustering) 방법과 통계적인 방법을 사용하여 값을 찾는 밀도 추정(density estimation) 방법이 있으며, 속성이 많은 데이터를 적은 수의 속성으로 줄이거나, 이를 통해 둘 또는 세 개의 관점으로 데이터를 적절하게 그려보는 방법을 사용하기도 한다. 표 1.2는 기계 학습 에서 일반적으로 사용되는 방법과 그에 따른 알고리즘을 정리한 목록이다. 표 1.2 분류, 회귀, 군집, 밀도 추정을 수행하기 위한 일반적인 알고리즘 지도 학습 방법 분류(Classification) k-최근접 이웃(k-Nearest Neighbors) 나이브 베이스(Naive Bayes) 지지 벡터 머신(Support vector machines) 의사결정 트리(Decision trees) 회귀(Regression) 선형 회귀(Linear) 지역적 가중치가 부여된 선형 회귀 (Locally weighted linear) 리지(Ridge) 라쏘(Lasso) 비지도 학습 방법 군집화(Clustering) k-평균(k-means) 디비스캔(DBSCAN) 밀도 추정(Density estimation) 기대 극대화(Expectation maximization) 파젠 윈도우(Parzen window) 그런데, 표 1.2에 있는 여러 가지 기술이 모두 같은 문제를 해결하기 위한 방법이라는 것에 관심을 기울인다면, 여러분은 한 가지 의문을 갖게 될 것이다. 만약, 같은 것을 하고자 하는 것이라면, 왜 다른 방법이 네 개나 있어야 하는 걸까? 왜 단 하나의 방법만 선택할 수는 없는 것인가? 이러한 질문에 대해서는 다음 절에서 답변하기로 한다. 1.4 올바른 알고리즘 선정 방법 표 1.2에 있는 알고리즘 중에서 하나를 사용할 때, 과연 어떻게 선택해야 할까? 먼저, 목적을 고려해야 한다. 얻고자 하는 것을 위해 시도하려는 것이 무엇인가? (내일 비가 올 확률이 얼마나

43 1.4 올바른 알고리즘 선정 방법 13 되는지 궁금한가? 혹은 유사한 관심을 가진 유권자 집단을 찾기를 원하는가?) 현재 가지고 있거나 수집할 수 있는 데이터는 어떤 것인가? 이러한 것들에는 큰 의문이 있다. 지금부터 목적에 관해 이야기해 보도록 하자. 만약에 목적 값(target value)을 예측하거나 예견하려고 한다면 지도 학습 방법을 살펴보고, 그렇지 않다면 비지도 학습 방법을 살펴보라. 만약에 지도 학습 방법을 선택했다면 목적 값은 무엇인가? 예/아니오, 1/2/3, A/B/C, 빨강/노랑/검정 과 같이 이산적인 값인가? 그렇다면 분류 방법을 살펴보면 된다. 만약에 목적 값이 0.00~100.00, 999~999, + ~ 같은 수치 값이라면 회귀를 살펴봐야 한다. 만약에 목적 값 예측을 시도하려는 것이 아니라면 비지도 학습을 살펴봐야 한다. 가지고 있는 데이터가 어떤 이산적인 무리에 알맞은지를 알아보고자 하는 것인가? 그렇다면 군집화 를 살펴봐야 한다. 각각의 무리에 알맞은 정도가 어느 정도인지를 수치적으로 평가할 것인 가? 그렇다고 한다면 아마도 밀도 추청 알고리즘을 살펴봐야 할 것이다. 여기서 설명한 규칙은 올바른 방향을 설명한 것이기는 하지만 규칙은 깨지기도 한다. 9장에 서 지도 학습 범위 내에서 구별이 뚜렷하지 않은 회귀를 이용한 분류 기술을 어떻게 사용할 수 있는지 알아볼 것이다. 두 번째로, 보유하고 있는 데이터를 고려해야만 한다. 당신은 데이터를 파악하기 위해 얼마간의 시간을 보내게 될 것이며, 데이터에 대해 더 많은 것을 알아야만 성공적인 응용 프로그램을 구축할 수 있게 될 것이다. 데이터에 대해 알고자 하는 것은 다음과 같은 것이다. 속성이 명목형인가? 연속형인가? 속성 내에 누락된 값이 있는가? 만약, 누락된 값이 있다면 데이터 가 누락된 상황은 왜 존재하는가? 데이터 내에 오류 데이터(outlier)가 있는가? 건초 더미에서 바늘을 찾는 것처럼 매우 드물게 발생하는 어떠한 것이 존재하는가? 이처럼, 데이터 속성에 대한 모든 것은 알고리즘 선택 과정의 폭을 좁히는 데 도움을 준다. 알고리즘에 대한 선택의 폭이 좁아졌다고 해서 가장 좋은 알고리즘이 무엇인지, 어떤 알고리 즘이 가장 좋은 결과를 낼 수 있는지를 모두 알 수 있는 것은 아니다. 당신은 다양한 알고리즘 을 시도해야 할 것이며 그것이 어떻게 수행되는지 알아야 한다. 또 다른 기계 학습 기술은 기계 학습 알고리즘의 성능을 향상시키기 위해 사용될 수 있다. 이렇게 두 알고리즘 간의 성능을 비교하는 것은 입력 데이터(input data)를 처리한 후에 수행된다. 추후에 이것에 대해 더욱더 세밀하게 다루겠지만, 중요한 것은 반복되는 시행착오로 가장 좋은 알고리즘을 찾게 된다는 것이다.

44 14 1장 기계 학습 기초 대부분의 알고리즘은 서로 다르지만, 기계 학습 알고리즘이 구축될 때 모든 알고리즘이 꼭 해야만 하는 공통적인 단계도 있다. 이러한 단계는 다음 절에서 설명하기로 한다. 1.5 기계 학습 응용 프로그램 개발 단계 기계 학습을 이용한 응용 프로그램을 이해하고 개발하기 위한 우리의 접근은 다음과 같은 절차를 따르게 된다. 1. 데이터 수집: 웹 사이트에서 필요한 정보를 수집하거나 데이터를 추출함으로써 간단한 표본들을 모을 수 있으며, RSS로부터 또는 API를 이용하여 정보를 얻을 수도 있다. 풍속 측정이나 혈당량 또는 측정 가능한 것은 무엇이든 정보를 수집하고 전송하는 기기를 설치할 수 있다. 선택할 수 있는 것에는 끝이 없다. 시간과 노력을 절약하기 위해서 공개적으로 사용 가능한 데이터를 사용할 수도 있다. 2. 입력 데이터 준비: 당연하겠지만, 우리가 가지고 있는 데이터를 유용한 형식으로 만들 필요가 있다. 유용한 형식이란 이 책에서 사용하게 될 파이썬(Python)의 리스 트 형식을 말한다. 파이썬에 대해서는 좀 더 많은 이야기를 하게 될 것이며 리스트에 대해서는 부록 A에서 다시 다룬다. 이러한 표준 형식을 사용함으로써 알고리즘과 데이터를 혼합하고 연결하는 것이 가능해진다. 이번 단계에서는 알고리즘마다 다른 특유의 형식을 만들어야만 한다. 어떤 알고리 즘은 특별한 형식의 속성을 요구하기도 하며, 문자열처럼 목적 변수와 속성을 대응 시킬 수 있고, 또 어떤 경우는 속성이 정수가 되도록 해야 한다. 나중에 알게 되겠지 만, 알고리즘 특유의 형식을 만드는 것은 일반적으로 데이터를 수집하는 것에 비하 면 대수롭지 않은 일이다. 3. 입력 데이터 분석: 이 단계는 이전 작업을 바탕으로 데이터를 주의 깊게 보고자 하는 단계이다. 1, 2단계에서 데이터를 다수의 빈 값(empty values)이 없도록 확실하게 작업하기 위해서 문서 편집기(text editor)로 분석하였다면, 이러한 데이 터를 관찰하는 것은 매우 간단할 수도 있다. 만약 데이터의 어떤 패턴을 인지할 수 있거나 무엇에 관한 데이터인지 알고 있다면, 몇 가지 데이터 포인트가 나머지 다른 데이터 집합과 매우 다르다는 것을 알아볼 수 있을 것이다. 이런 판단은 하나,

45 1.5 기계 학습 응용 프로그램 개발 단계 15 둘 또는 세 개의 차원으로 구성된 데이터까지는 가능할 수 있다. 하지만 대부분의 경우 세 개보다 더 많은 속성을 가질 것이며, 따라서 한 번에 데이터를 모든 속성으 로 쉽게 구성할 수 없다. 그러나 우리는 다른 고급 방법을 사용할 수 있다. 앞으로 두세 단계 밑으로 내려가면서 다차원 데이터에 관해 이야기를 나누게 될 것이며 데이터도 볼 수 있게 될 것이다. 만일 제품을 생산하는 시스템을 가지고 작업을 할 경우, 데이터가 어떻게 보여야 하는지 알고 있고 그 데이터가 믿을 만한 것이라면 이번 단계를 건너뛸 수 있다. 이번 단계에서는 사람이 직접적으로 개입하게 되며, 사람이 개입하지 않는 자동화 시스템은 필요로 하지 않는다. 여기서 다루고자 하는 것은 불필요한 데이터란 없다 는 것을 이해하는 것이다. 4. 알고리즘 훈련: 이 단계는 기계 학습이 이루어지는 부분이다. 이번 단계와 다음 단계에서는 핵심 알고리즘들을 다룬다. 우리는 처음 두 단계에서 얻어진 잘 정제된 데이터를 알고리즘에 넣어 지식이나 정보를 추출한다. 이러한 지식은 종종 하나의 형식으로 저장되며 다음 두 단계에서 기계를 이용해 이를 손쉽게 사용하도록 한다. 비지도 학습의 경우 목적 값을 가지지 않기 때문에 훈련 단계가 없다. 이 단계에서 학습한 모든 것은 다음 단계에서 사용된다. 5. 알고리즘 테스트: 이 단계는 이전 단계에서 학습된 정보를 사용하는 단계이다. 알고 리즘을 평가하는 것은 훈련이 얼마나 잘 되었는지 알아보기 위해 학습된 정보를 테스트하는 것이다. 지도 학습의 경우에는 알고리즘을 평가하는 데 사용할 수 있는 몇 가지 알려진 값을 가진다. 비지도 학습의 경우에는 성공 여부를 평가하기 위해 다른 통계를 사용하게 될 것이다. 두 경우 중 어떤 것도 만족스럽지 못하다면, 네 번째 단계로 돌아가 몇 가지를 변경하고 다시 테스트를 시도할 수 있다. 종종 데이터를 수집하고 준비하는 과정에 문제가 있기도 하며, 이러한 경우에는 1단계 로 돌아가야 한다. 6. 사용하기: 여기서는 몇 가지 작업을 위해 실질적인 프로그램을 만들고 이전의 모든 단계가 예상했던 것처럼 진행되었는지 다시 한번 살펴본다. 몇 가지 새로운 데이터 를 적용하여 1~5단계를 다시 살펴보아야만 한다.

46 16 1장 기계 학습 기초 이제부터 기계 학습 응용 프로그램을 수행하기 위한 언어에 대해 이야기할 것이다. 우리는 폭 넓은 범위의 사람들이 이해할 수 있는 언어가 필요하다. 그리고 행렬 수학 연산과 같은 특별한 작업이 작성된 라이브러리를 가진 언어도 필요하다. 또한 개발자들이 활발하게 활동 하고 있는 커뮤니티를 가진 언어가 있었으면 한다. 파이썬은 이러한 조건들을 만족한다. 1.6 왜 파이썬인가? 파이썬은 기계 학습을 위한 훌륭한 언어이다. 파이썬은 깔끔한 문법을 가지고 있으며, 텍스트 를 조작하는 것이 매우 쉽다. 또한, 많은 사람과 다수의 단체에서 파이썬을 사용하고 있기 때문에 충분히 많은 개발 프로그램과 설명서가 있다 실행 가능한 의사코드 파이썬은 깔끔한 문법 덕분에 실행 가능한 의사코드(executable pseudo-code)라는 이름을 얻게 되었다. 파이썬은 기본 설치만 해도 이미 리스트(lists), 투플(tuples), 딕셔너리(dictionaries), 집합(sets), 큐(queues) 등과 같은 높은 수준의 데이터 형태를 포함하므로, 이를 위한 별도의 프로그램을 만들 필요가 없다. 이러한 높은 수준의 데이터 형태는 추상적인 개념을 수행하기 쉽게 만든다. (파이썬과 데이터 형태 그리고 설치 방법에 대한 모든 사항은 부록 A를 보라.) 우리는 파이썬을 가지고 객체 지향(object oriented), 절차적(procedural), 기능적(functional) 형태 등 우리에게 익숙한 어떠한 형태로도 프로그램이 가능하다. 파이썬은 텍스트를 조작하거나 처리하기 쉬우며, 수치형이 아닌 데이터를 처리하는 데 이상 적이다. 정규 표현(regular expression) 사용이 거의 없는 경우에도 파이썬으로 처리할 수 있다. 파이썬은 웹페이지를 처리하기 위한 많은 라이브러리를 가지고 있으며, 직관적인 텍스 트 조작으로 HTML로부터 데이터를 쉽게 추출할 수 있다 인기 좋은 파이썬 파이썬은 인기가 좋기 때문에 많은 예제를 사용할 수 있고, 빠르게 배울 수 있다. 인기가 좋다는 것은 다양한 응용 프로그램을 위해 사용 가능한 모듈이 많다는 것을 의미한다. 뿐만 아니라, 파이썬은 과학 분야와 금융 분야에서도 인기가 좋다. SciPy나 NumPy 같은 많은 과학 라이브러리는 벡터와 행렬 처리를 가능하게 한다. 이것은 더욱더 읽기 쉬운 코드를

47 1.6 왜 파이썬인가? 17 만들고 선형대수학처럼 보이는 코드를 작성할 수 있게 한다. 추가적으로, 과학 라이브러리인 SciPy와 NumPy는 연산 속도를 높이기 위해 C와 포트란(Fortran) 같은 저급 언어를 사용하 여 컴파일한다. 이 책에서는 NumPy를 주로 사용할 것이다. 파이썬에서는 과학적인 도구로 매스플롯라이브러리(Matplotlib)라고 불리는 플로팅 툴 (plotting tool)을 사용한다. 매스플롯라이브러리는 2D 및 3D로 도표를 그릴 수 있으며 과학 분야에서 흔히 사용되는 대부분의 도표 형태를 다룰 수 있다. 이 책에서도 매스플롯라이브러 리를 사용하게 될 것이다. 또한 파이썬은 대화형 쉘(interactive shell)을 가지고 있으며, 이것으로 개발 중인 프로그램 요소들을 확인하고 검사하는 데 사용한다. Pylab이라고 불리는 파이썬의 새로운 모듈은 NumPy, SciPy, 매스플롯라이브러리를 하나 의 환경으로 결합하고자 한 것이다. 집필 당시 이것은 아직 완성되지 않았지만 전망은 밝다 장점 이것은 매틀랩(MATLAB)과 매스플롯라이브러리처럼 행렬 수학을 처리할 수 있는 높은 수준 의 언어이다. 매틀랩은 기계 학습을 더 쉽게 만드는 많은 기능을 가지고 있으며, 매우 빠르다. 하지만, 매틀랩을 사용하기 위해서는 법률적으로 수천 달러의 비용이 소비된다는 문제가 있다. 다른 회사의 프로그램들도 매틀랩을 애드온(add on)할 수는 있지만, 소스 프로젝트가 개방되어 있는 프로그램은 거의 없다. Java와 C 같은 낮은 수준의 언어 역시 행렬 수학 라이브러리를 가지고 있다. 이러한 언어가 가진 문제는 간단한 일을 처리하기 위해 너무 많은 코드를 작성해야 한다는 것이다. 고정 변수를 선정해야 하며, 이를 위해 Java에서는 사용할 때마다 setter와 getter를 작성해야 한다. 이러한 하위 클래스(subclass) 선언을 잊어서는 안 되며, 이 프로그램들은 사용하지 않을 때조차도 이 메소드를 하위 클래스로 선언해야만 한다. 밤까지 때로는 지루하게 간단한 것을 처리하기 위해 많은 코드를 작성해야 한다. 파이썬의 경우에는 그렇지 않다. 파이썬은 읽기에 명확하고 간결하며 쉽다. 또한 프로그래머가 아닌 일반 사람이 다루기에도 쉽다. Java와 C는 다루기 쉽지 않으며 파이썬보다 훨씬 더 복잡하다.

48 18 1장 기계 학습 기초 우리는 누구나 2학년 때 쓰기를 배운다. 우리 대부분은 더 큰 것을 위해 나아간다. -바비 나이트(Bobby knight) 언젠가는 위 문장의 쓰기 가 코드 쓰기 로 바뀔 수도 있다. 어떤 사람들은 정말로 프로그램 을 코딩하는 것을 좋아한다. 하지만 대부분의 사람들에게 프로그램을 코딩하는 것은 단순히 몇 가지 다른 작업을 수행하는 도구일 뿐이다. 파이썬은 높은 수준의 언어이므로, 데이터의 정확도가 어느 정도인지 따지는 시간을 줄이고 데이터를 분석하는 데 더 많은 시간을 보낼 수 있도록 한다. 파이썬은 별다른 노력 없이 사용자가 하고자 하는 것을 쉽게 표현할 수 있도록 해준다 단점 파이썬의 유일한 단점은 Java나 C처럼 빠르지 못하다는 것이다. 파이썬에서는 C로 컴파일된 프로그램을 불러올 수 있는데, 이 방법은 두 언어의 장점을 가지고 점진적으로 향상된 프로그 램을 개발하도록 한다. 즉, 파이썬에서 생각한 것을 실험하고 생성 시스템(production system)에서 하고자 하는 것이 무엇인지 결정한다면, 향상된 프로그램을 쉽게 만들 수 있다. 따라서 이러한 프로그램이 모듈의 형태로 되어 있다면, 우선적으로 우리는 이것을 구하여 파이썬에서 실행해 볼 수 있다. 그런 다음 속도를 향상시키기 위해 C에서 해당 코드 부분을 구축하기 시작한다. 부스트(Boost) C++ 라이브러리는 이 작업을 쉽게 할 수 있도록 한다. 이외에 일반 파이썬보다 더 좋은 성능을 위해 파이썬의 형태로 작성할 수 있는 싸이썬 (Cython)과 파이파이(PyPy) 같은 도구들도 있다. 만약에 프로그램이나 응용 프로그램에 대한 아이디어에 결함이 있다면, 저속뿐만 아니라 고속에서도 결함이 발생하게 될 것이다. 만약에 아이디어가 잘못되었다면, 신속하게 코드를 다시 작성하거나 많은 사용자들이 어떠한 변경도 가하지 못하도록 범위를 변경한다. 파이썬 이 정말 대단한 것은 아이디어를 실행을 통해 빠르게 확인해 볼 수 있도록 하는 것이며, 필요하다면 그것을 최적화할 수 있다는 것이다. 이제 여러분은 파이썬이라는 언어를 사용할 준비가 되었다. 다음 절에서는 파이썬의 쉘(shell) 과 NumPy를 사용하여 작업을 진행하게 될 것이다.

49 1.7 NumPy 라이브러리로 시작하기 NumPy 라이브러리로 시작하기 이 책에서는 몇 가지의 선형 대수를 사용할 것이기 때문에 NumPy를 자주 사용하게 된다. 선형 대수에 관해서는 걱정하지 않아도 된다. 우리는 그저 수많은 데이터를 표현하기 위해 수학 연산자를 사용할 뿐이다. 만약에 행렬로 데이터를 대신한다면, 너저분한 루프(loop) 무리들 없이 간단한 수식으로 처리할 수 있다. 우선, 어떤 기계 학습 알고리즘을 다루더라도 파이썬과 NumPy가 제대로 설치되어 있는지 확인해야 한다. NumPy는 파이썬과는 분리된 모듈이므로 파이썬의 배포판과 함께 설치되지 않는다. 따라서 파이썬을 설치한 후 NumPy를 설치해야 한다. 파이썬 쉘을 시작하면 Windows 명령어 프롬프트가 열리며 Linux와 Mac OS에서는 터미널(terminal)이 열린다. 각 명령어 줄에서, Windows는 c:\python27\python.exe 라고 입력하고, Linux와 Mac에서는 python이라고 입력한다. 이 지점에서는 언제든 다음과 같은 기호가 보인다. >>> 이 기호는 파이썬 쉘을 의미하는 것이다. 파이썬 쉘에서 다음과 같은 명령어를 입력한다. >>> from numpy import * 이 명령은 모든 NumPy 모듈을 현재의 네임스페이스(namespace)로 불러들인다. 이것은 그림 1.3에서 보는 바와 같으며, Mac OS 환경에서 실행한 것이다. 그림 1.3 명령어 줄에서 파이썬 시작하기와 파이썬 쉘에서 모듈 불러오기 그런 다음, 파이썬 쉘에서 다음과 같이 입력한다. >>> random.rand(4,4) array([[ , , , ], [ , , , ],

50 20 1장 기계 학습 기초 [ , , , ], [ , , , ]]) 이것은 임의로 4 4 크기의 행렬을 생성한 것이다. 현재 보이는 숫자와 실습해서 나온 숫자가 서로 다르더라도 걱정할 필요는 없다. 여기에 있는 숫자는 임의의 숫자임으로 매번 다르게 보일 수 있다. NumPy 행렬 대 배열 NumPy에서는 행(row, 로우)과 열(column, 칼럼)의 수라는 서로 다른 두 가지 데이터 유형이 있다. 이들은 비슷하 게 보이기 때문에 주의해야 한다. 즉, 두 가지의 데이터 유형을 곱하는 것과 같이 간단한 수학적 연산을 할 경우 다른 의미를 가질 수 있기 때문이다. 행렬 데이터 유형은 MATLAB에서 보다 더 많이 활용된다. 언제나 mat() 함수를 호출하여, 다음과 같이 행렬의 배열에 변화를 줄 수 있다. >>> randmat = mat(random.rand(4, 4)) 여기에 있는 숫자는 임의로 부여한 것이기 때문에, 아마도 실습한 값은 여기에 보이는 값과 다를 것이다. >>> randmat.i matrix([[ , , , ], [ , , , ], [ , , , ], [ , , , ]]) 위에 보이는.I 연산자는 역행렬을 표현한 것으로 매우 쉽게 해결이 된다. 그럼, 파이썬에서 NumPy 없이 시도해 보자. 역행렬을 어떻게 해결하는지 기억이 나지 않거나 배운 적이 없는 것 같다고 하더라도 걱정할 필요는 없다. 이 모든 것은 여러분을 위해 이미 프로그램으 로 준비되어 있다. >>> invrandmat = randmat.i 행렬 간의 곱하기도 할 수 있다. 다음과 같이 실행시켜 보자. >>> myeye = randmat * invrandmat >>> myeye matrix([[ e+00, e+00, e 16, e 15], [ e+00, e+00, e+00, e+00],

51 1.8 요약 21 [ e+00, e 16, e+00, e 16], [ e 16, e+00, e 16, e+00]]) 이 결과는 대각선상에 있는 원소가 1이고, 대각을 제외한 나머지 원소는 모두 0인 4 4 단위행 렬(identity matrix)이다. 하지만, 이 행렬은 정확한 단위행렬이 아니다. 이 행렬에는 매우 작은 값을 갖는 원소들이 아직 존재한다. 아직 남아 있는 원소들을 확인해 보도록 하자. >>> myeye eye(4) matrix([[ e+00, e 17, e 17, e 16], [ e 16, e+00, e 16, e 16], [ e 17, e 17, e 16, e 16], [ e 17, e 17, e 17,......]]) 여기서, eye(4) 함수는 단지 크기가 4인 단위행렬만을 생성한다. 만약 이 예제를 통해서 어떤 값을 얻었다면, NumPy가 정확하게 설치된 것이다. 이제 기계 학습을 이용하여 몇 가지 강력한 프로그램을 만들기 위한 준비를 마쳤다. 이전에 이런 함수를 본 적이 없다 하더라도 걱정하지 않아도 된다. 이 책에서는 필요할 때마다 예제를 통해서 더 많은 NumPy의 기능이 소개될 것이다. 1.8 요약 기계 학습은 우리가 인식하지 못하는 사이에도 이미 일상생활 속에서 사용되고 있다. 앞으로 도 우리에게 오는 데이터의 양은 줄어들지 않을 것이며, 데이터 기반 산업에서 이 모든 데이터를 이해하게 된다는 것은 사람들이 일을 하는 데 중요한 기술이 될 것이다. 기계 학습에서는 데이터 사례를 주의 깊게 살펴본다. 각각의 데이터 사례는 많은 속성으로 구성된다. 기계 학습의 중요한 작업이면서 인기 있는 것 중 하나인 분류는 알려지지 않은 데이터 조각들을 알려진 집단으로 배치하는 데 사용된다. 분류기를 만들거나 훈련하기 위해서 는 분류 항목을 알고 있는 데이터를 사용해야 한다. 이러한 데이터를 훈련 집합이라고 한다. 나는 조류를 인식하기 위해 사용했던 전문가 시스템이 완벽할 것이라거나 인간이 하는 것보 다 좋다고 주장하지는 않는다. 다만, 인간 전문가에 가까운 정확한 기계를 만들면 삶의 질을 크게 높일 수 있다. 인간 의사의 정확도에 견줄 만한 소프트웨어를 만들 때가 되면, 사람들은 더 빨리 치료를 받을 수 있다. 날씨 예측을 더 정확하게 하면 물부족을 없애고 더 많은

52 22 1장 기계 학습 기초 음식을 공급하도록 할 수 있다. 이처럼 기계 학습에 대한 유용한 예제는 끝이 없다. 다음 장에서는 첫 번째 기계 학습 알고리즘을 소개할 것이다. 이것은 분류의 한 가지 예이고 지도 학습의 한 형태이다. 향후 여섯 개 장은 분류에 대한 내용을 다룬다.

53 Machine Learning in Action 2장 k-최근접 이웃 알고리즘 학습 목표 k-최근접 이웃 알고리즘 텍스트 파일로부터 데이터 불러오기 및 구문 분석 매스플롯라이브러리를 이용하여 scatter 플롯 생성 수치형 값 정규화 혹시 영화를 장르별로 분류해 본 적이 있는가? 무엇이 영화의 장르를 결정하게 하는가? 그리고 누가 어떤 장르의 영화라고 말하는가? 한 장르의 영화는 비슷한데, 무엇이 이들을 비슷하게 하는가? 만약 영화 제작 관계자에게 물어본다 하더라도, 자신들이 만든 영화가 다른 어떤 영화와 비슷하다고 말하지는 않을 것이다. 하지만 우리는 어떤 식으로든 이 영화들 이 유사하다는 것을 알고 있다. 무엇이 액션 영화를 액션 영화로 불리게 만들며, 로맨스 영화와는 다르게 만드는 것일까? 액션 영화에서 키스하는 장면이 나오는 반면 로맨스 영화에 서도 발차기 장면이 나오지 않는가? 그렇다. 하지만, 로맨스 영화에 키스 장면이 더 많이 나오며, 액션 영화에는 발차기 장면이 더 많이 나온다. 아마도 키스나 발차기 또는 영화마다 다른 어떤 것을 판단 기준으로 삼는다면, 어떤 영화가 무슨 장르에 속하는지 자동적으로 알아낼 수 있게 될 것이다. 나는 k 최근접 이웃(k Nearest Neighbors) 알고리즘에 대한 개념 을 설명하기 위해 영화를 사용할 것이다. 이번 장에서는 첫 번째 기계 학습 알고리즘으로 k 최근접 이웃 알고리즘을 다룰 것이다. k 최근접 이웃은 이해하기 쉽고 매우 효과적인 알고리즘이다. 먼저, 이론을 설명하고 아이템 을 분류하기 위해 사용되는 거리 측정(distance measurement) 역주1 의 6) 개념을 어떻게 사용할 역주1 거리(distance)의 개념은 xy 좌표평면에서 두 점 간의 간격을 생각하면 쉽게 이해할 수 있을 것이다. 이 간 격이 곧 거리이다.

54 24 2장 k-최근접 이웃 알고리즘 수 있는지 설명한다. 그런 다음, 파이썬을 이용하여 어떻게 텍스트 파일로부터 데이터를 쉽게 불러오고 구문 분석을 하는지 알아볼 것이다. 우리는 많은 원시 데이터로부터 데이터를 가져올 때나 거리를 계산할 때, 몇 가지 일반적인 어려움에 직면하게 될 것이다. 우리는 이 모든 것을 예제를 통해 다루게 될 것이다. 여기서 사용하게 될 예제는 데이트 웹 사이트와 손으로 쓴 숫자 인식에 대한 결과를 개선하는 것이다. 2.1 거리 측정을 이용하여 분류하기 k-최근접 이웃 알고리즘 장점: 높은 정확도, 오류 데이터(outlier)에 둔감, 데이터에 대한 가정이 없음 단점: 계산 비용이 높음, 많은 메모리 요구 적용: 수치형 값, 명목형 값 첫 번째 기계 학습 알고리즘으로 k-최근접 이웃(kNN) 알고리즘을 살펴볼 것이다. knn은 다음 과 같이 동작한다. 기존에 훈련 집합이었던 예제 데이터 집합이 있다. 모든 데이터는 분류 항목 표시(labels)가 붙어 있으며, 따라서 각각의 데이터가 어떤 분류 항목으로 구분되는지 알 수 있다. 이후 분류 항목 표시가 붙어 있지 않은 새로운 데이터가 주어졌을 때, 기존의 모든 데이터와 새로운 데이터를 비교한다. 그리고 가장 유사한 데이터(가장 근접한 이웃)의 분류 항목 표시를 살펴본다. 이때, 분류 항목을 이미 알고 있는 데이터 집합에서 상위 k개의 가장 유사한 데이터를 살펴보게 된다. (이것이 k의 유래이며, 여기서 k는 일반적으로 20 미만의 정수를 사용한다.) 마지막으로, k개의 가장 유사한 데이터들 중 다수결(majority vote)을 통해 새로운 데이터의 분류 항목을 결정하게 된다. 로맨스 영화와 액션 영화를 분류하는 간단한 예제를 살펴보도록 하자. 많은 영화를 관람한 누군가가 각각의 영화마다 발차기 장면과 키스 장면의 출현 횟수를 센다. 그림 2.1에는 6편의 영화 속에 출현하는 키스 장면과 발차기 장면의 횟수가 표시되어 있다. 지금, 당신은 아직 보지 못한 영화 한 편을 찾고 있으며, 그 영화가 로맨스 영화인지 액션 영화인지를 알고자 한다. 이를 결정하기 위해 knn 알고리즘을 사용할 것이다. 우리는 물음표에 해당하는 영화를 찾고 있으며, 이 영화에 얼마나 많은 발차기 장면과 키스 장면이 나오는지 확인한다. 그림 2.1에는 몇 개의 다른 영화와 함께 하나의 큰 물음표가 위치해 있다. 각 영화들의 세부 사항은 표 2.1과 같다.

55 2.1 거리 측정을 이용하여 분류하기 25 (발차기 장면 횟수) 그림 2.1 영화 속 발차기 장면과 키스 장면 출현 에 따른 영화 분류 표 2.1 각 영화의 발차기 장면과 키스 장면 횟수에 따른 영화의 분류 영화 제목 발차기 장면 획수 키스 장면 횟수 영화 유형 California Man He's Not Really into Dudes Beautiful Woman Kevin Longblade Robo Slayer 3000 Amped II? 로맨스 로맨스 로맨스 액션 액션 액션 알 수 없음 물음표에 해당하는 영화의 유형이 무엇인지는 알 수 없지만, 그것을 계산하기 위한 한 가지 방법이 있다. 우선, 다른 모든 영화와의 거리를 계산하는 것이다. 표 2.2에 거리를 계산한 것을 표시하였다. (계산이 어떻게 되었는지에 대해서는 걱정하지 않아도 된다. 우리는 곧 이에 대해 다룰 것이다.) 영화 제목 California Man He's Not Really into Dudes Beautiful Woman Kevin Longblade Robo Slayer 3000 Amped II 영화? 와의 거리 표 2.2 각 영화와 알려지지 않은 영화 간의 거리 지금 이것은 알려지지 않은 영화에 대한 모든 거리를 구한 것이며, 거리를 내림차순으로 정렬하여 가장 가까운 k개의 영화를 찾아야 한다. k=3이라고 하자. 그러면 세 개의 가장 가까운 영화는 California Man, Heʹs Not Really into Dudes, Beautiful Woman이 된다.

56 26 2장 k-최근접 이웃 알고리즘 knn 알고리즘은 물음표에 해당하는 영화의 분류 항목을 결정하기 위하여 이 세 개의 영화에 서 다수결로 뽑힌 것을 선정한다. 즉, 세 영화 모두 로맨스이기 때문에 의문의 영화는 로맨스 영화로 예측된다. 이번 장에서는 실질적인 기계 학습 알고리즘을 다룰 것이며, 파이썬 툴과 기계 학습 용어에 대하여 소개할 것이다. 우선 알고리즘을 정확하게 사용하기 위해 knn 알고리즘의 간단한 예제를 가지고 진행할 것이다. knn의 일반적인 접근 방법 1. 수집: 모든 방법 2. 준비: 수치형 값(거리를 계산하기 위해 필요), 구조적으로 표현된 데이터 형식이 가장 좋다. 3. 분석: 모든 방법 4. 훈련: knn 알고리즘은 적용되지 않음 5. 검사: 오류율(error rate)을 계산함 6. 사용: 응용 프로그램은 입력 데이터를 받아 구조가 있는 수치형 값으로 출력하는 데 필요하다. 그런 다음, 응용 프로그램은 입력 데이터를 가지고 knn 알고리즘을 실행해서 입력 데이터가 속하는 분류 항목 을 결정한다. 응용 프로그램은 이때 계산된 분류 항목에서 몇 가지 조치를 취한다 준비: 파이썬으로 데이터 불러오기 먼저, knn.py라고 불리는 파이썬 모듈을 생성하고 여기에 이번 장에서 사용될 모든 코드를 넣게 될 것이다. 각자 자신의 파일을 생성하고, 이 책을 따라 코드를 입력하거나 책에 있는 소스 코드를 다운로드받아 사용할 수도 있다. 학습을 위해 가장 좋은 방법은 빈 모듈로 시작하여 코드를 직접 입력하는 것이다. 우선 knn.py를 생성하거나 소스 코드를 다운로드받아 복사해 오도록 하자. knn 알고리즘 을 전부 생성하기 전에 몇 가지 지원 기능을 생성할 것이다. knn.py에 다음 소스 코드를 추가하자. from numpy import * import operator def createdataset(): group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]]) labels = ['A', 'A', 'B', 'B'] return group, labels

57 2.1 거리 측정을 이용하여 분류하기 27 이 코드에서는 두 개의 모듈을 불러온다. 하나는 NumPy로 과학용 계산 패키지이다. 두 번째 모듈은 operator 모듈이며, knn 알고리즘에서 정렬 처리를 하기 위해 나중에 사용하 게 된다. createdataset() 함수는 우리의 편의를 위한 함수이다. 그림 2.1에서 보았던 것처럼 데이터 집합과 분류 항목을 생성한다. 자, 이렇게 한번 해 보도록 하자. knn.py 저장 저장할 knn.py 디렉터리 변경 파이썬 대화 세션 실행. 시작하려면 Windows에서 커맨드 프롬 프트를 여는 것처럼 Linux/Mac OS에서 새로운 터미널을 열어야 한다. Linux 또는 Mac을 사용하고 있다면, 시작하기 위해 커맨드 라인(command line)에 python이라고 입력해야 한 다. Windows 사용자는 C:\Python26\python.exe로 직접 지정해야 파이썬 프로그램을 시작 할 수 있다. 당신이 파이썬 대신 다른 이름을 사용하고 있지 않다면 말이다. 지난번에 모듈을 불러들이기 위해 파이썬에서 시도했던 것과 마찬가지로 다음과 같이 입력해 야 한다. >>> import knn 이것이 knn 모듈을 불러들이는 방법이다. 동일한 데이터 집합을 보도록 만들기 위해 createdataset이라는 함수를 생성했었다. 파이썬 커맨드 프롬프트에 다음과 같이 입력해 보자. >>> group, labels = knn.createdataset() 이것은 두 개의 변수인 group과 labels를 생성한다. 각 변수를 검토하기 위해 파이썬 커맨드 프롬프트에 변수의 이름을 입력해 보자. >>> group array([[1., 1.1], [1., 1.], [0., 0.], [0., 0.1]]) >>> labels ['A', 'A', 'B', 'B'] 여기에 네 개의 데이터가 있다. 각각의 데이터는 두 개의 속성 또는 특징을 가지고 있다. group 행렬에서 각 로우(row)는 다른 데이터이다. 이 데이터들을 일부 기록을 정리해 놓은 것으로서 서로 다른 측정값이나 항목이라고 생각해 보자. 모든 사람들이 그렇듯 하나, 둘,

58 28 2장 k-최근접 이웃 알고리즘 또는 세 개의 차원까지는 시각화할 수 있지만 우리 뇌의 한계는 여기까지다. 그래서 시각화를 쉽게 할 수 있도록 각 데이터 지점(data point)을 표현하는 데 2개의 속성만을 사용한다. labels 벡터는 각 데이터 지점에 주어진 분류 항목을 전달한다. 이 벡터에는 마치 group 행렬에 있는 로우처럼 많은 아이템이 있을 수 있다. 데이터 측정값 (1, 1.1)을 분류 항목 A로 할당하고, (0, 0.1)을 분류 항목 B에 할당한다. 이 예제의 값은 설명을 하기 위해 임의로 선택된 값이며, 두 개의 축에 대한 표시는 되어 있지 않다. 분류 항목 표시가 있는 네 개의 데이터 측정값은 그림 2.2에 표시하였다. 지금 여러분은 구문 분석을 어떻게 할 것이며, 데이터를 파이썬으로 어떻게 불러들일지 그리 고 knn 알고리즘을 어떻게 다루어야 할지를 생각하고 있을 것이다. 일단, 그것을 다함께 넣고 몇 가지 분류를 수행해 보도록 하자. 그림 2.2 매우 간단한 knn 예제에 대한 네 개의 데이터 측정값 knn 분류 알고리즘 실행하기 여기서 다룰 주제는 하나의 데이터로 knn 알고리즘을 실행하기 위해 리스팅 2.1처럼 함수 를 만드는 것이다. 우선 의사코드를 가지고 함수에 대해 설명한 다음, 실제 파이썬으로 작성 된 코드를 가지고 세부적인 설명을 할 것이다. 기억해 두자. 이 함수의 목적은 inx라고 불리는 하나의 데이터를 분류하기 위해 knn 알고리즘을 사용하는 것이라는 것을. 이러한 기능을 위한 의사코드는 다음과 같다.

59 2.1 거리 측정을 이용하여 분류하기 29 For every point in our dataset: //데이터 집합에 있는 모든 측정값 반복 calculate the distance between inx and the current point //inx와 현재 측정값 사이의 거리 계산 sort the distances in increasing order //오름차순으로 거리 정렬 take k items with lowest distances to inx //inx와의 거리가 가장 짧은 k개의 아이템 추출 find the majority class among these items //k개의 아이템에서 가장 많은 분류 항목 찾기 return the majority class as our prediction for the class of inx //inx의 분류 항목을 예측하기 위해 가장 많은 분류 항목을 반환함 classify0() 함수의 파이썬 코드는 다음에 나오는 리스팅과 같다. 리스팅 2.1 k-최근접 이웃 알고리즘 def classify0(inx, dataset, labels, k): datasetsize = dataset.shape[0] diffmat = tile(inx, (datasetsize, 1)) dataset sqdiffmat = diffmat ** 2 sqdistances = sqdiffmat.sum(axis = 1) distances = sqdistances ** 0.5 sorteddistindicies = distances.argsort() classcount={} for i in range(k): voteilabel = labels[sorteddistindicies[i]] classcount[voteilabel] = classcount.get(voteilabel, 0) + 1 sortedclasscount = sorted(classcount.iteritems(), key=operator.itemgetter(1), reverse=true) return sortedclasscount[0][0] 1 거리 계산 가장 짧은 k 거리를 투표 3 2 아이템 정렬 함수 classify0()는 네 가지 입력을 처리한다. 분류를 위한 입력 벡터를 inx라 하고, 훈련을 위한 예제의 전체 행렬을 dataset이라고 하며, 분류 항목을 표시한 벡터를 labels라고 한다. 마지막으로 k는 투표에서 사용하게 될 최근접 이웃 수이다. labels 벡터 안에는 많은 요소들 이 있으며, 이 요소들이 곧 dataset 행렬 안의 로우를 뜻한다. 거리 ❶은 유클리드(Euclidian) 거리를 사용하여 계산된다. 여기서 두 가지 요소, 즉 두 벡터 와 간의 거리는 다음 수식으로 구한다.

60 30 2장 k-최근접 이웃 알고리즘 예를 들어, 측정값 (0, 0)과 (1, 2) 간의 거리는 다음과 같이 계산된다. 만약에 네 개의 속성을 가지고 계산하면, 측정값 (1, 0, 0, 1)과 (7, 6, 9, 4) 간의 거리는 다음과 같이 계산될 것이다. 거리를 계산한 다음에는 가장 짧은 것에서 가장 긴 것 순으로 정렬된다. (이것이 기본 설정이 다.) 다음 ❷에서 처음 k개 또는 거리가 가장 짧은 k개가 inx의 분류 항목에서 투표를 하는 데 사용된다. 입력 k의 값은 항상 양의 정수 값이다. 마지막으로, ❸ classcount 딕셔너리 (dictionary)를 가지고 투플(tuple) 형태의 리스트로 분해한다. 그런 다음, 투플에 있는 두 번째 아이템으로 itemgetter 메소드를 사용하여 투플을 정렬한다. itemgetter 메소드는 프로그램 두 번째 줄에서 불러들인 operator 모듈에 있는 메소드이다. 이 정렬은 반대로 이루어지기 때문에 가장 작은 것이 가장 큰 것이 된다. 마지막으로, 가장 빈번하게 발생한 아이템의 분류 항목 표시를 돌려보내게 된다. 분류 항목을 예측하기 위해서는 파이썬 프롬프트에서 다음과 같이 입력해야 한다. >>> knn.classify0([0, 0], group, labels, 3) 이것의 결과는 B가 될 것이다. 답변이 어떻게 변경되는지 보기 위해서 [0, 0]을 넣어 변화시켜 보자. 당신의 첫 번째 분류기 완성을 축하한다. 이 간단한 분류기를 가지고 더 많은 것을 분류해 볼 수 있으며, 비슷한 예제를 주변에서 쉽게 구할 수 있다 분류기 검사하기 우리는 knn 알고리즘을 만들었고 기대했던 주어진 답변을 보게 되었다. 스스로에게 물어 보자. 어떠한 관점에서도 이것을 사용할 수 있는가? 또는 이 방법이 항상 옳은 것인가? 그렇지 않다. 이 방법이 항상 옳다고는 할 수 없다. 분류기가 옳은 답을 얼마나 잘 찾는지를

61 2.2 예제: knn을 이용하여 데이트 사이트의 만남 주선 개선하기 31 분석하는 다양한 방법이 있다. 또한, 마치 분류기와 데이터 집합을 설정하는 것처럼 분류기의 성능에 영향을 미치는 다양한 요소들도 존재한다. 다양한 알고리즘은 다양한 데이터 집합으 로 다양하게 수행된다. 이 책에는 분류 방법에 대한 여섯 개의 장이 준비되어 있다. 분류기를 검사하기 위하여 알려진 데이터에서 분류기가 답을 알 수 없도록 감춘 다음, 분류기 에게 가장 좋은 예측을 하도록 요청할 수 있다. 그리고 분류기가 데이터를 잘못 분류한 횟수를 합산하여 제공된 데이터를 검사한 총 횟수로 나누어 보자. 이것을 오류율(error rate)이 라고 하며, 분류기가 데이터 집합을 얼마나 잘 분류하는지 판단하기 위한 일반적인 기준이 된다. 오류율이 0이라는 것은 분류기가 완벽하다는 것을 의미하며, 오류율이 1.0이라는 것은 분류기가 분류한 것이 모두 잘못되었다는 것을 의미한다. 한정된 데이터를 가지고 실험을 해 보면 알 수 있을 것이다. 이번 절에서 다룬 예제는 동작하기는 하지만 유용하지는 않다. 따라서, 다음 두 가지 실제 예제를 사용하여 knn을 간단하게 시험해 보고자 한다. 우선, knn을 가지고 데이트 사이트 에서 결과를 개선하는 것에 대해 살펴볼 것이며, 그런 다음 인상적인 필기체 인식에 관한 예제를 살펴볼 것이다. 즉, knn 알고리즘이 동작하는지 알아보기 위해 필기체 인식에 적용해 볼 것이다. 2.2 예제: knn을 이용하여 데이트 사이트의 만남 주선 개선하기 내 친구 헬렌은 함께 데이트할 상대를 찾기 위해 몇 개의 온라인 데이트 사이트에 가입했다. 그녀는 사이트의 권고에도 불구하고 데이트했던 모든 사람을 좋아하지 않았었다는 것을 깨달았다. 약간의 반성을 한 후, 그녀는 데이트했던 사람들에게 세 가지 유형이 있다는 것을 알게 되었다. 좋아하지 않았던 사람들 조금 좋아했던 사람들 많이 좋아했던 사람들 그러나 헬렌은 무엇에 의해 이러한 유형의 사람들이 결정되는지 이해할 수 없었다. 그들 모두는 데이트 사이트에서 그녀에게 추천했던 사람들이다. 그녀가 조금 좋아했던 사람들은 월요일부터 금요일 사이에 만났다. 하지만 주말에는 많이 좋아했던 사람들과 더 많은 시간을 보냈었다. 헬렌은 우리에게 앞으로 만날 사람들을 걸러내기 위해 분류하는 것을 도와달라고

iOS ÇÁ·Î±×·¡¹Ö 1205.PDF

iOS ÇÁ·Î±×·¡¹Ö 1205.PDF iphone ios 5 DEVELOPMENT ESSENTIALS Copyright 2011 Korean Translation Copyright 2011 by J-Pub. co. The Korean edition is published by arrangement with Neil Smyth through Agency-One, Seoul. i iphone ios

More information

13Åë°è¹é¼Ł

13Åë°è¹é¼Ł 이면은빈공간입니다. National Statistics White Paper 2012 National Statistics White Paper ii _ STATISTICS KOREA 2012 _ iii 2012 National Statistics White Paper 1 26 2 27 3 28 4 29 5 30 6 31 7 32 8 33 9 34 10 35

More information

untitled

untitled Content Ⅰ. 기본방향 1. 목 적 3 2. 적용범위 3 Ⅱ. 사회복지관 운영 1. 사회복지관의 정의 7 2. 사회복지관의 목표 7 3. 사회복지관의 연혁 7 4. 사회복지관 운영의 기본원칙 8 Ⅲ. 사회복지관 사업 1. 가족복지사업 15 2. 지역사회보호사업 16 3. 지역사회조직사업 18 4. 교육 문화사업 19 5. 자활사업 20 6. 재가복지봉사서비스

More information

<BEC6BFF4BCD2BDCCBAB8B0EDBCAD28C3D6C1BE29303831302E687770>

<BEC6BFF4BCD2BDCCBAB8B0EDBCAD28C3D6C1BE29303831302E687770> 동아시아역내 일본자동차산업의 아웃소싱 시장 분석을 통한 국내자동차부품기업의 진출방안 연구 2008. 8. 29. 한일산업기술협력재단 연구 참여자 책임연구자: 김도훈(한일산업기술협력재단 일본기업연구센터 연구위원) 연 구 자: 오재훤(메이지대학 국제일본학부 준교수) 연 구 자: 김봉길(도야마대학 경제학부 교수) 연 구 자: 정성춘(대외경제정책연구원 일본팀장) 연

More information

동북아 문화공동체 형성을 위한 한 중 일 대중문화 교류의 현황 및 증진 방안 연구 동북아 문화공동체 특별연구위원회 구 분 성 명 소 속 및 직 위 위 원 장 김 광 억 서울대 인류학과 교수 김 우 상 연세대 정치외교학과 교수 박 준 식 한림대 사회학과 교수 전 영 평 대구대 도시행정학과 교수 위 원 정 진 곤 한양대 교육학과 교수 정 하 미 한양대 일본언어

More information

<5BC6EDC1FD5DBEEEBEF7C0CCC1D6B3EBB5BFC0DAC0CEB1C7BBF3C8B2BDC7C5C2C1B6BBE7C3D6C1BEBAB8B0EDBCAD28BAB8C0CCBDBABEC6C0CC292E687770>

<5BC6EDC1FD5DBEEEBEF7C0CCC1D6B3EBB5BFC0DAC0CEB1C7BBF3C8B2BDC7C5C2C1B6BBE7C3D6C1BEBAB8B0EDBCAD28BAB8C0CCBDBABEC6C0CC292E687770> 어업 이주노동자 인권상황 실태조사 2012년도 국가인권위원회 인권상황 실태조사 연구용역보고서를 제출합니다 2012. 10. 연구수행기관 한양대학교 글로벌다문화연구원 연구책임자 오경석 연 구 원 이한숙 김사강 김민정 류성환 윤명희 정정훈 연구보조원 최상일 이 보고서는 연구용역수행기관의 결과물로서, 국가인권위원회의 입장과 다를 수 있습니다 연구요약 이 연구는 연근해

More information

*BA_00

*BA_00 Published by Ji&Son Inc. Printed in Korea Copyright 2010 by Ji&Son Inc. Authorized translation of the English edition of Beautiful Architecture 2009 O Reilly Media, Inc. This Translation is published and

More information

<BFDCB1B9C0CE20C5F5C0DAB1E2BEF7C0C720B3EBBBE7B0FCB0E82E687770>

<BFDCB1B9C0CE20C5F5C0DAB1E2BEF7C0C720B3EBBBE7B0FCB0E82E687770> 외국인 투자기업의 노사관계 요 약 i ii 외국인 투자기업의 노사관계 요 약 iii iv 외국인 투자기업의 노사관계 요 약 v vi 외국인 투자기업의 노사관계 요 약 vii viii 외국인 투자기업의 노사관계 요 약 ix x 외국인 투자기업의 노사관계 요 약 xi xii 외국인 투자기업의 노사관계 요 약 xiii xiv 외국인 투자기업의 노사관계

More information

09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 38 10 중간착취의 금지 41 - 대판 2008.9.25, 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 2003.3.14, 2002도3883 [남녀고용평등법위

09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 38 10 중간착취의 금지 41 - 대판 2008.9.25, 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 2003.3.14, 2002도3883 [남녀고용평등법위 01 노동법 법원으로서의 노동관행 15 - 대판 2002.4.23, 2000다50701 [퇴직금] (한국전력공사 사례) 02 노동법과 신의성실의 원칙 17 - 대판 1994.9.30, 94다9092 [고용관계존재확인등] (대한조선공사 사례) 03 퇴직금 청구권 사전 포기 약정의 효력 19 - 대판 1998.3.27, 97다49732 [퇴직금] (아시아나 항공

More information

°æÁ¦Àü¸Á-µ¼º¸.PDF

°æÁ¦Àü¸Á-µ¼º¸.PDF www.keri.org i ii iii iv v vi vii viii ix x xi xii xiii xiv xv 3 4 5 6 7 8 9 10 11 12 13 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 47 48 49 50 51 52 53

More information

1111111111.PDF

1111111111.PDF 표지와 같은 면지 19대 총선평가 학술회의 일 시: 2012년 4월 25일(수) 13:30 18:00 장 소: 국회입법조사처 대회의실 (국회도서관 421호), 제1세미나실 (427호) 주 최: 국회입법조사처/한국정당학회 전체일정표 대회의실 제1세미나실 1:30 ~ 1:50 pm 개회식 1:50 ~ 3:50 pm 1패널 19대 총선평가와 전망 3:50 ~ 4:00

More information

2005 중소기업 컨설팅 산업 백서

2005 중소기업 컨설팅 산업 백서 제 출 문 중소기업청장 귀하 본 보고서를 중소기업 컨설팅 산업 백서 에 대한 최종보고 서로 제출합니다. 2005. 12. 16 (사)한국경영기술컨설턴트협회 회장 박양호 수탁연구기관 : (사)한국경영기술컨설턴트협회 컨설팅혁신정책연구원 총괄연구책임자 : 경영학 박사 김태근(정책분과위원장) 연 구 자 : 경제학 박사 김윤종 통계학 박사 김용철 경제학 박사 변종석

More information

<5B33B9F8B0FAC1A65D20B9E6BCDBBDC9C0C7BDC3BDBAC5DB20B0B3BCB1B9E6BEC8BFACB1B82DC3D6C3D6C1BE2E687770>

<5B33B9F8B0FAC1A65D20B9E6BCDBBDC9C0C7BDC3BDBAC5DB20B0B3BCB1B9E6BEC8BFACB1B82DC3D6C3D6C1BE2E687770> KCSC 2015-003 방송심의시스템 개선방안 연구 시청자참여심의제 도입 가능성을 중심으로 2015. 12. 이 보고서는 2015년 방송통신심의위원회의 심의정책 연구개발 사업의 연구결과로서 보고서의 내용은 연구자의 견해이며, 방송통신심의위원회의 공식 입장은 아닙니다. 방송심의시스템 개선방안 연구 - 시청자참여심의제 도입 가능성을 중심으로 - 연 구 진 연구수행기관

More information

<3036C7E2BCF6C3D6C1BEBABB2E687770>

<3036C7E2BCF6C3D6C1BEBABB2E687770> 문화향수실태조사 SURVEY REPORT ON CULTURAL ENJOYMENT 2006 문화관광부 한국문화관광정책연구원 Ministry of Culture & Tourism Korea Culture & Tourism Policy Institute 서문 우리나라 국민들이 문화와 예술을 얼마나, 그리고 어떻게 즐기고 있는지를 객관적으 로 파악하기 위하여, 1988년부터

More information

- I - - II - - III - - IV - - V - - VI - - VII - - VIII - - IX - - X - - XI - - XII - - XIII - - XIV - - XV - - XVI - - XVII - - XVIII - - XIX - - XX - - XXI - - XXII - - XXIII - - 1 - - - - 3 - - - -

More information

<5BB1E2BABB5D5FB0F8B0F8BACEB9AE5FBDC3B0A3C1A6B1D9B9ABBFCD5FC0B0BEC6C8DEC1F7BFA15FB5FBB8A55FB4EBC3BCC0CEB7C25FC8B0BFEBB0FAC0C75FBFACB0E8B9E6BEC85F2D5FB9AEB9CCB0E62E687770>

<5BB1E2BABB5D5FB0F8B0F8BACEB9AE5FBDC3B0A3C1A6B1D9B9ABBFCD5FC0B0BEC6C8DEC1F7BFA15FB5FBB8A55FB4EBC3BCC0CEB7C25FC8B0BFEBB0FAC0C75FBFACB0E8B9E6BEC85F2D5FB9AEB9CCB0E62E687770> 2012 연구보고서-23 공공부문 시간제근무와 육아휴직에 따른 대체인력 활용과의 연계방안 연구책임자 : 문미경(본원 선임연구위원) 공동연구자 : 김복태(본원 연구위원) 금창호(한국지방행정연구원 선임연구위원) 박미연(본원 위촉연구원) 발 간 사 본 연구는 유연근무제의 여러 형태 중 최근 공공부문에서 가장 관심을 보이 고 있는 시간제 근무에 초점을 맞추어, 육아휴직

More information

유니 앞부속

유니 앞부속 Published by Ji&Son Inc. Printed in Korea. Unityによる3Dゲ-ム : iphone/android/webで ゲ-ムプログラミング (JAPAN ISBN 978-4873115061) Authorized translation from the Japanese language edition of Unityによる3Dゲ- ム. 2011 the

More information

2016년이렇게달라집니다_ 전체 최종 1223.indd

2016년이렇게달라집니다_ 전체 최종 1223.indd Contents 2016 ii iii Contents 2016 iv v Contents 2016 vi vii Contents 2016 viii ix Contents 2016 x xi Contents 2016 xii xiii Contents 2016 xiv xv Contents 2016 xvi xvii Contents 2016 3 xviii xix Contents

More information

- i - - ii - - iii - - iv - - v - - vi - - vii - - viii - - ix - - x - - xi - - xii - - xiii - - xiv - - xv - - xvi - - xvii - - xviii - - xix - - xx - - xxi - - xxii - - xxiii - - xxiv - - 3 - - 4 -

More information

언리얼엔진4_내지_150126.indd

언리얼엔진4_내지_150126.indd C 2015. 박승제 All Rights Reserved. 초판 1쇄 발행 2015년 2월 10일 지은이 박승제 펴낸이 장성두 펴낸곳 제이펍 출판신고 2009년 11월 10일 제406 2009 000087호 주소 경기도 파주시 문발로 141 뮤즈빌딩 403호 전화 070 8201 9010 / 팩스 02 6280 0405 홈페이지 www.jpub.kr / 이메일

More information

정책연구개발사업 2010-위탁 대학 등록금의 합리적 책정을 위한 실행방안 연구 연 구 책 임 자 공 동 연 구 자 송동섭(단국대학교) 이동규(충남대학교) 이창세(재능대학) 한창근(인하공업전문대학) 연 구 협 력 관 장미란(교육과학기술부) 교육과학기술부 이 연구는 201

정책연구개발사업 2010-위탁 대학 등록금의 합리적 책정을 위한 실행방안 연구 연 구 책 임 자 공 동 연 구 자 송동섭(단국대학교) 이동규(충남대학교) 이창세(재능대학) 한창근(인하공업전문대학) 연 구 협 력 관 장미란(교육과학기술부) 교육과학기술부 이 연구는 201 제 출 문 교육과학기술부장관 귀하 본 보고서를 대학 등록금의 합리적 책정을 위한 실행방안 연구 최종 보고서로 제출합니다. 2010년 12월 일 주관연구기관명:단국대학교 연구기간:2010. 7. 19-2010. 12. 18 주관연구책임자:송 동 섭 참여연구원 공동연구원:이 동 규 이 창 세 한 창 근 연 구 조 원:심 재 우 정책연구개발사업 2010-위탁 대학

More information

xviii EBS 수능강의 서비스를 활용하는 이유는 수능시험에 연계되기 때문이라는 응답 이 학생 61.7%, 학부모 73.2%로 가장 많았고, EBS 수능강의 서비스를 활용하 지 않는 이유는 학생의 경우 사교육 때문이라는 응답이 26.9%, 혼자 공부하는 것으로 충분하

xviii EBS 수능강의 서비스를 활용하는 이유는 수능시험에 연계되기 때문이라는 응답 이 학생 61.7%, 학부모 73.2%로 가장 많았고, EBS 수능강의 서비스를 활용하 지 않는 이유는 학생의 경우 사교육 때문이라는 응답이 26.9%, 혼자 공부하는 것으로 충분하 xvii 요 약 1. 수요자 설문조사 분석 가. 설문지 제작 및 조사 방법 설문 영역: 수능강의 이용 현황, 수능강의 평가, 수능 교재, 사교육 이용 등 조사 대상: 일반고, 자율고, 외국어고 학생 및 그의 학부모 각각 6,480명 표본 추출 방법 : 층화표집(지역 규모별 108개교 표집 후 학생 무선표집) 조사 방법 : 설문지 조사 응답률 : 학생 96.5%(6,250명),

More information

<28BCF6BDC320323031352D31332920B0E6B1E2B5B520C1F6BFAABAB020BFA9BCBAC0CFC0DAB8AE20C1A4C3A520C3DFC1F8C0FCB7AB5FC3D6C1BE2830312E3036292E687770>

<28BCF6BDC320323031352D31332920B0E6B1E2B5B520C1F6BFAABAB020BFA9BCBAC0CFC0DAB8AE20C1A4C3A520C3DFC1F8C0FCB7AB5FC3D6C1BE2830312E3036292E687770> 수시과제 2015-13 경기도 지역별 여성일자리 정책 추진 전략 연구책임자 : 최 윤 선 (본원선임연구위원) : 남 승 연 (본원연구위원) 연 구 지 원 : 이 상 아 (본원위촉연구원) 연 구 기 간 : 2015. 9 ~12 2015 발 간 사 여성 일자리는 사회 내 여성과 남성간의 차이를 좁히고 개개인의 삶을 윤택하게 만드는 중요 한 부분입니다. 이에 정부는

More information

직업편-1(16일)

직업편-1(16일) 2012 특수교육대상학생을 위한 진로정보 발간사 21세기 지식기반 정보화 사회는 개인에게 변화하는 직업세계를 바로 이해하고 고용능력을 함양하는 평생학습이 중요함을 강조합니다. 특히 평생직장시대에서 일생 직업을 5-6번 전환하는 평생직업시대 로의 패러다임 변화는 지속적인 진로개발(sustainable career development)의 우선적 책무성이 개인에게

More information

사회통계포럼

사회통계포럼 wcjang@snu.ac.kr Acknowledgements Dr. Roger Peng Coursera course. https://github.com/rdpeng/courses Creative Commons by Attribution /. 10 : SNS (twitter, facebook), (functional data) : (, ),, /Data Science

More information

사물인터넷비즈니스빅뱅_내지_11차_160421.indd

사물인터넷비즈니스빅뱅_내지_11차_160421.indd 사물인터넷 빅뱅 2016. 연대성 All Rights Reserved. 초판 1쇄 발행 2016년 4월 29일 지은이 연대성 펴낸이 장성두 펴낸곳 제이펍 출판신고 2009년 11월 10일 제406 2009 000087호 주소 경기도 파주시 문발로 141 뮤즈빌딩 403호 전화 070 8201 9010 / 팩스 02 6280 0405 홈페이지 www.jpub.kr

More information

INDUS-8.HWP

INDUS-8.HWP i iii iv v vi vii viii ix x xi 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 32 33 34 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

More information

CONTENTS.HWP

CONTENTS.HWP i ii iii iv v vi vii viii ix x xi - 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 -

More information

- i - - ii - - i - - ii - - i - - ii - - iii - - iv - - v - - vi - - vii - - viii - - ix - - x - - xi - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 -

More information

제 출 문 중소기업청장 귀하 본 보고서를 중소기업 원부자재 구매패턴 조사를 통한 구매방식 개선 방안 연구 의 최종보고서로 제출합니다. 2007. 12 한국산업기술대학교 산학협력단 단 장 최 정 훈 연구책임자 : 이재광 (한국산업기술대학교 부교수) 공동연구자 : 노성호

제 출 문 중소기업청장 귀하 본 보고서를 중소기업 원부자재 구매패턴 조사를 통한 구매방식 개선 방안 연구 의 최종보고서로 제출합니다. 2007. 12 한국산업기술대학교 산학협력단 단 장 최 정 훈 연구책임자 : 이재광 (한국산업기술대학교 부교수) 공동연구자 : 노성호 최종보고서 중소기업 원부자재 구매패턴 조사를 통한 구매방식 개선방안 연구 2007. 12 제 출 문 중소기업청장 귀하 본 보고서를 중소기업 원부자재 구매패턴 조사를 통한 구매방식 개선 방안 연구 의 최종보고서로 제출합니다. 2007. 12 한국산업기술대학교 산학협력단 단 장 최 정 훈 연구책임자 : 이재광 (한국산업기술대학교 부교수) 공동연구자 : 노성호 (한국산업기술대학교

More information

<C1A4C3A5BFACB1B82031312D3420C1A4BDC5C1FAC8AFC0DAC0C720C6EDB0DFC7D8BCD220B9D720C0CEBDC4B0B3BCB1C0BB20C0A7C7D120B4EBBBF3BAB020C0CEB1C720B1B3C0B020C7C1B7CEB1D7B7A520B0B3B9DF20BAB8B0EDBCAD28C7A5C1F6C0AF292E687770>

<C1A4C3A5BFACB1B82031312D3420C1A4BDC5C1FAC8AFC0DAC0C720C6EDB0DFC7D8BCD220B9D720C0CEBDC4B0B3BCB1C0BB20C0A7C7D120B4EBBBF3BAB020C0CEB1C720B1B3C0B020C7C1B7CEB1D7B7A520B0B3B9DF20BAB8B0EDBCAD28C7A5C1F6C0AF292E687770> 제 출 문 보건복지부장관 귀 하 이 보고서를 정신질환자의 편견 해소 및 인식 개선을 위한 대상별 인권 교육프로그램 개발 연구의 결과보고서로 제출합니다 주관연구기관명 서울여자간호대학 산학협력단 연 구 책 임 자 김 경 희 연 구 원 김 계 하 문 용 훈 염 형 국 오 영 아 윤 희 상 이 명 수 홍 선 미 연 구 보 조 원 임 주 리 보 조 원 이 난 희 요

More information

연구요약 1. 서론 연구의 목적 본 연구는 청소년 교육정책의 바람직한 방향을 설정하고, 미래지향적인 정책과제와 전략, 그리고 비전을 도출하기 위해 수행되었다. 이를 위해 지 난 15년간의 청소년 교육 환경 및 정책의 변화를 분석하고, 향후 15년간 의 청소년 교육 환경

연구요약 1. 서론 연구의 목적 본 연구는 청소년 교육정책의 바람직한 방향을 설정하고, 미래지향적인 정책과제와 전략, 그리고 비전을 도출하기 위해 수행되었다. 이를 위해 지 난 15년간의 청소년 교육 환경 및 정책의 변화를 분석하고, 향후 15년간 의 청소년 교육 환경 발간등록번호 국가청소년 www.youth.go.kr 청소년 희망세상 비전 2030 연구 (교육 분야) 책임연구원 : 임천순 (세종대학교 교수) 공동연구원 : 채재은 (경원대학교 부교수) 우명숙 (한양대학교 초빙교수) 국 가 청 소 년 위 원 회 연구요약 1. 서론 연구의 목적 본 연구는 청소년 교육정책의 바람직한 방향을 설정하고, 미래지향적인 정책과제와 전략,

More information

<BAD2B9FDBAB9C1A620BAB8B0EDBCAD5FC5EBC7D55F76657230345FB9DFB0A3BBE7C6F7C7D45F33C2F720B1B3C1A428B1D7B8B22020C3DFC3E2292E687770>

<BAD2B9FDBAB9C1A620BAB8B0EDBCAD5FC5EBC7D55F76657230345FB9DFB0A3BBE7C6F7C7D45F33C2F720B1B3C1A428B1D7B8B22020C3DFC3E2292E687770> 2014 저작권 보호 연차보고서 nnual eport on Copyright rotection 2014 저작권 보호 연차보고서 nnual eport on Copyright rotection 발간사 올해 초 안방극장을 휘어잡은 드라마 별에서 온 그대 는 독특한 소재와 한류스타의 완벽한 연기로 대한민국을 넘어 중국과 일본 등 아시아에 다시금 한류 열풍을 불러일으켰습

More information

학위논문홍승아.hwp

학위논문홍승아.hwp 印 印 印 - iv - - v - - vi - - vii - - viii - -1- -2- -3- -4- -5- -6- - -7- vii - - -8- viii - -9- 1) --10- x - --11- xi - --12- xii - -13- -14- -15- -16- -17- -18- -19- -20- --21- xxi - -22- - -23- xxiii

More information

고용허가제와 방문취업제 외국인의 취업 및 사회생활 사본

고용허가제와 방문취업제 외국인의 취업 및 사회생활 사본 2011 발 간 등 록 번 호 11-1270000-000682-01 간접투자 이민제도의 해외사례 및 정책적 시사점 연구책임자: 공동연구자: 강동관 (IOM이민정책연구원 연구위원) 이완수 (IOM이민정책연구원 연구위원) 한태희 (IOM이민정책연구원) 황진영 (한남대학교 경제학과 교수) 정강옥 (한남대학교 경영학과 교수) 임응순 (고려대학교 연구교수) 2011.

More information

<28323129BACFC7D1B1B3C0B0C1A4C3A5B5BFC7E228B1E2BCFABAB8B0ED20545220323031342D373929202D20C6EDC1FD2035B1B32E687770>

<28323129BACFC7D1B1B3C0B0C1A4C3A5B5BFC7E228B1E2BCFABAB8B0ED20545220323031342D373929202D20C6EDC1FD2035B1B32E687770> 기술보고 TR 2014-79 북한 교육정책 동향 분석 및 서지 정보 구축 연구책임자 _ 김 정 원 (한국교육개발원 ) 공동연구자 _ 김 김 한 강 지 은 승 구 수 (한국교육개발원) 주 (한국교육개발원) 대 (한국교육개발원) 섭 (한국교육개발원) 연 구 조 원 _ 이 병 희 (한국교육개발원) 머리말 최근 통일에 대한 논의가 어느 때보다 활발합니다. 그에 따라

More information

013년도 전주ᆞ완주 탄소산업 : ( ) : ( ) : ( ) : ( ) : ( ) : ( ) : ( ) : ( ) : ( ) : ( ) ~ ~ 1. 최종 사업목표 및 내용 탄소 관련산업동향과 국가정책에 부응하여 탄소산업 중심의 테마형 집적화단지(Carbon Valley) 조성을 위한 탄소기업 유치 및 육성, 산업기반의 구축 등에 관한 전략적 접근이 필요함

More information

- i - - ii - - iii - - iv - - v - - vi - - vii - - viii - - ix - - x - - xi - - xii - - xiii - - xiv - - xv - - xvi - - xvii - - xviii - - xix - - xx - - xxi - - xxii - - xxiii - - xxiv - - xxv - - I

More information

교회 회장들의 가르침 조지 앨버트 스미스 교회 회장들의 가르침 조지 앨버트 스미스 예수 그리스도 후기 성도 교회 발행 유타 주 솔트레이크시티 교회 회장들의 가르침 총서로 출간된 책들 교회 회장들의 가르침: 조셉 스미스(물품 번호 36481 320) 교회 회장들의 가르침: 브리검 영(35554 320) 교회 회장들의 가르침: 존 테일러(35969 320) 교회

More information

김기남_ATDC2016_160620_[키노트].key

김기남_ATDC2016_160620_[키노트].key metatron Enterprise Big Data SKT Metatron/Big Data Big Data Big Data... metatron Ready to Enterprise Big Data Big Data Big Data Big Data?? Data Raw. CRM SCM MES TCO Data & Store & Processing Computational

More information

99-18.hwp

99-18.hwp - vii - - viii - - ix - - x - - xi - - xii - - xiii - - xiv - - xv - - xvi - - xvii - - xviii - - xix - - 20 - - 21 - - 22 - - 23 - - 24 - - 25 - - 26 - - 27 - - 28 - - 29 - - 30 - - 31 - - 32 - - 33 -

More information

97_00

97_00 Published by J&Son Inc. Printed in Korea. Copyright 2011 by J&Son Inc. Authorized translation from the English language edition of 97 Things Every Software Architect Should Know 2009 the Translation is

More information

세계 비지니스 정보

세계 비지니스 정보 - i - ii - iii - iv - v - vi - vii - viii - ix - 1 - 2 - 3 - - - - - - - - - - 4 - - - - - - 5 - - - - - - - - - - - 6 - - - - - - - - - 7 - - - - 8 - 9 - 10 - - - - - - - - - - - - 11 - - - 12 - 13 -

More information

2008 다문화가족의중장기전망및대책연구 : 다문화가족의장래인구추계및사회ㆍ경제적효과분석을중심으로 ㆍ ㆍ 2009

2008 다문화가족의중장기전망및대책연구 : 다문화가족의장래인구추계및사회ㆍ경제적효과분석을중심으로 ㆍ ㆍ 2009 2008 다문화가족의중장기전망및대책연구 : 다문화가족의장래인구추계및사회ㆍ경제적효과분석을중심으로 ㆍ ㆍ 2009 . 다문화가족의중장기전망및대책연구 : 다문화가족의장래인구추계및사회ㆍ경제적효과분석을중심으로 ㆍ ㆍ 2009 10 A Study of the Medium- to Long-term Prospects and Measures of Multicultural Family

More information

R을 이용한 텍스트 감정분석

R을 이용한 텍스트 감정분석 R Data Analyst / ( ) / kim@mindscale.kr (kim@mindscale.kr) / ( ) ( ) Analytic Director R ( ) / / 3/45 4/45 R? 1. : / 2. : ggplot2 / Web 3. : slidify 4. : 5. Matlab / Python -> R Interactive Plots. 5/45

More information

0

0 Kr 0 i 1 http://downloadcenter.nikonimglib.com/ 2 A 0 ii D A 0 iii 0 0 0 0 0 iv A http://downloadcenter.nikonimglib.com/ http://downloadcenter.nikonimglib.com/ v vi i i vii P S A M M viii ix R i i x D

More information

15인플레이션01-목차1~9

15인플레이션01-목차1~9 ISSN 87-381 15. 1 15. 1 13 1 1.3 1. 1.8 1.5 1. 1.1 () 1.5 1..1 1.8 1.7 1.3 () 1..7.6...3 (). 1.5 3.6 3.3.9. 6.3 5.5 5.5 5.3.9.9 ().6.3.. 1.6 1. i 6 5 6 5 5 5 3 3 3 3 1 1 1 1-1 -1 13 1 1).6..3.1.3.

More information

User's Guide

User's Guide KOR < > 1. ( ) : Laser Beam Printer (LBP3000) 2. : CANON INC. 3. / : CANON ZHONGSHAN BUSINESS MACHINESCO. LTD No.26,Huoju Dadao,Concentrated-constructed Quarter, Zhongshan Torch Hi-Tech Industrial Development

More information

김경재 안현철 지능정보연구제 17 권제 4 호 2011 년 12 월

김경재 안현철 지능정보연구제 17 권제 4 호 2011 년 12 월 지능정보연구제 17 권제 4 호 2011 년 12 월 (pp.241~254) Support vector machines(svm),, CRM. SVM,,., SVM,,.,,. SVM, SVM. SVM.. * 2009() (NRF-2009-327- B00212). 지능정보연구제 17 권제 4 호 2011 년 12 월 김경재 안현철 지능정보연구제 17 권제 4 호

More information

교육정책연구 2005-지정-52 공무원 채용시험이 대학교육, 노동시장에 미치는 영향분석 및 공무원 채용제도 개선방안 2005. 12 연구책임자 : 오 호 영 (한국직업능력개발원 부연구위원) 이 정책연구는 2005년도 교육인적자원부 인적자원개발 정책연구비 지원에 의 한

교육정책연구 2005-지정-52 공무원 채용시험이 대학교육, 노동시장에 미치는 영향분석 및 공무원 채용제도 개선방안 2005. 12 연구책임자 : 오 호 영 (한국직업능력개발원 부연구위원) 이 정책연구는 2005년도 교육인적자원부 인적자원개발 정책연구비 지원에 의 한 교육정책연구 2005-지정-52 공무원 채용시험이 대학교육, 노동시장에 미치는 영향분석 및 공무원 채용제도 개선방안 연 구 기 관 : 한국직업능력개발원 연구책임자 : 오 호 영 교육인적자원부 교육정책연구 2005-지정-52 공무원 채용시험이 대학교육, 노동시장에 미치는 영향분석 및 공무원 채용제도 개선방안 2005. 12 연구책임자 : 오 호 영 (한국직업능력개발원

More information

National Food & Nutrition Statistics 2011: based on 2008~2011 Korea National Health and Nutrition Examination Survey (Ⅱ) i ii iii iv v vi vii viii ix (N=33,745, 단위 : g) (N=33,745, 단위 : g) (N=33,745,

More information

untitled

untitled ISBN 89-90077-98-2 93300 2005 UNDP 워크샵 한국과 동남아시아의 성 인지적 문화정책을 찾아서 주 관: 한국문화관광정책연구원 한국동남아연구소 후 원: 문화관광부 과학기술부 UNDP 2005 UNDP 워크샵 : 한국과 동남아시아의 성 인지적 문화정책을 찾아서 연구진 연구책임자: 류정아 (한국문화관광정책연구원 문화정책팀장) 공동연구자: 김민정

More information

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx 1. MATLAB 개요와 활용 기계공학실험 I 2013년 2학기 MATLAB 시작하기 이장의내용 MATLAB의여러창(window)들의 특성과 목적 기술 스칼라의 산술연산 및 기본 수학함수의 사용. 스칼라 변수들(할당 연산자)의 정의 및 변수들의 사용 방법 스크립트(script) 파일에 대한 소개와 간단한 MATLAB 프로그램의 작성, 저장 및 실행 MATLAB의특징

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

Problem New Case RETRIEVE Learned Case Retrieved Cases New Case RETAIN Tested/ Repaired Case Case-Base REVISE Solved Case REUSE Aamodt, A. and Plaza, E. (1994). Case-based reasoning; Foundational

More information

U-Korea 선도사업 평가

U-Korea 선도사업 평가 U-Korea 선도사업 평가 2009. 9. 이 보고서는 국회예산정책처법 제3조의 규정에 의거 작성되었으며, 국회예산정책처 홈페이지(www.nabo.go.kr)를 통해 보실 수 있습니다. 발 간 사 U-Korea 선도사업은 유비쿼터스 인프라를 구축하고 유비쿼터스를 기반으로 하는 공공서비스를 제공함으로써 행정의 효율성을 높이고 국민의 편익을 증진시 키는 것을

More information

KeyMission 360 KeyMission ( ).... 4K UHD., 60 cm... ii KeyMission 360

KeyMission 360 KeyMission ( ).... 4K UHD., 60 cm... ii KeyMission 360 KeyMission 360 SnapBridge 1 4 20 34 ii iv vi. " "(x ), ",, "(xiv) " "(34 ).. KeyMission 360 KeyMission 360. 360 360 180 ( ).... 4K UHD., 60 cm... ii KeyMission 360 SnapBridge 360/170 KeyMission 360/170

More information

<BBE7B8B3B4EBC7D0B0A8BBE7B9E9BCAD28C1F8C2A5C3D6C1BE293039313232392E687770>

<BBE7B8B3B4EBC7D0B0A8BBE7B9E9BCAD28C1F8C2A5C3D6C1BE293039313232392E687770> 2008 사 립 대 학 감 사 백 서 2009. 11. 들어가는 말 2008년도 새 정부 출범 이후 구 교육인적자원부와 과학기술부가 하나의 부처로 통합하여 교육과학기술부로 힘차게 출범하였습니다. 그동안 교육과학기술부는 고교다양화 300 프로젝트 등 자율화 다양화된 교육체제 구축과 맞춤형 국가장학제도 등 교육복지 기반 확충으로 교육만족 두배, 사교육비 절감

More information

(JBE Vol. 21, No. 1, January 2016) (Regular Paper) 21 1, (JBE Vol. 21, No. 1, January 2016) ISSN 228

(JBE Vol. 21, No. 1, January 2016) (Regular Paper) 21 1, (JBE Vol. 21, No. 1, January 2016)   ISSN 228 (JBE Vol. 1, No. 1, January 016) (Regular Paper) 1 1, 016 1 (JBE Vol. 1, No. 1, January 016) http://dx.doi.org/10.5909/jbe.016.1.1.60 ISSN 87-9137 (Online) ISSN 16-7953 (Print) a), a) An Efficient Method

More information

<3230313420B9AEC8ADBFB9BCFA20C6AEB7BBB5E520BAD0BCAE20B9D720C0FCB8C128B1E8C7FDC0CE292E687770>

<3230313420B9AEC8ADBFB9BCFA20C6AEB7BBB5E520BAD0BCAE20B9D720C0FCB8C128B1E8C7FDC0CE292E687770> 연구책임 김 혜 인 (한국문화관광연구원 책임연구원) 조사담당 JnP (장앤파트너스그룹) 연구보조 김 연 희 (홍익대학교 예술학과 석사) 권 해 정 (Aix-Marseille3대학교 문화경영학과 석사) 최 희 승 (홍익대학교 예술학과 석사) 심 상 미 (연세대학교 미디어아트학과 석사) 서 문 2010년부터 지속되어온 연구시리즈의

More information

I. 회사의 개요 1. 회사의 개요 1) 회사의 법적, 상업적 명칭 당사의 명칭은 "주식회사 한글과컴퓨터"라고 표기합니다. 또한 영문으로는 "HANCOM INC." 라 표기합니다. 단, 약식으로 표기할 경우에는 (주)한글과컴퓨터라 고 표기합니다. 2) 설립일자 및 존속

I. 회사의 개요 1. 회사의 개요 1) 회사의 법적, 상업적 명칭 당사의 명칭은 주식회사 한글과컴퓨터라고 표기합니다. 또한 영문으로는 HANCOM INC. 라 표기합니다. 단, 약식으로 표기할 경우에는 (주)한글과컴퓨터라 고 표기합니다. 2) 설립일자 및 존속 반 기 보 고 서 (제 23 기) 사업연도 2012년 01월 01일 2012년 06월 30일 부터 까지 금융위원회 한국거래소 귀중 2012년 8 월 14 일 회 사 명 : 주식회사 한글과컴퓨터 대 표 이 사 : 김 상 철,이 홍 구 본 점 소 재 지 : 경기도 성남시 분당구 대왕판교로 644번길49 한컴타워 10층 (전 화) 031-627-7000 (홈페이지)

More information

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할수없습니다. 변경금지. 귀하는이저작물을개작, 변형또는가공할수없습니다. 귀하는, 이저작물의재이용이나배포의경우,

More information

<32303134303730312DB9CCB7A1B1B3C0B020C3BCC7E8B0FC20C0CCC0FC20B1B8C3E0C0BB20C0A7C7D120BCB3B0E820BFACB1B820B9D720BFEEBFB520C7C1B7CEB1D7B7A520B0B3B9DF2E687770>

<32303134303730312DB9CCB7A1B1B3C0B020C3BCC7E8B0FC20C0CCC0FC20B1B8C3E0C0BB20C0A7C7D120BCB3B0E820BFACB1B820B9D720BFEEBFB520C7C1B7CEB1D7B7A520B0B3B9DF2E687770> 연구보고 KR 2013-8 미래교육체험관 이전 구축을 위한 설계 연구 및 운영 프로그램 개발 연구보고 KR 2013-8 미래교 영 : 정낙현(안동대학교) 동 : 오명선(안동대학교) 유인두(버츄얼빌더스) 김광수(안동대학교) 유동환(안동대학교) : 박귀영(안동대학교) 박혁철(미래세움) 안경섭(서울대학교) 이 연구는 한국교육학술정보원의 '미래교육체험관 이전 구축을

More information

CONTENTS C U B A I C U B A 8 Part I Part II Part III Part IV Part V Part VI Part VII Part VIII Part IX 9 C U B A 10 Part I Part II Part III Part IV Part V Part VI Part VII Part VIII Part IX 11 C U B

More information

<32303131B3E22032BAD0B1E220C4DCC5D9C3F7BBEABEF7B5BFC7E2BAD0BCAEBAB8B0EDBCAD28C3D6C1BE292E687770>

<32303131B3E22032BAD0B1E220C4DCC5D9C3F7BBEABEF7B5BFC7E2BAD0BCAEBAB8B0EDBCAD28C3D6C1BE292E687770> 2011년 2분기 콘텐츠산업 동향분석보고서 2011. 09 요 약 ⅰ Ⅱ. 2011년 2분기 콘텐츠업체 실태조사 분석 Ⅰ. 2011년 2분기 콘텐츠산업 추이 분석 1. 산업생산 변화 추이 3 1.1. 콘텐츠산업생산지수 변화 추이 3 1.2. 콘텐츠업체(상장사) 매출액 변화 추이 9 1.3. 콘텐츠업체(상장사) 영업이익 변화 추이20 2. 투자변화 추이 24

More information

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for 2003 Development of the Software Generation Method using Model Driven Software Engineering Tool,,,,, Hoon-Seon Chang, Jae-Cheon Jung, Jae-Hack Kim Hee-Hwan Han, Do-Yeon Kim, Young-Woo Chang Wang Sik, Moon

More information

정보기술응용학회 발표

정보기술응용학회 발표 , hsh@bhknuackr, trademark21@koreacom 1370, +82-53-950-5440 - 476 - :,, VOC,, CBML - Abstract -,, VOC VOC VOC - 477 - - 478 - Cost- Center [2] VOC VOC, ( ) VOC - 479 - IT [7] Knowledge / Information Management

More information

<32303132B3E220C7CFB9DDB1E2BACEC5CD20C0CCB7B8B0D420B4DEB6F3C1FDB4CFB4D928706466292E687770>

<32303132B3E220C7CFB9DDB1E2BACEC5CD20C0CCB7B8B0D420B4DEB6F3C1FDB4CFB4D928706466292E687770> 법령 개정 등이 필요한 제도개선 사항은 사정에 따라 시행일자 등의 변경이 있을 수 있습니다 목 록 i 목 록 분야별 달라지는 주요 제도 1. 세 제 3 1세대 1주택 비과세 보유기간 요건 단축 /3 일시적 2주택자의 대체취득기간 연장 /4 부가가치세 과세 전환 /5 면세유 공급대상 농업기계 확대 /6 국세-관세 간 과세가격 조정제도 신설/7 비거주자 외국법인에

More information

Intra_DW_Ch4.PDF

Intra_DW_Ch4.PDF The Intranet Data Warehouse Richard Tanler Ch4 : Online Analytic Processing: From Data To Information 2000. 4. 14 All rights reserved OLAP OLAP OLAP OLAP OLAP OLAP is a label, rather than a technology

More information

목 차 Ⅰ. 조사개요 1 Ⅱ. 용어해설 13 Ⅲ. 조사결과 17 1. 과학기술인력 양성 및 활용에 관한 거시통계 분석 결과 9 1 가. 과학기술인의 양성 현황 19 나. 과학기술인의 취업 현황 24 다. 과학기술인의 경제활동 현황 27 라. 과학기술인의 고용 현황 28

목 차 Ⅰ. 조사개요 1 Ⅱ. 용어해설 13 Ⅲ. 조사결과 17 1. 과학기술인력 양성 및 활용에 관한 거시통계 분석 결과 9 1 가. 과학기술인의 양성 현황 19 나. 과학기술인의 취업 현황 24 다. 과학기술인의 경제활동 현황 27 라. 과학기술인의 고용 현황 28 목 차 Ⅰ. 조사개요 1 Ⅱ. 용어해설 13 Ⅲ. 조사결과 17 1. 과학기술인력 양성 및 활용에 관한 거시통계 분석 결과 9 1 가. 과학기술인의 양성 현황 19 나. 과학기술인의 취업 현황 24 다. 과학기술인의 경제활동 현황 27 라. 과학기술인의 고용 현황 28 2. 과학기술인력 활용 실태조사 분석 결과 23 가. 과학기술인의 고용 및 채용 현황 3

More information

13백점맞는세트부록2년(49~57)

13백점맞는세트부록2년(49~57) 0 0 0 0 < > 0 0 0 0 0 0 00 0 0 000 00 00 00 00 0 00 00 00 00 00 00 0 00 00 0 00-0-00-0-00-0-00 00 0 00 < 0 0 0 ---- -0--- 0 00 0 0 < 0 0< 0-------- - ---- 0 0 00 > =0 0 0 0--0-0 0 =0 = =

More information

<31302E204D43545F47535FC3D6C1BEBAB8B0EDBCAD2E687770>

<31302E204D43545F47535FC3D6C1BEBAB8B0EDBCAD2E687770> 2011년도 부품 소재혁신연구회 MCT Global Scoreboard 제 출 문 한국산업기술진흥원장 귀 하 본 보고서를 2011년도 부품 소재혁신연구회 MCT Global Scoreboard (지원기간: 2012. 1. 2 ~ 2012. 3. 31) 과제의 최종보고서로 제출합니다. 2012. 3. 31 연구회명 : MCT K-Star 발굴 연구회 (총괄책임자)

More information

<C3BBB3E2B9AEC1A6BFA1B4EBC7D120B9AEC8ADC1A4C3A5C0FBC1A2B1D9C0BB20C0A7C7D1B1E2C3CABFACB1B82DC3D6C1BE2E687770>

<C3BBB3E2B9AEC1A6BFA1B4EBC7D120B9AEC8ADC1A4C3A5C0FBC1A2B1D9C0BB20C0A7C7D1B1E2C3CABFACB1B82DC3D6C1BE2E687770> 연구책임 박영정 (한국문화관광연구원 연구위원) 공동연구 박소현 (서울과학기술대학교 교수) 박진수 (대학내일20대연구소 소장) 연구참여 이수현 (한국문화관광연구원 위촉연구원) 연구자문 강승진 (춘천시문화재단 정책기획팀장) 김선기 (고함20 편집장) 노정태 (청년논객) 서민정 (청년허브 센터장) 송혜윤 (대학내일20대연구소 책임연구원) 오찬호 (서강대사회발전연구소

More information

소방설비 내진설계 기준 마련에 관한 연구 2007.12 소 방 방 재 청

소방설비 내진설계 기준 마련에 관한 연구 2007.12 소 방 방 재 청 National Emergency Management Agency 최 종 보 고 서 정책연구사업 소방시설 내진설계 기준 마련 에 관한 연구 주관연구기관 / 호 서 대 2007.12. 학 교 R&D Report 소 방 방 재 청 소방설비 내진설계 기준 마련에 관한 연구 2007.12 소 방 방 재 청 제 출 문 소방방재청장 귀하 본 보고서를 소방설비 내진설계

More information

Microsoft Word - SOS_KOREAN.doc

Microsoft Word - SOS_KOREAN.doc 1 ( 1:1) (Introduction to the Song of Solomon) Page 1 I. A.,, ( ). B. 900, ( ), 8 ( ) ( 11:3-4). C.. 1-4, 5-8. 1. 4,, ( ),,. 2. 4, ( ).,. ( 12:30). ( : 4:16-5:1). D. 8. 8. 8 : ( 1:8), ( 1:12-2:6), ( 2:8-9),

More information

그린홈이용실태및만족도조사

그린홈이용실태및만족도조사 2009 년도연구용역보고서 그린홈이용실태및 만족도설문조사 - 2009. 11. - 이연구는국회예산정책처의연구용역사업으로수행된것으로서, 보고서의내용은연구용역사업을수행한연구자의개인의견이며, 국회예산정책처의공식견해가아님을알려드립니다. 책임연구원 이화여자대학교소비자학과교수정순희 그린홈이용실태및만족도 설문조사 2009. 11. 책임연구원 정순희 ( 이화여자대학교소비자학과교수

More information

´ë±â-ÃÑ°ýº¸°í¼Ł.PDF

´ë±â-ÃÑ°ýº¸°í¼Ł.PDF 통일시대를 향한 한반도 개발협력 핵심 프로젝트 선정 및 실천과제 Major development projects for the integrated Korean peninsula - 총괄보고서 - 이상준, 김천규, 이백진, 이건민, 배은지, 김흠 임강택, 장형수, 김경술, 나희승, 김의준 연구진 연구책임 이상준 선임연구위원 김천규 연구위원 이백진 연구위원 이건민

More information

... 수시연구 2011-16.. 평창동계올림픽수송체계구축을위한 핵심쟁점및대응방안 Transport Countermeasure Strategies for the PyeongChang Winter Olympic Games... 문영준외 5 인... 서문 원장 김경철 목차 표목차 그림목차 xi 요약 xii xiii xiv xv xvi xvii xviii

More information

00-1표지

00-1표지 summary _I II_ summary _III 1 1 2 2 5 5 5 8 10 12 13 14 18 24 28 29 29 33 41 45 45 45 45 47 IV_ contents 48 48 48 49 50 51 52 55 60 60 61 62 63 63 64 64 65 65 65 69 69 69 74 76 76 77 78 _V 78 79 79 81

More information

P14-07.hwp

P14-07.hwp 정책연구 2014-07 바이오 분야 규제형성과정 개선방안 Limitations and Alternatives in Biotechnology Regulatory Processes 이명화 신은정 양승우 류이현 권보경 연 구 진 연구책임자 연구참여자 이명화 과학기술정책연구원 부연구위원 신은정 과학기술정책연구원 부연구위원 양승우 과학기술정책연구원 부연구위원 류이현

More information

1

1 04단원 컴퓨터 소프트웨어 1. 프로그래밍 언어 2. 시스템 소프트웨어 1/10 1. 프로그래밍 언어 1) 프로그래밍 언어 구분 각종 프로그래밍 언어에 대해 알아보는 시간을 갖도록 하겠습니다. 우리가 흔히 접하는 소프트웨어 들은 프로그래밍 언어로 만들어지는데, 프로그래밍 언어는 크게 2가지로 나눌 수 있습니다. 1 저급어 : 0과 1로 구성되어 있어, 컴퓨터가

More information

<C8DEB0A1C0CCBFEB20BDC7C5C2C1B6BBE720B9D720C8DEB0A1B9AEC8AD20B0B3BCB12DC6EDC1FD2E687770>

<C8DEB0A1C0CCBFEB20BDC7C5C2C1B6BBE720B9D720C8DEB0A1B9AEC8AD20B0B3BCB12DC6EDC1FD2E687770> 연구책임 이 성 태 (한국문화관광연구원 책임연구원) 연구보조 김 수 아 (서울시립대학교 조경학 석사) 서 문 우리나라는 국토에 매장되어 있는 천연자원은 물론 축적기술의 부족으 로 인하여 근로자의 근면과 성실을 통한 노동집약적 압축 성장을 추진한 역사가 있습니다. 보다 발전된 미래 청사진의 실현을 위해서 국민 모두가 쉬지 않고 일한 결과, 대한민국은 자동차

More information

<313320205BB0E6C1A65DB0F8B0B32DC1F6BDC4C0E7BBEAC0CEB7C220BCF6B1DEC0FCB8C120BFACB1B85FC0CCC1D6BFAC28C3D6C1BE292E687770>

<313320205BB0E6C1A65DB0F8B0B32DC1F6BDC4C0E7BBEAC0CEB7C220BCF6B1DEC0FCB8C120BFACB1B85FC0CCC1D6BFAC28C3D6C1BE292E687770> 인프라 기초연구과제 최종보고서 지식재산 동향 및 미래전망 Intellectual Property Trends and Prospects - 지식재산인력 수급전망 연구 - 2013. 12 제 출 문 특허청장 귀하 본 보고서를 인프라사업의 기초연구활성화 연구과제 중, 지식재산 동향 및 미래전망 - 지식재산인력 수급전망 연구 과제의 최종보고서로 제출합니다. 2013년

More information

Solaris Express Developer Edition

Solaris Express Developer Edition Solaris Express Developer Edition : 2008 1 Solaris TM Express Developer Edition Solaris OS. Sun / Solaris, Java, Web 2.0,,. Developer Solaris Express Developer Edition System Requirements. 768MB. SPARC

More information

도큐-표지

도큐-표지 Historical experiences of Agricultural development in Far Eastern Gnatovskaya Elena Nikolaevna (The Primorsky Agricultural State Academy, Russia) Исторический опыт аграрного развития Дальнего Востока.

More information

Nikon KeyMission 360. KeyMission 360 ( 1.5) SnapBridge 360/170 ( 1.1). SnapBridge 360/170., SnapBridge 360/170 OS.. KeyMission 360/ SnapBridge 360/170

Nikon KeyMission 360. KeyMission 360 ( 1.5) SnapBridge 360/170 ( 1.1). SnapBridge 360/170., SnapBridge 360/170 OS.. KeyMission 360/ SnapBridge 360/170 ii xiv 1 2 6 SnapBridge 360/170 13 25 28 31. " " (vi ), ",, " (x ) " " ( 31).. Nikon KeyMission 360. KeyMission 360 ( 1.5) SnapBridge 360/170 ( 1.1). SnapBridge 360/170., SnapBridge 360/170 OS.. KeyMission

More information

Àç°¡ »êÀçÀå¾ÖÀÎÀÇ ÀçÈ°ÇÁ·Î±×·¥¿¡ °üÇÑ¿¬±¸.HWP

Àç°¡ »êÀçÀå¾ÖÀÎÀÇ ÀçÈ°ÇÁ·Î±×·¥¿¡ °üÇÑ¿¬±¸.HWP 재가산재장애인의재활프로그램에관한연구 (Ⅰ) - 산재보험사후관리실태및개선방안 - 한국노동연구원 재가산재장애인의재활프로그램에관한연구 (Ⅰ) i 재가산재장애인의재활프로그램에관한연구 (Ⅰ) ii 재가산재장애인의재활프로그램에관한연구 (Ⅰ) iii 재가산재장애인의재활프로그램에관한연구 (Ⅰ) iv 재가산재장애인의재활프로그램에관한연구 (Ⅰ) v 재가산재장애인의재활프로그램에관한연구

More information

슬라이드 1

슬라이드 1 Data-driven Industry Reinvention All Things Data Con 2016, Opening speech SKT 종합기술원 최진성원장 Big Data Landscape Expansion Big Data Tech/Biz 진화방향 SK Telecom Big Data Activities Lesson Learned and Other Topics

More information

Microsoft Word - 김창환.doc

Microsoft Word - 김창환.doc 포커스 포커스 악성댓글의 실태와 대응 방안 김창환* 인터넷은 전 세계적으로 다양한 계층이 사용하고 있는 대표적인 서비스로 다양한 사건 사고와 핫이슈들 을 실시간으로 접할 수 있고, 사용자들에게는 즐거움을 준다. 하지만 해킹을 비롯한 사이버 테러는 수법이 날로 교묘해지고 군사ㆍ행정ㆍ금융 등 한 국가의 주요 정보를 파괴하고 있으며, 최근에는 악성댓글이 익명 성을

More information

서 문 우리나라는 ITU( 국제전기통신연합 ) 가 발표한 디지털기회지수 (DOI) 에서 2년 연속 세계 1 위를 차지함으로써 명실상부한 IT 강국 코리아 의 국제적 위상을 다시 한번 확인한 바 있습니다. 이러한 세계 최고 수준의 정보통신 환경을 기반 으로 우리나라는 언

서 문 우리나라는 ITU( 국제전기통신연합 ) 가 발표한 디지털기회지수 (DOI) 에서 2년 연속 세계 1 위를 차지함으로써 명실상부한 IT 강국 코리아 의 국제적 위상을 다시 한번 확인한 바 있습니다. 이러한 세계 최고 수준의 정보통신 환경을 기반 으로 우리나라는 언 2006년 하반기 정보화실태조사 Survey on the Computer and Internet Usage 2007. 2 정 보 통 신 부 한국인터넷진흥원 서 문 우리나라는 ITU( 국제전기통신연합 ) 가 발표한 디지털기회지수 (DOI) 에서 2년 연속 세계 1 위를 차지함으로써 명실상부한 IT 강국 코리아 의 국제적 위상을 다시 한번 확인한 바 있습니다.

More information

표1

표1 i ii Korean System of National Accounts iii iv Korean System of National Accounts v vi Korean System of National Accounts vii viii Korean System of National Accounts 3 4 KOREAN SYSTEM OF NATIONAL ACCOUNTS

More information

p529~802 Á¦5Àå-¼º¸í,Ç×ÀÇ

p529~802 Á¦5Àå-¼º¸í,Ç×ÀÇ 제5장 >>> 성명서 선언문 항의 - 건의서 및 각종 공한 筆禍事件 思想界, 코리아 타임스 및 東亞日報 사건에 대한 抗議 1958년 8월 16일 / 抗議文 本協會는 최근 신문, 잡지 등의 취재 혹은 기고에 관한 필화사건이 빈발됨을 유감으 로 생각 한다. 현재 문제되고 있는 것을 들어보면 思想界 8월호에 게재된 咸錫憲씨의 생각하 에 기고된 張秀永씨의 는 백성이라야

More information

No Title

No Title 昤 昤 昤 ...43 ...45 ...45 ...59 (1-)...63 (1-)...63 ...68 (1)...71 [2-1] CRM... 11 [2-2] CRM...20 [2-3]...39 [3-1]...46 [3-2]...47 [3-3]...48 [3-4]...49 [3-5]...49

More information

이 보고서는 2014년도 방송통신위원회 방송통신발전기금 방송통신 정책연구사업의 연구결과로서 보고서 내용은 연구자의 견해이며, 방송통신위원회의 공식입장과 다를 수 있습니다. 제 출 문 방송통신위원회 위원장 귀하 본 보고서를 방송콘텐츠의 세계화 및 경쟁력 제고를 위한 글로벌 편성정책 방향 연구 의 연구결과보고서로 제출합니다. 2014년 11월 연 구 기 관 :

More information

<5B37B9F820B0FAC1A65D2032303135B3E220C0CEC5CDB3DD20BAD2B9FDA1A4C0AFC7D8C1A4BAB820BDC7C5C220C1B6BBE72DC3D6C3D6C1BE2E687770>

<5B37B9F820B0FAC1A65D2032303135B3E220C0CEC5CDB3DD20BAD2B9FDA1A4C0AFC7D8C1A4BAB820BDC7C5C220C1B6BBE72DC3D6C3D6C1BE2E687770> KCSC 2015-007 2015년 불법 유해정보 실태 조사 보고서 2015. 12. 이 보고서는 2015년 방송통신심의위원회의 심의정책 연구개발 사업의 결과물로서 보고서의 내용은 연구자의 견해이며, 방송통신심의위원회의 공식 입장은 아닙니다. 2015년 불법 유해정보 실태 조사 보고서 연 구 진 조사수행기관 책 임 연 구 원 연 구 보 조 원 : (주)비욘드리서치

More information

목 차 I. 외부감사인의 감사보고서 - - - - - - - - - - - - - - - - - - - - - - - 1 II. 연결재무제표 연결재무상태표 - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4 연결포괄손

목 차 I. 외부감사인의 감사보고서 - - - - - - - - - - - - - - - - - - - - - - - 1 II. 연결재무제표 연결재무상태표 - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4 연결포괄손 SK네트웍스 주식회사와 그 종속기업 연 결 재 무 제 표 에 대 한 감 사 보 고 서 제 60 기 2012년 01월 01일 부터 2012년 12월 31일 까지 제 59 기 2011년 01월 01일 부터 2011년 12월 31일 까지 삼정회계법인 목 차 I. 외부감사인의 감사보고서 - - - - - - - - - - - - - - - - - - - - - -

More information

... 연구총서 2010-17.. 도로사업의계획기준합리화방안연구 Improving Highway Type Decision Methods in a Highway Planning Process... 이동민ㆍ조한선외... 서문 원장 황기연 목차 표목차 그림목차 xiii 요약 xiv xv xvi xvii xviii xix xx xxi xxii 요약 xxiii

More information

장애인통계-0110-최종.hwp

장애인통계-0110-최종.hwp 작성기준일 : 2013년 12월 19일 문 의 처 : 한국장애인고용공단 고용개발원 조사통계부 Tel:031-728-7108 Fax:031-728-7143 머 리말 우리나라 등록장애인 수는 2012년 12월 말 현재 251만 1천명으로, 2000년 12월 말 95만 8천명에서 약 162% 증가하였습니다. 장애인 인구가 이처럼 급격히 증가함에 따 라 장애인 정책에

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 [ 인공지능입문랩 ] SEOPT ( Study on the Elements Of Python and Tensorflow ) 인공지능 + 데이터분석목적 / 방법 / 기법 / 도구 + Python Programming 기초 + NumpyArray(Tensor) youngdocseo@gmail.com 1 *3 시간 / 회 구분일자내용비고 1 회 0309

More information