기본 콘텐츠로 건너뛰기

4월, 2020의 게시물 표시

통계관련 함수와 메서드 사전

A B C d E F G H I K L M N O P Q R S T U V W Z A statsmodels.ap.stats.anova_lm(x) statsmodels.formula.api.ols 에 의해 생성되는 모형 즉, 클래스 인스턴스(x)를 인수로 받아 anova를 실행합니다. np.argsort(x, axis=-1, kind=None) 객체 x를 정렬할 경우 각 값에 대응하는 인덱스를 반환합니다. Axis는 기준 축을 지정하기 위한 매개변수로서 정렬의 방향을 조정할 수 있음(-1은 기본값으로 마지막 축) pandas.Series.autocorr(lag=1) lag에 전달한 지연수에 따른 값들 사이의 자기상관을 계산 B scipy.stats.bernoulli(x, p) 베르누이분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 p: 단일 시행에서의 확률 scipy.stats.binom(x, n, p) 이항분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 n: 총 시행횟수 p: 단일 시행에서의 확률 C scipy.stats.chi2.pdf(x, df, loc=0, scale=1) 카이제곱분포의 확률밀도함수를 계산 $$f(x, k) =\frac{1}{2^{\frac{k}{2}−1}Γ(\frac{k}{2})}x^{k−1}\exp\left(−\frac{x^2}{2}\right)$$ x: 확률변수 df: 자유도 pd.concat(objs, axis=0, join=’outer’, …) 두 개이상의 객체를 결합한 새로운 객체를 반환. objs: Series, DataFrame 객체. Axis=0은 행단위 즉, 열 방향으로 결합, Axis=1은 열단위 즉, 행 방향으

예외처리(try문)와 assert문

예외처리(Exception Control) raise() 예외무시 assert 문 클래스를 이용하여 예외 종류 재정의 예외처리(try문)과 assert문 예외처리(Exception Control) 파이썬 구문에 위배되는 코드의 실행은 에러가 발생합니다(syntax error). 다음의 코드에서 print() 함수는 if 문 의 블럭내에 존재해야 하는 함수이므로 개행 후 4칸 들여쓰기를 해야 합니다. 그러나 아래 코드는 이 규칙을 위반한 것으로 구문에러의 한 종류인 IndentationError 가 발생합니다. x=5 if x %2 ==0: print(f'x는 짝수입니다.') … IndentationError: expected an indented block 다음은 0에 의한 나눗셈을 실행할 경우 발생하는 에러(runtime error)로서 ZeroDivisionError 라고 합니다. x=5 x/0 --------------------------------------------------------------------------- ZeroDivisionError: division by zero 파이썬에서 발생하는 에러는 예외(exception) 라하며 위의 두 예와 같이 구문에러 (snytax error)와 런타임에러 (runtime error)외에 다양한 에러 들이 발생합니다. 사실 프로그램을 작성 중에 이러한 예외를 수정하는 과정이 필수적으로 존재합니다. 이 과정에서 위와 같이 그 예외의 종류를 알 수 있다면 수정작업이 보다 쉬어질 수 있습니다. 파이썬은 빈번히 발생하는 예외들에 대해 AssertionError, ImportError, IndexError, KeyError 등과 같이 에러의 종류를 미리 지정하고 있습니다. 이러한 예외들이 발생할 경우 작동 중인 프로세스는 중지되고 에러 메지시를 반환합니다. 그러므로 프로그램을 개발할 때 그것을 작동시키기 전에 예외를 발견하

파일 관리

