반응형

인공지능

머신러닝

딥러닝

 

계산 수학 공식

 

 

1. 딥러닝 실행을 위한 준비 사항

데이터:

예측 또는 분류

지도학습

비지도 학습

컴퓨터(cpu? gpu?)

프로그램

 

 

2. 딥러닝 작업 환경 만들기

Google colab

jupyter notebook

pycharm

 

아나콘다: 통합 패키지

pandas, scipy, jupyter, numpy

tensorflow, keras 

 

텐스플로 설치하기 

pip install tensorflow

 

keras 설치하기

pip install keras

 

3. 미지의 일을 예측하는 원리

예측

 

4. 폐암 수술 환자의 생존율 예측하기

loss: 예측이 실패할 경우

accuracy: 예측이 성공할 경우

 

5. 딥러닝의 개괄 잡기

첫번째 부분: 데이터 분석과 입력

속성 attribute

클래스 class

 

두번째 부분: 딥러닝 실행

 

activation :  다음 층으로 어떻게 값을 넘길지 결정하는 부분입니다.

loss: 한번 신경망이 실행할 떄 마다 오차 값을 사용하게끔 지정하고 있습니다

optimizer:  오차를 어떻게 줄여 나갈지 정하는 함수입니다

 

'블랙박스'를 극복하려면 ?

블랙박스:

반응형
반응형

B.4.2 코드 설계 팁

 

관련 있는 객체와 데이터는 유지

if __name__ == '__main__':

 

중첩을 피하자

결합도를 낮추고 모델화하면 테스트와 디버깅이 쉬워질 뿐 아니라 대화형 방식으로 사용하기도 쉬워진多

 

긴 파일에 대한 두려움을 버리자

큰 모듈

 

B.5 IPython 고급 기능

환경 설정

 

B.5.1 IPython 친화적인 클래스 만들기

pprint 을 사용하면 멋진 모양으로 출력을 해준다.

 

