기본 콘텐츠로 건너뛰기

글

pandas_ta를 적용한 통계적 인덱스 지표

Sympy 객체를 사용한 미분과 적분

내용 개요 sympy에 의한 미분 Sympy에 의한 적분 Sympy 객체를 사용한 미분과 적분 개요 모듈 듈 Sympy는 기호(symbol)로 이루어진 수학적 객체의 계산을 다룹니다. 즉, 일반적으로 사용하는 x, y 등과 같은 문자를 수학적 기호로 인식하여 수학식을 표현하는 수단을 제공합니다. 또한 sympy에서 ∞는 알파벳 소문자 o를 두번 연이어 표시하는 것으로 대체합니다. oo = ∞ 다음은 파이썬 코드와 모듈 math, sympy를 사용하여 제곱근을 계산한 결과를 나타낸 것입니다. import math from sympy import * 9**0.5 3.0 pow(9, 0.5) #파이썬 내장함수 3.0 math.sqrt(9) #모듈 math함수 3.0 sqrt(9) #sympy 함수 3 위 결과는 모두 실수로 반환됩니다. 그러나 8의 제곱근과 같이 근사값(무리수)이 반환되는 경우는 그 결과의 표현이 달라집니다. sympy를 사용할 경우 일반적으로 수학적으로 표현하는 방식으로 결과를 반환합니다. round(8**0.5,3) 2.828 round(pow(8, 0.5), 3) #파이썬 내장함수 2.828 round(math.sqrt(8), 3) #모듈 math함수 2.828 sqrt(8) #sympy 함수 $2 \sqrt{2}$ 위의 sympy에 의한 결과 $\sqrt{2}$는 기호입니다. 즉, sympy 객체는 실제 수와 함께 일정한 기호을 사용하기 때문에 다양한 수학적 표현이 가능합니다. sympy 모듈은 $\sqrt{2}$와 같은 자체적으로 지정된 기호외에 symbols() 함수를 사용하여 사용자가 사용하는 기호를 정의할 수 있습니다. x, y=symbols('x y') type(x) sympy.core.symbol.Symbol expr=x+2*y expr x + 2 y 위에서 expr 객체는 기호 x, y를 지닌 객체입니다....

ASCII 코드