내용 os 모듈 os.path 모듈 sys 모듈 파일 관리 os 모듈 파이썬의 os 모듈을 사용하여 디렉토리(directory)를 조정할 수 있습니다. 함수 내용 getcwd() 현재 인터프리터가 작동되고 있는 디렉토리(Current Working Directory)를 나타냄, 문자열 형식 getcwdb() getcwd()와 동일하지만 bytes 형식으로 반환 chdir() 현재 working directory를 다른 디렉토리로 변경 listdir() working directory의 모든 하위디렉토리와 파일의 목록을 반환 mkdir() 지정된 경로에 새로운 디렉토리를 생성. 경로를 지정하지 않으면 working directory에 생성 rename(이름, 교체할 이름) 디렉토리의 이름을 교체 remove() 파일을 삭제 rmdir() 빈 디렉토리를 제거 import os ​ os #모듈의 경로 반환 <module 'os' from 'C:\home\~\anaconda3\lib\os.py'> #getcwd() current=os.getcwd();current '/home/~/python_programming' type(current) str current2=os.getcwdb(); current2 b'/home/~/\xeb\xac\xb8\xec\x84\x9c/python_programming' type(current2) bytes #chdir() os.chdir("/home/~/문서") os.getcwd() '/home/~/문서' #listdir() os

파이썬으로 파일 저장과 수정

내용 File Operation 파일 열기 파일에 쓰기 파일 내용 읽기 File Operation 파이썬 인터프리터에서 실행한 여러 작업들은 RAM(random access memory)에 저장됩니다. 이 저장소는 인터프리터가 종료되면 함께 중지되므로 영구적으로 저장되는 하드디스크에 그 작업을 저장할 필요가 있습니다. 또한 저장된 결과들의 수정이 필요할 수 있습니다. 이러한 과정은 파이썬의 내장함수들을 사용하여 다음 단계로 실행할 수 있습니다. Open the file : 파일 열기 Read or write : 작업 실행 Close the file : 파일 닫기 파일 열기 file을 인터프리터로 가져오기 위해 내장함수인 open() 을 사용합니다. open(file, mode='r', encoding=None) 함수의 인수 file은 file이름 뿐만 아니라 경로를 입력할 수 있습니다. 파일의 저장 디렉토리가 인터프리터가 실행되는 디렉토리와 동일한 경우 경로는 생략 가능 mode: "읽기전용" 등 파일의 형식을 위한 인수 (표 참조) encoding: 파일의 인코딩 방법을 지정합니다. 윈도우 OS의 경우 'cp1252', 리눅스의 경우 'utf-8'이 기본 mode 의미 'r' 읽기전용(기본값) 'w' 쓰기 전용, 파일이 존재하지 않으면 새로운 파일이 생성되고 파일이 존재한다면 이전 내용은 지워집니다. 'x' 파일 생성, 파일이 존재한다면 에러발생 'a' 파일의 기존 내용의 끝에 첨가되고 파일이 존재하지 않는 경우 새 파일이 생성 't' 파일을 text 모드로 엽니다.(기본) 'b' 파일을 이진모드

재귀함수(Recursive Function)

재귀함수(Recursive Function) 함수는 다른 함수를 포함할 수 있습니다. 그 포함된 함수가 자신의 함수일 경우의 형태를 재귀함수 라고 합니다. 예를 들어 어떤 주어진 수에 대해 1부터 그 수까지의 모든 정수를 곱하는 경우 즉, factorial을 재귀함수로 작성할 수 있습니다. n factorial = n! = 1·2·3 … n def factorial(x): if x==1: return 1 else: return (x*factorial(x-1)) factorial(5) 120 함수 fatorial()의 else 문 블럭에 자신의 함수를 사용하였습니다. if 문은 전달된 인수가 1인 경우 실행되며 함수는 종결됩니다. 이와 같이 재귀함수는 자신의 함수를 반복적으로 사용하기 때문에 함수의 실행을 종결할 조건을 첨가해야 됩니다. 위 함수에 인수 5를 전달하여 실행하는 과정은 다음과 같습니다. factorial(5) → 5 ×factorial(4) : fatorial(4) 호출 → 5 × 4 × factorial(3) : fatorial(3) 호출 → 5 × 4 × 3 × factorial(2) : fatorial(2) 호출 → 5 × 4 × 3 × 2 × factorial(1) : fatorial(1) 호출 → 5 × 4 × 3 × 2 × 1 재귀함수의 또 다른 예로 인수로 전달한 수를 각 자리의 숫자로 분리하기 위한 것입니다. 예로 98을 9와 8로 분리하여 나타냅니다. def eachNum(x): if x < 10: print(x, end=" ") else: eachNum(int(x/10)) print(x%10, end=" ") # %는 나머지를 반환하는 연산자입니다. eachNum(98) 9 8 위 함수는 다음과 같이 실행됩니다.

