기본 콘텐츠로 건너뛰기

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

16. Learning: Support Vector Machines

support vector machine_intro

SVM hyperplane(초평면) : 유한차원 공간에서 원 차원으로 부터 한 차원 낮은 부분공간을 의미합니다. 예를들면 3차원 공간 속 평면 공간을 의미합니다. 부분 벡터 공간 $N \subset V$ 에서 N을 V의 벡터 초평면(hyperplane)이라고 합니다. 서포트벡터머신(svm)은 기계학습 분야의 하나로 대표적인 지도학습의 분야 중 하나 입니다. 주로 분류(classification)과 회귀분석에 사용됩니다. 장점;  - 고차원 공간에서 효율적  - 샘플 수보다 큰 차원에서 효율적  - 결정함수(decision function, support vector)내에서 훈련  데이터들의 부분들을 이용(memory effect)  - 결정함수를 특정하기 위해 다른 커널 함수(kernel functions)들을 사용할 수 있습니다. 일반적인 커널 함수가 제공하되지만 사용자가 생성할 수 있습니다. 단점;  - 샘플의 수 > 변수의 수 --> 특정한 커널 함수를 선택하는 것으로 과적합을 피하여야 합니다. 그리고 데이터들의 정규화가 중요합니다.  - SVMs은 직접적으로 확률적 추정을 제공하지 않기 때문에 expensive five-fold cross-validation을 이용하여 계산합니다. scikit-learn내에 svm은 입력 데이터로 dense와 sparse sample vectors 형식을 지원합니다. dense : numpy.ndarray 와 numpy.asarray에 의해 이 형식으로 변환할 수 있습니다. sparse : scipy.sparse 분류 선형적으로 분리할 수 있는 데이터는 데이터의 원소들을 구별할 수 있는 무한히 많은 결정경계를 만들수 있습니다. 그러나 직관적의 어떠한 경계는 다른 것들보다 좀 더 명확한 경계선을 보일 것입니다. 위 그림은 원과 사각형의 점들을 구별하기 위해 3개의 선을 보인 것으로 선 1, 2, 3 ...

axes and text_R plots

Axes and Text R에서 plot() 함수의 기본 형은 다음과 같습니다.  plot(x, y, main="제목", sub="하위제목", xlab=" ", ylab=" ", xlim=c(최소, 최대), ylim=c(최소, 최대), xlab, ylab, col.lab=축이름의 색, cex.lab=0.75) 위 함수의 매개변수 중 xlab. ylab은 축이름이고 xlim, ylim은 x, y 축의 범위를 나타냅니다.  cex.lab은 축이름의 크기를 지정합니다.  위 함수에서 재목은 title() 함수를 사용하여 별도로 나타낼 수 있습니다.  title(main="제목", col.main=제목의 색, sub="하위제목", col.sub="하위제목의 색") 그래프에 text를 첨가하기 위해 text()와 mtext()를 사용할 수 있습니다.  text(): 그래프 내에 문구를 첨가할 경우 사용합니다.    text(위치1, "삽입문구", 위치2, ...) mtext(): 그래프 외부에 위치시킬 경우 사용합니다.   mtext("삽입할 문구", side,...) 위치1 - x, y 축의 값을 지정하여 해당하는 좌표를 시작으로 문구가 삽입됩니다.  side(위치2) - 그래프 내 또는 외부에 위치를 지정합니다.       위치2 = 1, 2, 3, 4로 지정되면 각각은 below, left, above, right 이외에 cex, col, font를 지정할 수 있는데 각각은 크기, 색, 폰트 스타일을 지정할 수 있습니다.  축 설정  axis() 함수를 사용하여 축을 별도로 설정할 수 있습니다.  axis(위치2, at=, labels=, pos=, lty=, col=, las=, tck=,...) at: 지...

linear regression_python

선형회귀는 회귀계수 w=(w1, w2, ..., wp)를 가진 선형모형을 생성하는 것입니다. 이는 반응변수의 관찰치와 선형 모형에 의한 추정치 사이의 잔차제곱합이 최소가 되도록 설정합니다. $$ \text{min} \sum^n_{i=1} {(x_i w- y_i)^2}$$ 회구모형을 구축하기 위해 sklearn 모듈을 사용하는데 제공되는 모든 함수는 list 또는 np.array 형을 대상으로 합니다. 그러므로 아래와 같이 pandas 모듈의 함수를 사용하여 엑셀로 부터 데이터를 호출하는 경우 호출되 데이터는 DataFrame 형태이므로 이들의 형식을 np.array 형으로 변경하여야 합니다. >>> import numpy as np >>> import pandas as pd >>> from datetime import datetime, timedelta >>> import matplotlib.pyplot as plt >>> from sklearn import linear_model >>> kl=pd.read_excel('C:\\~~.xlsx', sheet_name="kl") >>> startd=pd.Timestamp(datetime(2017,12, 1)) >>> kl1=kl.ix[kl.index>=startd, :] >>>  kl1              Open   High    Low  Close    Volume 2017-12-01  17550  17580  17345  17425   9696255 2017-12-04  17550  17750  17400  ...

회귀계수에 대한 F 검정

단변수에 대한 회귀검정 회귀 모형에서 독립변수 각각의 효과를 검정합니다. 2 단계로 이루어 집니다. 1) 독립변수와 관찰치 사이의 상관을 계산 $$\frac{(x-\ba x)(y-\bar y)}{\sigma_x \sigma_y}$$ 2) F score 즉, F 값과 대응되는 p value를 계산한다. F 검정은 정규분포를 따르는 모집단에서 분류된 집단의 분산이 동일하고 각 집단의 평균이 같다고 가정한다.  H0: 각 그룹의 분산은 같다. 회귀계수의 검정에서 각 변수는 그 회귀계수가 0일 경우 즉, 반응변수의 평균과의 잔차에 대한 분포와 독립변수가 사용될 때 추정치와의 잔차의 분포를 비교합니다.  다음의 독립변수(ind)와 반응변수(de)에 대해 F 검정의 결과는 regression_f() 메소드를 적용합니다. 이 메소드는 sklearn.feature_selection클래스 메소드입니다. >>> from sklearn import feature_selection >>> ind array([[ 17550.,  17580.,  17345.],        [ 17550.,  17750.,  17400.],        [ 17610.,  17955.,  17530.],        [ 17890.,  17905.,  17370.],        [ 17445.,  17470.,  17135.],        [ 17365.,  17445.,  17230.],        [ 17395.,  17425.,  17225.],   ...