__repr__ 매직 메서드에서 반환하는 문자열을 받아서 (output = repr(obj) 콘솔로 출력한다.

 

B.5.2 프로파일과 설정

반응형

' > python for Data Analysis' 카테고리의 다른 글

Apeendix-04  (0) 2021.03.09
Apeendix-03  (0) 2021.03.09
Apeendix-02  (0) 2021.03.06
Apeendix  (0) 2021.03.06
14-2. 데이터 분석 예제 Apeendix A: 고급 Numpy  (0) 2021.03.02
반응형

B.2.1 셸 명령어와 별칭

IPython에서 !로 시작하는 줄은 느낌표 다음에 있는 내용을 시스템 셸에서 실행하라는 의다.

rm이나 del 명렬

 

셸 명령어의 콘솔 출력은 ! 를 이용해서 변수에 저장할 수 있다.

 

%alias 매직 함수는 셸 명령어에 대한 사용자 단축키(별칭)를 정의한다.

%alias ll ls -l

ll /usr

 

B.2.2 디렉터리 북마크 시스템

%boomark

디렉토리에 대한 별칭을 저장해도구 쉽게 이동 할 수 있도록 한다.

 

B.3 소프트웨어 개발 도구

 

B.3.1 대화형 디버거

%debug

사후처리 post-moterm 디버거 실행되고 예외가 발생한 시점의 스택 프레임 정보를 보여준다.

u up

d down

%pdb 

s step

 

대화형 디버거

 

디버거를 사용하는 다른 방법

set_trace함수 pdb.set_trace

 

B.3.2 실행 시간 측정 : %time 과 %timeit

import time

time.clock

time.time

 

%time은 한 문장을 실행하고 소요된 전체 실행 시간을 알려준다.

%timeit 한 문장을 실행하여 좀 더 정확한 평균 실행 시간을 구한다.

%tiemit 마이크로초 또는 나노초 단위의 매우 짧은 실행 시간을 가지는 함수나 문장을 분석하는데 매우 유용하다.

 

B.3.3 기본적인 프로파일링: %prun과 %run -p

cProfile은 프로그램이나 임의의 코드 블록을 실행하면서 각 함수에서 소요된 시간을 계속 기록한다.

python -m cProfile cprof_example.py

-s 정렬 순서 를 지정해주는 것이 보편적이다

cumulative

cumtime 

 

B.3.4 함수의 각 줄마다 프로파일링하기

%prun 

%lprun

 

B.4 IPython을 이용한 생산적인 코드 개발에 관한 팁

패러다임 전환 paradigm shift

 

B.4.1 모듈 의존성 리로딩하기

import some_lib을 입력하면 some_lib에 있는 코드가 실행되고 모든 변수와 함수, 그 안에 있는 import는 새로 생성된 some_lib 모듈의 네임스페이스 안에 저장된다.

reload

dreload

반응형

' > python for Data Analysis' 카테고리의 다른 글

Apeendix-05  (0) 2021.03.13
Apeendix-03  (0) 2021.03.09
Apeendix-02  (0) 2021.03.06
Apeendix  (0) 2021.03.06
14-2. 데이터 분석 예제 Apeendix A: 고급 Numpy  (0) 2021.03.02
반응형

A.7.1 Numba를 이용한 사용자 정의 numpy.ufunc만들기

numba.vectorize함수는 내장 ufunc처럼 작동하는 컴파일 된 numpy ufunc를 생성한다. 

numpy.add의 파이썬을 구현

 

from numba import vectorize

@vectorize

 

A.8 고급 배열 입출력

np.save np.load

 

A.8.1 메모리 앱 파일

메모리 앱 파일은 디스크에 저장된 아주 큰 이진 데이터를 메모리에 적재된 배열처럼 취급할 수 있다.

Numpy에는 ndarray와 유사한 memmap객체가 있는데, 배열 전체를 메모리에 적재하지 않고 큰 파일의 작은 부분을 읽고 쓸 수 있도록 해준다. 

flush()해주면 디스크에 기록한다.

 

A.8.2 HDF5 및 기타 배열 저장 옵션

PyTables와 h5py

HDF5 형식

 

A.9 성능 팁

Cython

 

A.9.1 인접 메모리의 중요성

연산 속도

 

B. IPython 시스템 더 알아보기

 

B.1 명령어 히스토리 사용하기

IPython 은 이전에 실행했던 명령어를 디스크에 작은 데이터베이스 형식으로 보관하며 

 

B.1.1 명령어 검색과 재사용

IPython 셜에서는 이전에 실행했던 코드나 명령을 검색하고 실행할 수있다.

%run

 

B.1.2 입출력 변수

마지막 2개의 결과를 각각 _변수와 __변수에 저장한다.

%hist

%reset

%xdel은 IPython 내에서 특정 객체에 대한 참조를 삭제하여 그 객체가 사용한 메모리를 해제하는 함수다.

 

B.2 운영체제와 함께 사용하기

운영체제

반응형

' > python for Data Analysis' 카테고리의 다른 글

Apeendix-05  (0) 2021.03.13
Apeendix-04  (0) 2021.03.09
Apeendix-02  (0) 2021.03.06
Apeendix  (0) 2021.03.06
14-2. 데이터 분석 예제 Apeendix A: 고급 Numpy  (0) 2021.03.02
반응형

A.4.2 파이썬으로 사용자 정의 ufunc 작성하기

numpy.frompyfunc 는 입력과 출력에 대한 표준과 함께 파이썬 함수를 인자로 취한다.

frompyfunc 를 이용해서 생성한 함수는 항상 파이썬 객체가 담긴 배열을 반환하는데 이는 그다지 유용하지 못하다.

numpy.vectorize을 사용하면 반환 자료형을 지정할 수 있는 이점 이 있다.

 

A.5 구조화된 배열과 레코드 배열

ndarray 단일 데이터 저장소

 

A.5.1 중첩된 dtype과 다차원 필드

 

A.5.2 구조화된 배열을 써야 하는 이유

pandas DataFrame과 비교해보면 Numpy 의 구조화된 배열은 상대적으로 저수준의 도구다.

np.fromfile을 사용해서 데이터를 메모리로 읽어 들일 수 있다.

 

A.6 정렬에 관하여

.sort()

numpy.sort를 사용해서 정렬된 배열의 복사본을 생서할 수있다.

ndarray.sort와 똑같은 인자를 받는다.

 

A.6.1 간접 정렬 argsort와 lexsort

데이터 분석에서 하나 이상의 키를 기준으로 데이터를 정렬하는 것은 아주 흔한 일이다.

pandas

lexsort는 argsort와 유사하지만 다중 키 배열에 대해 간접 사전순 정렬을 수행한다.

 

A.6.2 대안 정렬 알고리즘

견고한 정렬 알고리즘은 동일한 원소의 상대적인 위치를 그대로 둔다.

mergesort

quicksort

heapsort

 

A.6.3 배열 일부만 정렬하기

numpy.partition과 np.argpartition

 

A.6.4 numpy.searchsorted: 정렬된 배열에서 원소 찾기

searchsorted는 정렬된 배열에서 이진 탐색을 수행해 새로운 값을 삽입할 떄 정렬된 상태를 계속 유지하기 위한 위치를 반환하는 메소드다.

 

A.7 Numba를 이용하여 빠른 NumPy함수 작성하기

Numba는 cpu, gpu또는 기타 하드웨어를 이용하여 Numpy와 유사한 데이터를 다루는 빠른 함수를 작성할 수 있도록 도와주는 오픈소스 프로젝트다.

 

import numba as nb

nb.jit()

 

@nb.jit

def mean_distance(x,y)

 

Numba를 이용해서 모든 파이썬 코드를 컴파일할 수는 없지만 순수 파이썬 코드의 많은 부분을 지원하며 산술 알고리즘을 작성할 경우 특히 유용하다.

반응형

' > python for Data Analysis' 카테고리의 다른 글

Apeendix-04  (0) 2021.03.09
Apeendix-03  (0) 2021.03.09
Apeendix  (0) 2021.03.06
14-2. 데이터 분석 예제 Apeendix A: 고급 Numpy  (0) 2021.03.02
14-1. 데이터 분석 예제  (0) 2021.03.01
반응형

A.2.2 C 순서와 포트란 순서

ravel() 배렬에서 데이터의 순서를 나타내는 인자를 받는다.

 

A.2.3 배열 이어붙이기 나누기

np.concatenate()

vatack

hstack

 

배열 쌓기 도우미: r_과 c_

r_배열 

c_ 슬라이스를 배열로 변환해준다.

 

A.2.4 원소 반복하기 : repeat와 tile

repeat는 한 배열의 각 원소를 원하는 만큼 복제해서 큰 배열을 생성한다

tile메서드는 축을 따라 배열을 복사해서 쌓는 학습이다.

 

A.2.5 팬시 색인: take와 put

팬시 색인 기능으로 배열의 일부 값을 지정하거나 가져올 수 있었다.

 

A.3 브로드 캐스팅

브로드캐스팅은 다른 모양의 배열 간의 산술 연산을 어떻게 수행해야 하는지 설명한다.

 

A.3.1 다른 축에 대해 브로드캐스팅하기

arr- arr.mean(1).reshape((4,1))

np.newaxis

 

A.3.2 브로드캐스팅을 이용해서 배열에 값 대입하기

np.newaxis

 

A.4 고급 ufunc사용법

A.4.1 ufunc 인스턴스 메서드

np.add.reduce

reduce는 하나의 배열을 받아서 순차적인 이항 연산을 통해 축에 따라 그 값을 집계해준다.

logical_and.reduce는 all메서드와 동일하다.

cusum메서드가 sum메서드와 관련 있는 것처럼 accumulate는 reduce메서드와 관련있다.

accumulate메서드는 누계를 담고 있는 같은 크기의 배열을 생성한다.

outer 메서드는 두 배열 간의 벡터곱(외적)을 계산한다.

 

outer메서드 결과의 차원은 입력한 차원의 합이 된다.

 

반응형

' > python for Data Analysis' 카테고리의 다른 글

Apeendix-03  (0) 2021.03.09
Apeendix-02  (0) 2021.03.06
14-2. 데이터 분석 예제 Apeendix A: 고급 Numpy  (0) 2021.03.02
14-1. 데이터 분석 예제  (0) 2021.03.01
13-2. 파이썬 모델링 라이브러리  (0) 2021.03.01
반응형

14.4 미국농무부 영양소 정보

USPA는 음식의 영양소 정보 데이터베이스를 제공하고 있다.

import json

db = json.load()

 

value_counts 메서드를 이용해서 음식 그룹의 분포를 확인할 수 있다.

 

14.5 2012년 연방선거관리 위원회 데이터베이스

unique()

 

14.5.1 직업 및 고용주에 따른 기분 통계

value_counts()

dict.get

 

14.5.2 기부금액

cut 함수를 사용해서 기부 규모별로 버킷을 만들어 기부자 수를 분할 하는 것이다.

 

14.5.3 주별 기부 통계

totals.div(totals.sum(1), axis = 0)

 

Apeendix A: 고급 Numpy

A.1 ndarray 객체 구조

ndarray는 다차원

dtype 자료형은 데이터가 실수 , 정수, 불리언 혹은 다른 형인지 알려주는 역할

ndarray가 유연한 까닭은 모든 배열 객체가 띄엄띄엄 떨어진 데이터 블록에 대한 뷰이기 때문이다.

 

import numpy as np

np.ones((10,5)).shape
np.ones((3,4,5),dtype = np.float64).strides

A.1.1 Numpy dtype구조

dtype 

np.uint16

np.float32

np.integer

np.floating

 

np.float64.mro() 

np.issubdtype(ints.dtype, np.number)

ints = np.ones(10, dtype = np.uint16)
np.issubdtype(ints.dtype, np.number)

 

A.2 고급 배열 조작 기법

 

A.2.1 배열 재형성하기

np.arange(8)

reshape((4,2))

 

flatten() 평탄화

반응형

' > python for Data Analysis' 카테고리의 다른 글

Apeendix-02  (0) 2021.03.06
Apeendix  (0) 2021.03.06
14-1. 데이터 분석 예제  (0) 2021.03.01
13-2. 파이썬 모델링 라이브러리  (0) 2021.03.01
12-2. 고급 pandas 13-1. 파이썬 모델링 라이브러리  (0) 2021.03.01
반응형

14.1 Bit.ly의 1.USA.gov데이터

json파일 

json.loads(line ) for line in open(path)

 

14.1.1 순수 파이썬으로 표준시간대 세어보기

표준시간대

from collections import defaultdict

collections.Counter클래스

 

14.1.2 pandas로 표준시간대 세어보기

.info() =>정보 확인하기

 

14.2 MovieLens의 영화 평점 데이터

pd.merge()

pivot_table()

 

14.2.1 평점 차이 구하기

sort_values(by='diff')

 

14.3 신생아 이름

pandas.concat

ignore_index = True

 

14.3.1 이름 유형 분석

다양한 이름을 사용하는 경향 측정하기

sort_values(by='prop' ascending= False).prop.cumsum()

 

'마지막 글자'의 변화

names.name.map()

reindex()

 

남자 이름과 여자 이름이 바뀐 경우

isin()

반응형

+ Recent posts