고의적이든 우발적이든 인터넷에 기여하는 사람들의 수가 증가함에 따라 사용자 경험, 마케팅, 개인적 취향, 그리고 일반적으로 인간의 행동에 대한 수백만 가지의 잠재적인 통찰력을 제공하는 거대한 데이터 세트를 만들어냈다. 이 포스팅은 새롭게 부상하고 있는 집단지성의 분야에 대해 소개한다. 이것은 여러분이 아마 들어봤을 많은 웹 사이트에서 흥미로운 데이터 세트를 얻는 방법, 여러분의 애플리케이션 사용자들로부터 데이터를 수집하는 방법에 대한 아이디어, 그리고 여러분이 그것을 발견했을 때 그것을 분석하고 이해하는 많은 다양한 방법들을 포함한다. 이 포스팅의 목표는 단순한 데이터베이스 지원 응용 프로그램을 넘어서 당신과 다른 사람들이 매일 수집하는 정보를 이용하기 위해 더 똑똑한 프로그램을 만드는 방법을 가르쳐 주는 것이다.


필수 구성 요소 

이 포스팅의 코드 예는 파이썬으로 되어 있으며, 파이썬 프로그래밍에 익숙하면 도움이 되겠지만, 나는 다른 언어의 프로그래머들이 따를 수 있도록 모든 알고리즘에 대한 설명을 제공한다. 피톤 코드는 루비나 펄과 같은 고급 언어를 아는 사람들에게 특히 쉽게 따라갈 수 있을 것이다. 이 포스팅은 프로그래밍을 배우는 지침으로 의도된 것이 아니므로, 기본적인 개념에 익숙할 만큼 코딩을 충분히 한 것이 중요하다. 재귀와 기본적인 기능 프로그래밍에 대해 잘 이해한다면, 그 재료는 훨씬 더 쉽게 찾을 수 있을 것이다. 


이 포스팅은 당신이 데이터 분석, 기계 학습 또는 통계에 대한 사전 지식을 가지고 있다고 가정하지 않는다. 나는 가능한 한 간단한 방법으로 수학 개념을 설명하려고 노력했지만, 삼각법과 기본 통계에 대한 약간의 지식을 갖는 것은 알고리즘을 이해하는 데 도움이 될 것이다.


예제 유형 

각 섹션의 코드 예는 자습서 형식으로 작성되어 있어, 단계별로 애플리케이션을 구축하고 알고리즘의 작동 방식에 대한 좋은 평가를 받도록 권장한다. 대부분의 경우, 새로운 기능이나 방법을 만든 후에, 당신은 그것이 어떻게 작동하는지 이해하기 위해 그것을 대화형 세션에서 사용할 것이다. 알고리즘은 대부분 여러 가지 방법으로 확장할 수 있는 단순한 변형이다. 예를 살펴보고 상호작용적으로 테스트함으로써, 여러분은 자신의 애플리케이션을 위해 사례를 개선할 수 있는 방법에 대한 통찰력을 얻을 수 있을 것이다.


왜 파이썬이야? 

알고리즘이 관련된 공식에 대한 설명과 함께 단어로 설명되지만, 알고리즘과 예제 문제에 대한 실제 코드를 갖는 것이 훨씬 더 유용하고(아마도 쉽게 따라 할 수 있을 것이다). 이 포스팅의 모든 예시 코드는 뛰어난 고급 언어인 파이톤으로 쓰여져 있다. Python을 선택한 이유는 다음과 같다.


간결하다

파이톤과 같은 동적으로 타이핑된 언어로 쓰여진 코드는 다른 주류 언어에서 쓰여진 코드보다 더 짧은 경향이 있다. 이것은 예제를 살펴볼 때 타자가 적다는 것을 의미하지만, 그것은 또한 알고리즘을 머리 속에 맞추는 것이 더 쉽다는 것을 의미하고 그것이 무엇을 하고 있는지 정말로 이해한다는 것을 의미한다.


읽기 쉽다

파이톤은 때때로 "실행 가능한 의사 코드"라고 불려왔다. 이것은 분명히 과장된 것이지만, 대부분의 경험이 풍부한 프로그래머들은 파이썬 코드를 읽을 수 있고 그것이 무엇을 해야 하는지를 이해할 수 있다는 점을 강조한다. Python에서 덜 명확한 구성들 중 일부는 아래의 "Python 팁" 섹션에 설명되어 있다.


쉽게 확장 가능하다

Python은 수학적 기능, XML(확장 가능한 마크업 언어) 구문 분석, 웹 페이지 다운로드 등을 포함한 많은 라이브러리와 함께 표준이 된다. 포스팅에 사용된 RSS(Really Simple Syndication) 파서나 SQLite 인터페이스와 같은 비표준 라이브러리는 무료로 다운로드, 설치, 사용이 편리하다.


상호적인이다

예를 통해 작업할 때, 단지 테스트를 위해 다른 프로그램을 작성하지 않고도 기능을 사용해 보는 것이 유용하다. Python은 명령줄에서 직접 프로그램을 실행할 수 있으며, 함수 호출, 객체 생성 및 테스트 패키지를 대화식으로 입력할 수 있는 대화형 프롬프트도 가지고 있다.


다변성체 

Python은 객체 지향, 절차적, 기능적 프로그래밍 스타일을 지원한다. 기계 학습 알고리즘은 매우 다양하며, 어떤 것을 구현하는 가장 명확한 방법은 다른 패러다임과 다른 패러다임을 사용할 수 있다. 때로는 매개 변수로서 기능을 전달하고 다른 시간으로 전달하여 객체의 상태를 포착하는 것이 유용하다. Python은 두 가지 접근방식을 모두 지원한다.


멀티플랫폼 및 무료이다

Python은 모든 주요 플랫폼에 대한 단일 참조 구현을 가지고 있으며, 모든 플랫폼에 대해 무료다. 이 포스팅에 설명된 코드는 윈도, 리눅스, 매킨토시에서도 작동할 것이다.


파이썬 팁 

파이썬의 프로그래밍에 관심이 있는 초보자들을 위해, 탁월한 개요를 제공하는 마크 루츠와 데이비드 애셔(O'Reilly)의 학습 파이썬을 읽어볼 것을 추천한다. 다른 언어의 프로그래머들은 피톤 코드를 비교적 쉽게 따라야 하지만, 이 책을 통해서 나는 좀 더 직접적으로 알고리즘이나 기본 개념을 표현할 수 있기 때문에 파이톤의 특이한 구문을 사용한다는 것을 알아야 한다. 


목록 및 사전 작성자 

파이톤은 원시적인 타입이 잘 갖추어져 있고 이 책 전체에서 많이 사용되는 두 종류는 목록과 사전이다. 목록은 모든 유형의 값의 순서 목록이며, 대괄호로 구성된다.


number_list=[1,2,3,4] 

string_list=['a', 'b', 'c', 'd'] 

mixed_list=['a', 3, 'c, 8]


사전은 다른 언어의 해시맵과 유사한 키/값 쌍의 순서 없는 집합이다. 


ages={'John':24,'Sarah':28,'Mike':31}


목록과 사전의 요소는 목록 이름 뒤에 대괄호를 사용하여 접근할 수 있다.


string_list[2] # returns 'b'

ages['Sarah'] # returns 28

  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기