프로그래머가 알아야 할 알고리즘 40 (파이썬 예제로 배우는 필수 알고리즘!)

프로그래머가 알아야 할 알고리즘 40 (파이썬 예제로 배우는 필수 알고리즘!)

$24.35
Description
현실 세계의 문제를 해결하는 40가지 알고리즘을 배우면서
프로그래머라면 꼭 갖춰야 할 알고리즘 응용력과 문제 해결력을 높이자!
현대 사회에서 개발자와 프로그래머가 갖추어야 하는 필수 소양은 알고리즘을 이용한 문제 해결 능력이다. 이 책은 문제의 성격에 따라 적합한 알고리즘을 소개하고 그 작동 원리를 설명한다. 특히 현실 세계의 문제를 해결하는 40여 개 알고리즘을 보여주면서 그 작동 원리를 이해시키고 파이썬으로 직접 구현해 본다.
저자

임란아마드

ImranAhmad
구글(Google)인증인스트럭터로,지난수년간구글과러닝트리(LearningTree)에서파이썬,빅데이터,머신러닝,딥러닝을가르치고있다.클라우드컴퓨팅환경에서자원할당을최적화할수있는새로운선형프로그래밍기반알고리즘인ATSRA라는알고리즘을제안하여박사학위를받았다.이후캐나다연방정부소속고등분석연구소에서진행하는머신러닝프로젝트에서이민절차를자동화하는알고리즘을개발하는데힘썼으며,복잡한머신러닝모델을학습할때GPU를최적으로사용하는알고리즘을개발하고있다.

목차

1부기초와핵심알고리즘

1장알고리즘기초
1.1알고리즘정의하기
__1.1.1알고리즘의단계
1.2알고리즘의로직표현하기
__1.2.1의사코드이해하기
__1.2.2스니펫사용하기
__1.2.3실행계획생성하기
1.3파이썬패키지살펴보기
__1.3.1파이썬패키지
__1.3.2주피터노트북으로파이썬사용하기
1.4알고리즘설계기법이해하기
__1.4.1데이터차원
__1.4.2연산차원
1.5성능분석하기
__1.5.1공간복잡도분석
__1.5.2시간복잡도분석
__1.5.3성능추정
__1.5.4알고리즘선택
__1.5.5빅오표기법
1.6알고리즘검증하기
__1.6.1결정론적,비결정론적알고리즘과최적,근사알고리즘
__1.6.2해석가능성
1.7요약

2장알고리즘에사용되는자료구조
2.1파이썬자료구조파악하기
__2.1.1리스트
__2.1.2튜플
__2.1.3딕셔너리
__2.1.4세트
__2.1.5데이터프레임
__2.1.6행렬
2.2추상화자료유형파악하기
__2.2.1벡터
__2.2.2스택
__2.2.3큐
__2.2.4스택과큐에대한기본아이디어
__2.2.5트리
2.3요약

3장정렬과검색알고리즘
3.1정렬알고리즘이해하기
__3.1.1파이썬에서변수바꾸기
__3.1.2버블정렬
__3.1.3삽입정렬
__3.1.4병합정렬
__3.1.5셸정렬
__3.1.6선택정렬
3.2검색알고리즘이해하기
__3.2.1선형검색
__3.2.2이진검색
__3.2.3보간검색
3.3활용사례-이민관리청에접수된서류조회하기
3.4요약

4장알고리즘설계
4.1알고리즘설계의기본개념살펴보기
__4.1.1관점1-설계한알고리즘이우리가기대하는결과를출력하는가?
__4.1.2관점2-설계한알고리즘이결과를얻을수있는최적의방법인가?
__4.1.3관점3-설계한알고리즘이규모가더큰데이터셋을다룰수있는가?
4.2알고리즘설계전략이해하기
__4.2.1분할및정복전략이해하기
__4.2.2동적계획법이해하기
__4.2.3탐욕알고리즘이해하기
4.3활용사례-외판원문제해결하기
__4.3.1무차별대입전략사용하기
__4.3.2탐욕알고리즘사용하기
4.4페이지랭크알고리즘이해하기
__4.4.1문제정의하기
__4.4.2페이지랭크알고리즘구현하기
4.5선형계획법이해하기
__4.5.1선형계획법문제정의하기
4.6활용사례-선형계획법을활용해용량계획하기
4.7요약