Python, 함수(Function)

내용 Function(함수)의 정의 인수의 전달 가변인수 Asterisk(*) 가변인수의 표시 "*"와 "**"연산자를 사용하여 함수 인수의 unpacking Function(함수) Function(함수)의 정의 함수는 다음 그림과 같이 인자(매개변수)들을 전달하여 결과를 생성할 수 있는 코드들의 그룹입니다. 기본적으로 함수는 파이썬이 자체적으로 가지고 있는 함수인 내장함수 (built-in function)와 각 모듈과 패키지 에 포함된 함수들, 사용자에 의해 생성되는 함수인 사용자 정의함수 (user-defined function)으로 구분합니다. 사용자 정의함수는 키워드 def 로 시작합니다. def 함수이름(매개변수 들): # header 부분 """ docstring""" 본문 함수 작성과정에서 실제 실행에 영향을 주지 않는 간략한 설명을 첨가할 있습니다. 이 부분을 docstring이라하며 세개의 따옴표 내에 첨가합니다. 이 부분은 함수내에 포함되는 주석(comment)이므로 header 아래의 어디에나 위치할 수 있으나 필수적인 부분은 아닙니다. 그러나 함수를 사용하는 다른 사용자들이나 추후에 그 함수의 점검에 있어 유익한 도움이 됩니다. 다음은 두 객체의 각 요소의 덧셈을 실행하는 사용자 정의 함수입니다. def Tot(x, y): # ①    """이 함수는 리스트등 두 콜렉션 객체의    각 원소의 합을 계산합니다."""    re=[] # ②    for i in range(len(x)): # ③       re.append(x[i]+y[i]) # ④    return re # ⑤ ①: 함수의 헤드 부분으로 헤드의 끝 부분에 콜론(:

keyword와 이름규칙

내용 keywords(예약어) 주요 키워드의 내용 이름 규칙 keywords(예약어) 파이썬 코드 작성에서 기본적으로 정의되어 동작영역이 한정되어 있는 단어들을 예약어 라고 하며 변수, 함수, 클래스 등의 객체이름이나 다른 용도로 전환하여 사용할 수 없습니다. 파이썬은 33개의 예약어를 가지고 있으며 영문 소문자와 대문자를 구분하며 True, False, None 등을 제외하고 다른 키워드는 모두 소문자 입니다. keyword 모듈의 kwlist 속성으로 확인할 수 있습니다. import keyword kw=keyword.kwlist for i in range(5, len(kw)+1, 5): print(kw[i:(i+5)], end="\n") ['as', 'assert', 'async', 'await', 'break'] ['class', 'continue', 'def', 'del', 'elif'] ['else', 'except', 'finally', 'for', 'from'] ['global', 'if', 'import', 'in', 'is'] ['lambda', 'nonlocal', 'not', 'or', 'pass'] ['raise', 'return', 'try', 'while', 'with'] ['yield'] 주요 키워드의 내용 Ture/ False 비교와 논리의 결과값으로 반환됩니다. 또한 True=1, False=0으로 계산

반복문(loop statement)