ascii는 정수와 문자 등을 연결해 주는 규약으로 그 구성 요소들은 표 1과 같습니다. ASCII 코드의 구성 구성 요소 코드 포인트 영문 소문자 a ~ z 65 ~ 90 영문 대문자 A~z 97 ~ 122 구두점, 기호, 공백 $, ! , " "등 32 ~ 64 자소(graphemes) [, \등 91 ~ 96 자소(graphemes) {, | 123 ~ 126 인쇄할 수 없는 문자 \b 등 127 문자 인코딩(character encoding)은 다음과 같이 정의할 수 있습니다. 문자, 구두점, 기호, 공백, 제어문자 등을 정수로, 궁극적으로 비트(bit)로 변환하는 방법 각 문자는 고유한 비트 시퀀스로 인코딩될 수 있음 문자 등을 정수로 변환한 결과를 코드 포인트(code point)라고 합니다. ASCII 코드는 총 128개로 구성되어 있으며 파이썬의 내장함수 ord() 와 chr() 로 확인할 수 있습니다. ord(문자): 대응하는 정수를 반환 chr(숫자): 대응하는 문자를 반환 chr(33) '!' ord('!') 33 x=ord('a') print(x, chr(x)) 97 a 모듈 string은 ASCII의 문자집합에 포함된 문자(열)를 다루고 있습니다. 이 모듈에 포함된 문자는 다음의 속성(attribute) 으로 확인할 수 있습니다. import string string.whitespace ' \t\n\r\x0b\x0c' string.ascii_letters 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' 위의 속성은 .ascii_lowercase(소문자)와 .ascii_uppercase(대문자)를 함께 반환합니다. string.digits #10진수 수 '...

[python] 전역(global) 범위

전역(global) 파이썬에서 객체의 이름에 객체를 할당하면 객체의 주소가 할당되어 이름공간에 저장됩니다. 저장된 객체이름이 객체를 참조하는 것으로 이 상태를 연결(binding)되었다고 표현합니다. 기본적으로 바인딩은 모듈단위로 이루어집니다. 파이썬은 다양한 라이브러리(패키지, 모듈)들이 존재합니다. 파이썬 자체가 가지는 내장함수, 속성을 제외하고 모듈의 속성, 함수들은 그 모듈내에서만 작동됩니다. 예를 들어 numpy는 배열을 다루기 위해 특화된 파이썬 패키지입니다. 이 패키지의 array()함수는 배열을 생성하기 위한 함수로서 다음과 같이 그 패키지를 장착한 뒤에 함수가 작동할 영역을 지정해 주어야 합니다. import numpy as np x=np.array([1,2,3]);x array([1, 2, 3]) 다음과 같이 지정하지 않을 경우 동작하지 않습니다. -y=array([1,2,3]); y NameError: name 'array' is not defined 이러한 모듈을 장착할 수 있는 기본 파이썬을 파이썬 코어(core) 라고 합니다. 내장함수(built-in function) 는 이 파이썬 코어에 포함된 함수를 의미합니다. 다음 코드와 같이 내장 함수 len() 은 특별히 작용영역을 지정하지 않고 사용할 수 있으며 다른 모듈에서 생성된 객체에 대해서도 작동합니다. 즉, 내장함수는 파이썬 코어가 작동하는 모든 범위에서 작동합니다. 위 그림과 같이 파이썬의 각 객체는 모듈 단위로 이루어지며 기본적으로 객체는 모듈 안에서 동작합니다. 이러한 범위를 전역(global)범위라고 합니다. 각 모듈에 포함되어 있는 함수, 메서드, 속성등은 전역범위에서 작동합니다. len(x) 3

[data analysis]가상 데이터 만들기

가상데이터 만들기 내용 make_classification make_blobs make_moons make_gaussian_quantiles make_classification sklearn.datasets.make_classification() 함수는 분류용 가상 데이터를 생성합니다. 인수 n_samples : 표본 데이터의 수, 디폴트 100 n_features : 독립 변수의 수, 디폴트 20 n_informative : 독립 변수 중 종속 변수와 상관 관계가 있는 성분의 수, 디폴트 2 n_redundant : 독립 변수 중 다른 독립 변수의 선형 조합으로 나타나는 성분의 수, 디폴트 2 n_repeated : 독립 변수 중 단순 중복된 성분의 수, 디폴트 0 n_classes : 종속 변수의 클래스 수, 디폴트 2 n_clusters_per_class : 클래스 당 클러스터의 수, 디폴트 2 weights : 각 클래스에 할당된 표본 수 random_state : 난수 발생 시드 반환값 X : [n_samples, n_features] 크기의 배열, 독립 변수 y : [n_samples] 크기의 배열, 종속 변수 위 함수에서 인수의 관계는 다음을 만족하여야 합니다. (n_classes) × (n_clusters_per_class) ≤ 2 (n_informative) import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns font1={'size':11, 'weight':'bold'} font2={'family':'nanumgothic', 'size':11...

softmax 모델(Softmax Regression)

내용 Softmax 회귀 모델 비용함수 모델 생성 Softmax Regression Softmax 회귀 모델 데이터를 두 개의 클래스로 구분하기 위한 예측 방법인 로지스틱 회귀는 2개 이상의 클래스로 분류하기 위해 softmax 방법으로 일반화 할 수 있습니다. 이 방법을 softmax 회귀 또는 다중 로지스틱 회귀 (multinomial Losgistic regression)이라고 합니다. 이 모델은 우선적으로 각 인스턴스에 대해 식 1을 적용합니다. 이것은 그 인스턴스의 각 클래스에 대한 점수를 나타냅니다. 다음으로 식 2의 softmax 함수를 사용하여 각 클래스에 포함될 확률을 추정합니다. $$\begin{equation}\tag{1}s_k(x)=x^T\theta^{(k)}\end{equation}$$ 각 클래스 k는 자신의 가중치벡터 θ (k) 를 가집니다. 예를 들어 3개의 특성(독립변수)과 3개의 클래스들(A, B, C)를 가진 라벨(반응변수)에 대해 다음과 같이 각 인스턴스(샘플)의 점수를 계산할 수 있습니다. $$\begin{align}&\text{- A or not}\\ &\begin{bmatrix} W_{A1} &W_{A2}&W_{A3} \end{bmatrix}\begin{bmatrix} x_1\\x_2\\x_3 \end{bmatrix} = \begin{bmatrix} W_{A1}x_1+W_{A2}x_2+W_{A3}x_3 \end{bmatrix}=s(x)_A \\ &\text{- B or not}\\ &\begin{bmatrix} W_{B1} &W_{B2}&W_{B3} \end{bmatrix} \begin{bmatrix} x_1\\x_2\\x_3 \end{bmatrix} = \begin{bmatrix} W_{B1}x_1+W_{B2}x_2+W_{B3}x_3 \end{bmatrix}=s(x)_B\\ &\text{-...