기본 콘텐츠로 건너뛰기

라벨이 StandardScaler인 게시물 표시

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

[data analysis] 단순회귀분석(Simple regression)

단순회귀분석(Simple regression) 전형적인 회귀 모형은 y = ax + b와 같은 형태이며 변수 x를 y로 선형변환 하는 것으로 정의할 수 있습니다. 선형변환은 x의 변화 정도에 따라 y의 변화 정도가 같습니다. x를 설명변수 또는 독립변수 , y를 반응변수 또는 종속변수 라고 하며 x는 1개 이상일 수 있으며 단변수일 경우를 단순회귀 모형이라고 합니다. 위 식과 같이 x를 y로 이동시키는 과정에서 가장 적합한 a와 b를 결정하는 것이 회귀분석의 목적이 됩니다. 예 1) kospi 지수의 일일 주가 자료중 시가(Open)을 설명변수로 하여 종가(Close)를 추정하는 회귀모델을 작성합니다. Open Close 0 2874.50 2944.45 1 2943.67 2990.57 2 2993.34 2968.21 ⋮ ⋮ ⋮ 다음 코드는 분석을 위한 자료를 호출하기 위한 것입니다. st=pd.Timestamp(2021,1, 1) et=pd.Timestamp(2024, 5, 10) kos=fdr.DataReader('KS11',st, et)[["Open","Close"]] kos.index=range(len(kos)) kos.head(3).round(2) Open Close 0 2201.21 2175.17 1 2192.58 2176.46 2 2154.97 2155.07 통계분석을 위해 다음의 이유로 자료의 표준화(Standardization) 가 필요합니다. 데이터의 규모(scale) 축소 여러변수가 사용될 경우 변수간 발생되는 데이터의 규모를 일정하게 조정 반응변수의 표준화는 필수적이지...

[data analysis] 표준화(Standardization)

표준화(Standardization) 평균과 표준편차가 각각 0과 1인 표준정규분포를 따르는 데이터로 전환하는 것으로 회귀분석, 로지스틱회귀분석과 같은 알고리즘에 유용합니다. 식 1과 같이 계산됩니다. $$x_\text{std}=\frac{x-\mu}{\sigma}$$ (식 1) sklearn.preprocessing.StandardScaler() 클래스와 zscore() 함수를 적용합니다. sklearn.preprocessing.StandardScaler(x) x는 2차원 배열 객체 자료를 식 1과 같이 표준화시키기 위한 클래스 .transform() 메서드를 사용하여 자료 변환. .inverse_transform() 메서드로 변환된 값에 대응하는 원시 데이터(raw data)로 환원. 변환에 사용된 평균과 분산은 각각 .mean_, .var_ 속성으로 반환. scipy.stats.zscore(x, axis=0, ddof=0) 배열, dataframe등의 객체(x)를 지정한 축에 따라 표준화 ddof: 자유도를 고려하기 위한 인수로서 '자유도=n-1'인 경우 'ddof=1'이 됩니다. axis=0: 행단위 그러므로 각 열기준으로 표준화 axis=1: 열단위 그러므로 각 행기준으로 표준화 import numpy as np import pandas as pd from sklearn import preprocessing from scipy import stats np.random.seed(0) x=np.random.randint(0, 100, size=(5,3)) print(x) [[44 47 64] [67 67 9] [83 21 36] [87 70 88] [88 12 58]] xStScaler=preprocessing.StandardScaler().fit(x) xScale3=xStScaler.transform...

연속형변수를 목록형변수로 변환

내용 주가자료의 호출과 정리 인덱스 적용 .mask()적용 결측값 치환 변화량 계산과 표준화 목록화 연속형변수를 목록형변수로 변환 연속형 변수인 주가자료를 종가의 상승과 하락에 대한 추정을 위해 로지스틱 회계분석을 적용할 수 있습니다. 이 분석의 자료는 목록변수이어야 하므로 연속형변수를 목록변수로의 전환이 필요합니다. 이번 포스트에서는 이 과정을 소개합니다. 주가자료의 호출과 정리 파이썬 패키지 FinanceDataReader 를 사용하여 다양한 금융자료를 사용할 수 있습니다. 다음은 일정 기간의 코스피 자료를 호출한 것입니다. import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import FinanceDataReader as fdr st=pd.Timestamp(2010,8, 26) et=pd.Timestamp(2022, 5, 27) data=fdr.DataReader('KS11', st, et) data.head(2) Close Open High Low Volume Change Date 2010-08-26 1729.76 1744.08 1744.40 1729.76 303050000.0 -0.0029 2010-08-27 1729.56 1724.00 1732.84 1719.20 245580000.0 -0.0001 호출받은 자료에 0, Na, inf 등 다양한 종류의 결측치가 포함되어 있을 수 있습니다. 이들은 직전 또는 직후 값으로 대체 또는 삭제 할 수 있습니다. 위에서 사용한 모듈로 부터 호출한 자료는 결측치를 0으로 대체하고 있습니다. 다음은 자료의 값이 0인 행과 열을 반환한 것입니다. np.where(data==0) (array([ 450, 473, 541, 571, ...

Sequential Data에 LSTM 적용

내용 시퀀스 데이터(Sequential Data) 전통적 신경망의 한계 RNN Long Short Term Memory (LSTMs) 적용 Sequential Data에 LSTM 적용 시퀀스 데이터(Sequential Data) 시퀀스 데이터는 데이터가 나열되어 있는 순서에 중요한 의미가 부여됩니다. 몇 가지 일반적인 유형의 순차 데이터를 예제와 함께 살펴보겠습니다. Language data 또는 a sentence 예를 들어 “My name is Ahmad”의 문장을 “Name is my Ahmad”와 같이 단어의 순서를 바꾼다면 성립하지 않습니다. 즉, 단어들의 순서가 문장의 의미를 전달하는 데 중요한 요소이기 때문에 순차 데이터입니다. Time Series Data 예를 들어, 회사 A의 연간 주식 시장 가격과 같은 종류의 데이터는 연도별로 확인하고 순서와 추세를 찾아야 합니다. 연도의 순서는 변경할 수 없습니다. Biological Data 예를 들어, DNA 서열은 순서대로 유지되어야 합니다. 관찰하면 시퀀스 데이터는 우리 주변 어디에나 있습니다. 예를 들어 오디오를 음파, 텍스트 데이터 등의 시퀀스로 볼 수 있습니다. 이것들은 순서를 유지해야 하는 시퀀스 데이터의 몇 가지 일반적인 예입니다. 전통적 신경망의 한계 다음의 단순한 신경망을 생각해 봅니다. plt.figure(dpi=100) font1={'family':'nanumgothic', 'size':12, 'weight':'bold'} plt.scatter([1, 2], [1, 1], s=200) plt.annotate("", (1,1), (2,1),arrowprops=dict(color="blue", arrowstyle="-")) plt.text(1, 0.99, 'Input Lay...