내용 for 문 for ~else while loop break 문과 continue문 반복문(loop statement) Pyhon에서 loop는 for 문 , while문 등에 의해 실현됩니다. for 문 for 문은 list, turple, string 등의 iterable 객체와 같은 시퀀스 (sequence, 연속열)에 대해 동일한 명령을 반복할 경우 사용합니다. 이와 같이 시퀀스를 반복하는 것을 루프 (loop, 순회)라고 하며 이를 실행할 수 있는 문을 반복문 이라고 합니다. for 문의 형식은 다음과 같습니다. for 인식자 in sequence: 본문 else: 본문2 인식자: 각 반복과정에서 sequence로 부터 할당되는 값 else문은 선택입니다. 즉, 생략 가능한 문이며 for 문 실행이 완료된 후에 결과가 반환됩니다. for 문은 sequence의 마지막 요소에 대한 본문이 실현될 때까지 반복됩니다. for 문을 시작하는 구문의 끝은 콜론(:)으로 나타내고 그에 속한 본문들은 들여쓰기를 사용합니다. 이렇게 구성된 전체 for 문은 하나의 코드블럭이 되며 for 문외의 다른 코드들과 분리됩니다. tot=0 #결과를 위한 객체, 0으로 초기화 for i in range(1, 11): tot +=i #== tot = tot+1 print(f"1에서 10까지의 합: {tot}") 1에서 10까지의 합: 55 len() , range() 함수를 사용하여 요소의 인덱스를 인식자로 전달할 수 있습니다. x=['apple', 'pear', 'starwberry'] for i in x: print(i, end=",") apple,pear,starwberry, for i in range(len(x)): print(x[i], end="

[python]Iterator와 Generator

내용 container iterable과 interator(반복자) sequence와 iterable의 차이 generator(발생자) Iterator ans Generator container container는 데이터를 담을 수 있는 그릇의 역할을 하는 것으로 list, tuple, dic, set, string등의 데이터 구조를 의미합니다. 다음 코드에서 사용한 연산자 in 를 사용하여 각 구조에 포함되는 요소들을 검사할 수 있습니다. assert 1 in [1,2,3] assert 4 in [1,2,3] AssertionError Traceback (most recent call last) c:\Users\sonhs\Documents\note\python\산책\pyNote2.ipynb Cell 2' in <cell line: 1>() ----> 1 assert 4 in [1,2,3] AssertionError: 위 코드에서 사용한 assert는 if와 같은 조건문으로서 조건이 False일 경우만 에러를 반환합니다. 그러므로 조건의 판단만을 결정할 경우 유용하게 사용할 수 있습니다. iterable과 interator(반복자) iterable 객체의 요소들을 한번에 하나씩 나타낼 수 있는 객체 list, turple, set, dictionary와 같은 collection이나 string등의 자료형 객체 iterator; 값을 차례대로 꺼낼 수 있는 객체 python에서 반복가능한 객체인 iterable의 대표적인 예로 range()에 의한 객체 인스턴스입니다. 다음은 0~9까지 정수를 생성하는 것입니다. for i in range(10): print(i, end=',') 0,1,2,3,4,5,6,7,8,9, 위 코드는 실제로 0~9까지의 수를 모든 데이터를

연산자(operators)

내용 산술 연산자(Arithmatic operators) 비교연산자(comparison operatores) 논리연산자(logical operators) 비트 연산자(Bitwise operators) 할당연산자 in, is 연산자 가변연산자('*') 연산자(Operators) 데이터들 사이에 연산이 필요한 경우 연산의 종류를 구분하기 위한 약속이 존재합니다. 이 약속된 규칙 또는 표현을 연산자(operator) 라고 합니다. 연산자는 특정한 명령(들)을 수행하기 위한 여러 코드들을 그룹화하는 함수입니다. 파이썬은 산술, True 또는 False의 결과를 반환하는 논리 연산을 수행하기 위한 다양한 연산자들을 제공하고 있으며 이 연산에 참여하는 값들을 피연산자(operand)라고 합니다. 예를 들어 다음의 덧셈의 경우를 봅니다. 5+8 13 두 정수의 덧셈연산으로 '+'가 덧셈 연산자이고 연산에 관계된 5와 8이 피연산자가 됩니다. 그 연산의 결과는 13입니다. 산술 연산자(Arithmatic operators) 연산자 의미 x + y 단일 또는 두개의 피연사자의 덧셈 x - y 단일 또는 두개의 피연사자의 뺄셈 x * y 두개의 피연사자의 곱셈 x / y 두개의 피연사자의 나눗셈으로 결과는 실수형 x % y 두개의 피연사자의 나눗셈의 나머지를 반환 x // y 두개의 피연사자의 나눗셈의 몫을 반환 x**y 피연산자의 거듭제곱 (power) x=5; y=2 print(f"덧셈: x+y = {x+y}") 덧셈: x+y = 7 print(f"뺄셈: x-y = {x-y}") 뺄셈: x-y