5장그래프알고리즘
5.1그래프표현이해하기
__5.1.1그래프유형
__5.1.2특수한유형의엣지
__5.1.3에고중심네트워크
__5.1.4소셜네트워크분석
5.2네트워크분석이론살펴보기
__5.2.1최단경로
__5.2.2삼각형
__5.2.3밀도
__5.2.4중심성지표이해하기
__5.2.5파이썬으로중심성지표계산하기
5.3그래프순회이해하기
__5.3.1너비우선검색
__5.3.2깊이우선검색
5.4활용사례-사기범죄분석하기
__5.4.1간단한사기분석방법
__5.4.2감시탑사기분석방법
5.5요약

2부머신러닝알고리즘

6장비지도학습알고리즘
6.1비지도학습이해하기
__6.1.1데이터마이닝사이클에서의비지도학습
__6.1.2비지도학습의최신연구트렌드
__6.1.3비지도학습의활용사례
6.2클러스터링알고리즘이해하기
__6.2.1유사도측정하기
__6.2.2계층적클러스터링알고리즘
__6.2.3클러스터평가하기
__6.2.4클러스터링의활용사례
6.3차원축소알고리즘이해하기
__6.3.1주성분분석
__6.3.2주성분분석의한계
6.4연관규칙마이닝이해하기
__6.4.1연관규칙마이닝의활용사례
__6.4.2장바구니분석
__6.4.3연관규칙
__6.4.4평가척도
__6.4.5연관규칙마이닝알고리즘
6.5활용사례-비슷한트윗끼리클러스터링하기
__6.5.1토픽모델링
__6.5.2클러스터링
6.6이상탐지알고리즘이해하기
__6.6.1클러스터링알고리즘
__6.6.2밀도기반이상탐지알고리즘
__6.6.3서포트벡터머신알고리즘
6.7요약

7장전통적인지도학습알고리즘
7.1지도학습이해하기
__7.1.1지도학습구조소개
__7.1.2지도학습의필요조건
__7.1.3분류모델과회귀모델비교하기
7.2분류알고리즘이해하기
__7.2.1분류문제소개
__7.2.2분류모델평가하기
__7.2.3분류모델구축단계
__7.2.4결정트리분류알고리즘
__7.2.5앙상블알고리즘
__7.2.6로지스틱회귀알고리즘
__7.2.7서포트벡터머신알고리즘
__7.2.8나이브베이즈알고리즘
__7.2.9분류알고리즘비교하기
7.3회귀알고리즘이해하기
__7.3.1회귀문제소개
__7.3.2선형회귀알고리즘
__7.3.3회귀트리알고리즘
__7.3.4그레이디언트부스팅회귀알고리즘
__7.3.5회귀알고리즘비교하기
7.4활용사례-날씨예측하기
7.5요약

8장뉴럴네트워크알고리즘
8.1뉴럴네트워크이해하기
8.2뉴럴네트워크의발전살펴보기
8.3뉴럴네트워크훈련하기
__8.3.1뉴럴네트워크구조
__8.3.2경사하강법
__8.3.3활성화함수
8.4도구와프레임워크살펴보기
__8.4.1케라스
__8.4.2텐서플로사용하기
__8.4.3뉴럴네트워크의종류
8.5전이학습이해하기
8.6활용사례-딥러닝으로부정탐지하기
__8.6.1방법론
8.7요약

9장자연어처리알고리즘
9.1자연어처리살펴보기
__9.1.1자연어처리용어이해하기
__9.1.2자연어처리툴킷
9.2백오브워즈기반자연어처리이해하기
9.3단어임베딩살펴보기
__9.3.1단어의이웃
__9.3.2단어임베딩의특징
9.4자연어처리에리커런트뉴럴네트워크사용하기
9.5자연어처리를이용해감성분석하기
9.6활용사례-영화리뷰감성분석하기
9.7요약