패키지와 모듈(Package and Module)

내용 모듈 모듈의 import 모듈의 경로 설정 패키지(Package) importing 방법 모듈(module) 모듈 프로그램 중 실행가능한 일정한 부분을 그룹화하여 전체 코드들에서 분해 할 수 있습니다. 이 그룹화된 부분은 다른 프로그램을 작성하기 위해 반복적으로 사용할 수 있는 프로그램이 됩니다. 이러한 프로그램을 모듈(Module)이라고 합니다. 큰 프로그램의 경우 작은 단위로 모듈화한다면 프로그램의 실행과 수정, 복구 등 관리차원에서 매우 유리합니다. 다음과 같이 정리할 수 있습니다. 모듈 객체 정의(definition)와 문(statement)를 포함하는 파일 파이썬에서 생성하는 모듈의 확장명은 .py입니다. 프로그램을 실행 가능한 부분들의 조합으로 작성하기 위해 사용 모듈 전체 또는 일부를 다른 모듈, 프로그램 또는 인터프리터에서 호출하여 사용할 수 있습니다. 예를 들어 다음 함수를 확장자 " .py " 형식으로 작성하여 별도의 파일에 저장 한다면 모듈이 됩니다. 모듈의 import 다음은 모듈을 생성하고 저장한 모듈을 임포트(import)하는 코드의 예입니다. 다음 코드는 두 수를 더하는 사용자 정의 함수입니다. 이 함수는 파이썬 인터프리터의 모든 영역에서 사용할 수 있습니다. 그러나 파이썬 자체를 종결한 후 생성한 함수도 소멸되므로 추후에 사용하기 위해 별도의 파일로 저장합니다. 이렇게 저장된 python파일이 모듈이 됩니다. 다음은 test.py의 내용으로 두 수를 더하는 함수입니다. def add(a, b): return a+b 위 파일을 모듈로 사용하기 위해 실행파일에서 test.py를 임포트 합니다. import test test.add(3,5) 8 모듈의 경로 설정 파이썬은 임포트하기 위한 모듈의 경로가 지정되어 있습니다. 다시말하면 파이썬에 등록된 위치에 모듈들을 저장해야 합니다. 새로

[python]print()와 input()

표준 입출력 함수 표준출력장치 print() python에서 표준출력 장치로 print() 함수를 사용합니다. 또한 데이터를 다른 파일로 전송하는 방법을 사용할 수 있습니다. print("print() 함수는 표준출력장치로 사용됩니다.") print() 함수는 표준출력장치로 사용됩니다. x=2 print("x의 값:", x) x의 값: 2 위의 경우에서와 같이 print()함수는 문자열과(string)과 함께 결과를 출력할 수 있습니다. 이 함수는 위와 같은 형식외에 다양한 형식으로 출력이 가능합니다. 이 함수의 표준 구문은 다음과 같습니다. print(x, sep=' ', end='\n', file=sys.out); x: 출력의 대상 sep: 쉼표(,)와 같은 출력값들의 구분자를 지정하기 위한 인자, 기본값은 space end: 모든 값을 출력한 후 end에 지정한 상태로 출력, 기본값은 줄바꿈 file: 출력 지점을 지정, 기본값은 screen(sys.out) print(1,2,3) 1 2 3 print(1,2,3, sep='/', end='#') 1/2/3# 문자열 출력 형식 print() 함수에 str.format() 메소드를 결합하여 시각적으로 나은 형식으로 출력할 수 있습니다. 구문은 다음과 같습니다. print("{ }".format(x)); format() 메소드에 전달한 인수 x가 중괄호 위치에서 출력 다음의 형식으로 동일한 결과를 반환합니다. print("{x}".format(x=val)) print(f"{x}") 또는 print(F"{x}"): 결과를 문자열로 변환하여 출력하기 위해 str.format()대신 접두어 f 또는 F를 적용합니다. x=2 y=3 print("{}와 {}의 합은 {

사전(Dictionary)

내용 사전 객체의 생성 요소의 조정과 호출 대표적인 메서드(Methods) 사전(Dictionary) 사전 객체의 생성 리스트나 튜플 객체와 같이 파이썬의 대표적인 복합 자료형입니다. 이 자료형에서 각 요소는 그 요소의 이름(key)과 값(value)이 동시에 존재합니다. 사전객체의 기본 구조: {이름(key): 값(value)} 사전에서 이름이 대응하는 값의 인식자 역할을 합니다. 그러므로 별도의 인덱스가 필요하지 않는 구조입니다. 실제로 사전형 객체의 각 요소는 인덱스가 할당되지 않기 때문에 요소들의 순서는 지정되지 않습니다. 그러므로 사전객체는 시퀀스가 아닙니다 . 사전 객체는 특징은 다음과 같습니다. 중괄호({ }) 또는 dict()함수를 사용하여 생성 합니다. 사전 내의 원소들은 순서가 없으며 {key:value}의 형식으로 입력합니다. key는 리스트, 튜플 형의 인덱스와 같은 역할을 합니다. 즉, 사전 객체의 원소를 호출하기 위해서 key를 사용합니다. value는 자료형의 제한이 없으며 반복 할 수 있습니다. 그러나 key는 고유한 값이어야 하며 변경할 수 없습니다. 비어있는 중괄호로 객체를 선언한 후 키에 값을 할당 dic1={}#빈객체 dic1 {} dic1[1]='one' # 1:key, 'one':value dic1[2]="two" # 2:key, 'two':value dic1 {1: 'one', 2: 'two'} 중괄호 내에 {key: value} 형식으로 직접 입력 dic2={"one":1, "two":2} ;dic2 {'one': 1, 'two': 2} dic({key: value})와 같이 dic() 함수 적용 dic3=dict({"apple"

형변환(Type Conversion)

내용 형변환 암묵적 형변환 명시적 형변환 형변환(Type Conversion) 형변환 pyhton에서 자료형은 숫자형과 문자형으로 구분합니다. 숫자형은 기본 자료형으로 정수, 실수, 복소수형으로 구성되어 있습니다. 이들은 근본적으로 동일한 자료형으로 연산과정에서 자동적으로 형변환이 이루어집니다. 이를 암묵적 형변환 이라고 합니다. 반면에 문자형은 메모리에 저장 과정에서 이미 변환된 상태로서 자동적으로 변환이 이루어지지 않습니다. 그러므로 이들의 형변환은 특정한 함수에 의해 이루어 집니다. 이 과정을 명시적 형변환 이라 합니다. 암묵적 형변환 자동적으로 일어나는 형변환을 의미합니다. 예를 들어 정수와 실수의 연산에서 정수는 자동적으로 실수형으로 변환됩니다. x=2 y=3.14 z=x+y; z 5.140000000000001 for i in [x, y, z]: print(F"{i}의 자료형: {type(i)}") 2의 자료형: <class 'int'> 3.14의 자료형: <class 'float'> 5.140000000000001의 자료형: <lass 'float'> 명시적 형변환 다음 두 자료는 같은 수이지만 다른 자료형입니다. a=3 b="3" type(a), type(b) (int, str) a+b ~~TypeError: unsupported operand type(s) for +: 'int' and 'str' 위의 두 a와 b의 자료형은 다르기 때문에 에러가 발생합니다. 위 코드의 객체 b는 문자이지만 숫자로 변환이 가능한 자료입니다. 이 경우 a 와 같은 자료형 즉, 정수로 변환하기 위해 int() 함수를 사용하여 형변환할 수 있습니다. 이러한 명시적 변환은 유형캐스팅 (typecasting)이라고 합니다. 유형캐스팅에 적용할 수 있는 함수