10장추천엔진
10.1추천엔진살펴보기
10.2추천엔진종류살펴보기
__10.2.1콘텐츠기반추천엔진
__10.2.2협업필터링추천엔진
__10.2.3하이브리드추천엔진
10.3추천엔진의한계점이해하기
__10.3.1콜드스타트문제
__10.3.2메타데이터
__10.3.3데이터희소성문제
__10.3.4사회적영향력으로인한편향
__10.3.5제한된데이터
10.4활용분야살펴보기
10.5활용사례-추천엔진으로영화추천하기
10.6요약
3부고급기법

11장데이터알고리즘
11.1데이터알고리즘살펴보기
__11.1.1데이터분류
11.2데이터저장알고리즘이해하기
__11.2.1데이터저장전략이해하기
11.3데이터스트리밍알고리즘이해하기
__11.3.1스트리밍활용분야
11.4데이터압축알고리즘이해하기
__11.4.1무손실압축알고리즘
11.5활용사례-트위터실시간감성분석하기
11.6요약

12장암호화
12.1암호화살펴보기
__12.1.1가장약한연결고리의중요성이해하기
__12.1.2기본용어
__12.1.3보안요구사항이해하기
__12.1.4기본적인암호설계이해하기
12.2암호화기법의종류이해하기
__12.2.1암호화해시함수사용하기
__12.2.2대칭암호화
__12.2.3비대칭암호화
12.3활용사례-머신러닝모델배포와관련한보안이슈살펴보기
__12.3.1중간자공격
__12.3.2위장공격
__12.3.3데이터와모델암호화
12.4요약

13장대규모알고리즘
13.1대규모알고리즘살펴보기
__13.1.1대규모알고리즘정의
__13.1.2기본용어
13.2병렬알고리즘설계이해하기
__13.2.1암달의법칙
__13.2.2작업세분성
__13.2.3부하분산
__13.2.4국지성이슈
__13.2.5파이썬에서병렬프로세싱실행하기
13.3멀티자원프로세싱전략이해하기
__13.3.1컴퓨팅통합장치아키텍처
__13.3.2클러스터컴퓨팅
__13.3.3혼합방법
13.4요약

14장실질적고려사항
14.1실질적고려사항살펴보기
__14.1.1AI트위터봇의슬픈사연
14.2알고리즘의해석가능성이해하기
__14.2.1머신러닝알고리즘과해석가능성
14.3알고리즘의윤리이해하기
__14.3.1학습알고리즘이가진문제
__14.3.2윤리적고려사항이해하기
14.4모델의편향줄이기
14.5NP-난해문제다루기
__14.5.1문제를단순화하기
__14.5.2널리알려진다른해결책을수정해사용하기
__14.5.3확률적모델사용하기
14.6알고리즘을사용해야할때
__14.6.1활용사례-검은백조이벤트
14.7요약

찾아보기

출판사 서평

파이썬으로구현된
다양한알고리즘을배우고
문제해결력을기르자!

기초알고리즘은물론머신러닝알고리즘까지다룬다
먼저알고리즘의정의와다양한알고리즘설계기법들을접하고,사례를통해알고리즘을어떻게구현하는지학습한다.기초알고리즘은물론,선형계획법,페이지랭크,그래프알고리즘,머신러닝알고리즘처럼더복잡한알고리즘까지살펴본다.

이해하기쉬운파이썬코드로실습
각알고리즘을소개하고설계기법을설명한뒤에는파이썬을이용해설계대로알고리즘을구현해본다.파이썬을사용할줄안다면실습에어려움을겪지않도록이해하기쉽게코드를작성했다.특히주피터노트북을사용하여실습하기때문에알고리즘구현결과를텍스트나차트등으로바로바로확인하여알고리즘의작동원리를효과적으로이해할수있다.