집합( Set)

내용 집합(Set) set은 iterable 대표적인 메소드 첨가와 삭제 복사 집합연산 집합(Set) 집합(Set) Set은 리스트, 튜플과 같이 여러 원소들을 그룹화하는 복합자료형 (collection)이지만 사전형과 같이 요소들의 순서가 할당되지 않는 경우입니다. 그러므로 각 요소의 인덱스가 지정되지 않기 때문에 시퀀스 객체가 아닙니다. Set 형은 다음의 특징을 가지고 있습니다. Set는 순서가 없는 데이터 셋 콜렉션입니다. 요소들을 중괄호내에 포함시키거나 내장함수인 set() 함수를 사용하여 생성합니다. set() 함수의 인수는 1개로서 여러 요소일 경우 대괄호('[]'), 중괄호('{}'), 소괄호('()')로 그룹화하여 전달해야 합니다. 각 요소는 콤마(,)로 구별합니다. 요소들의 자료형은 복합적입니다. 즉, 정수, 실수, 문자 모두 가능합니다. 그러나 리스트와 사전 형의 컬렉션은 요소로 포함될 수 없습니다. 요소들의 중복은 허락되지 않습니다. 즉, 같은 요소들이 중복될 수 없습니다. 요소들은 수정할 수 없습니다. 그러나 객체 자체의 교환, 삭제는 가능합니다. 합집합, 교집합, 차집합(union, intersection, symmetric difference)등의 연산을 적용할 수 있습니다. # 중괄호를 사용하여 생성 set1={1,2,3}; set1 {1, 2, 3} #set()함수를 사용하여 생성 set2=set(1,2,3); set2 T~~ypeError: set expected at most 1 argument, got 3 # 수치형 한 개를 인수로 전달할 경우 에러 발생 set2=set(1); set2 ~~TypeError: 'int' object is not iterable # 인수로 리스트, 튜플, 사전형을 전달할 경우 요소의 수는 상관없음 s

순전파와 역전파(forward & backward propagation)

내용 학습과정 미분 기울기(gradient): 자동미분 자동미분 순전파와 역전파(forward & backward propagation) 학습과정 일반적으로 신경망은 가장 먼저 층(layer)을 구성하며 입력은 그 층을 통과하여 relu 등과 같은 활성함수에 의해 출력됩니다. tf.keras.layers.Dense(512, activation="relu") output=relu(dot(W, input)+b) 위 relu 함수에서 W, b는 층의 속성인 텐서호 입력과 출력의 관계를 결정하는 가중치와 편차로 위 과정을 반복하면서 학습되는 매개변수입니다. 각각은 커널과 편향 속성이라고 합니다. 다음에서 나타낸 과정과 같이 초기 W, b는 임의 값으로 지정되며 입렬(input)과 함께 층으로 입력되며 드 출력이 이렂ㅇ한 기준을 만족하지 않은 경우 다시 층으로 입력되는 과정을 반복합니다. 이 과정을 학습(training)이라고 하며 학습을 통해 W, b의 최적화가 이루어지며 그에 대응하는 결과물이 출력됩니다. 이 과정이 머신러닝 또는 딥러닝의 핵십이 됩니다. W 0 , b 0 , Input → layers ← ↓ ↑ activation, other operation ↓ W optim , b optim ↓ Output →: forward →: backward 위 학습과정은 다음의 단계로 구성됩니다. 1 단계. 레이어, 활성함수, 출력층을 구축합니다. 가중치, 편차, 입력을 조합하는 초기 모델을 설정합니다. 2 단계. 모델에 의한 y의 추정치(y pred )를 계산합니다. 이 단계를 forward propagation(순방향 전파)라고 합니다. 3 단계. y pred 와 y간의 불일치 측정값인 비용(cost) 또는 손실(loss)을 계산합니다. 비용함수를 설정합니다. 4 단계. 손실을 최소화하기 위한 W, b를 업데이트