본문 바로가기

반응형

전체 글

Naive Bayes, Decision Tree Naive Bayes Classification 나이브 베이즈 분류기 특징 LR과 L-SVC같은 Linear Model의 Classification에 비해 훈련 속도가 빠른 편이지만, 일반화 성능이 떨어짐. 방식 각 특성을 개별로 취급하여 파라미터를 학습하고 각 특성에서 클래스별 통계를 단순하게 취합하는 방식. 종류 scikit-learn에는 GaussianNB, BernoulliNB, MultinomialNB( 이하 각각 G-NB, B-NB, M-NB 또는 G, B, M ) 세 가지가 구현됨. 1. 데이터(feature)의 속성에 따른 분류 연속적 데이터 모든 G-NB는 연속적인 데이터 ->이것을 기반으로 특성의 평균과 표준편차 저장 *이산적 데이터 B-NB는 이진 데이터 -> 이것을 기반으로 단순하게.. 더보기
Linear Model Linear Model y^ = w[0]*x[0] +w[1]*x[1]+ ... +w[p]*x[p]+ b 특성이 하나(p=0)일땐, 직선 p=1일땐, 평면 p>=2 일땐, 초평면 (hyperplane) p=0인 경우. p가 높을수록 linear model은 유리하다. train set의 수보다 feature가 더 많을 경우에 완벽하게 y(training)에 대해 mdeling이 가능 (overfit일 수 있긴 하지만..) Linear Regression은 linear model을 기반으로 하는 알고리즘의 한 파트이다. MSE를 이용하여 단순하게 cost를 채택하고 이를 기반으로 학습하는알고리즘 문제는 overfit을 방지할 어떤 장치도 없어 단순하게 학습하면, overfit이 되기 쉽상이다. 특히 feat.. 더보기
KNN Classifier, Regression KNN Classifier (N=3) (features_D=2) (non-parametric classifier) decision boundary표시. N의 값이 증가할수록 일반화 되어 smooth한 경계선이 생성됨. N=data set이 되면, 많은 class가 있는 data set으로 모든 예측값이 같아짐. 적절한 균형 필요. N=1 일때, 훈련 데이터에 예측정확도는 100%(모든 경계가 각 훈련데이터로 만들어짐.)(overfit) N이 9가넘어가면서 테스트셋에대한 정확도도 떨어짐(underfit) KNN Regression (N=3) (features_D=1) N이 증가할 수록 마찬가지로 일반화된다. 핵심 parameter => 1. 데이터 포인터간의 거리 측정법 (주로 L2 distance 유클리.. 더보기
2225-합분해 (DP 최적화) 합분해시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB85773709275142.473%문제0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 구하는 프로그램을 작성하시오.덧셈의 순서가 바뀐 경우는 다른 경우로 센다(1+2와 2+1은 서로 다른 경우). 또한 한 개의 수를 여러 번 쓸 수도 있다.입력첫째 줄에 두 정수 N(1 ≤ N ≤ 200), K(1 ≤ K ≤ 200)가 주어진다.출력첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다.예제 입력 1 복사20 2 예제 출력 1 복사21 문제 정의D[N][k] : N을 k개의 정수의 조합의 합으로 나타낼 수 있는 모든 경우의 수 점화식N = ... + pN = ( ... = N-p, k-1개) + pD[N][k.. 더보기
Restricted Boltzmann Machine 근래에 대부분의 비전분야에 사용되는 DCNNs 방식은 인풋, 아웃풋이 있을때, 두 사이를 연결하는 함수를 찾는 과정(supervised learning)이다. (* Z는 정규화 term) 이와달리, Energy-based model를 이용한 RBM은 대표적인 Unsupervised Learning이다. 주어진 이미지에서 이미지를 가장 잘표현하는 representation을 찾는 과정이다. 가정하는 환경은 위의 Energy-based model이다. 특정상태의 확률은 에너지 비율에 반비례. 이러한 확률 분포를 bolttzman distribution이라고함. x라는 이미지(입력)가 있을 확률(p(x))은 에너지(E(x))에 반비례한다. 즉, 에너지를 학습하여 찾는 것이 목적이고, 이 아이디어에서 유도된 것.. 더보기
pickle 파이썬 객체 직렬화 pickle 파이썬 객체 직렬화소스 코드: Lib/pickle.pypickle 모듈은 파이썬 객체 구조의 직렬화와 역 직렬화를 위한 바이너리 프로토콜을 구현합니다. "피클링(pickling)"은 파이썬 객체 계층 구조가 바이트 스트림으로 변환되는 절차이며, "역 피클링(unpickling)"은 반대 연산으로, (바이너리 파일 이나 바이트열류 객체로 부터의) 바이트 스트림을 객체 계층 구조로 복원합니다. 피클링(그리고 역 피클링)은 "직렬화(serialization)", "마샬링(marshalling)" (이것을 marshal 모듈과 혼동하지 마십시오.) 또는 "평탄화(flattening)" 라고도 합니다경고 pickle 모듈은 잘못되었거나 악의적으로 생성된 데이터에 대해 안전하지 않습니다. 신뢰할 수 없.. 더보기
Serialization 직렬화 컴퓨터 A에 있는 정보를 컴퓨터 B에 전송하기 위한 것이 직렬화입니다.객체 를 직렬화하게 되면 일련의 바이트 스트림으로 변환됩니다.직렬화 된 정보를 복원하는 것을 역직렬화라고 하는 데, 이를 통해서 객체의 원형을 복원할 수 있습니다.질문에서 언급한대로, 객체에서 getter와 setter를 사용하는 것은 같은 컴퓨터에 있을 경우에는 가능합니다. 따라서 같은 컴퓨터에 사용할 경우에는 직렬화에 대한 고민을 할 필요가 없습니다.그러나 사용하고 있는 이 객체를 다른 컴퓨터(혹은 종료된 후, 재실행되었을 때)에 전송하여, 그대로 사용하는 것에 대한 고민한다면, 직렬화 가 필요로 합니다.객체를 어떻게 해야 다른 컴퓨터에 전송하여 그 객체를 그대로 사용할 수 있을까요?기본적으로 다음과 같은 생각을 해볼 수 있을 겁니.. 더보기
Exponential Moving Average (EMA) 위와 같은 날짜와 기온 데이터가 있다고 하자. 1년의 데이터를 표현한 것인데, 1월 ~ 12월의 흐름을 생각하면 된다. 모든 날짜를 표현하니 noise가 있어 다소 지저분하다. 따라서, 지역적인 평균(local average) 즉, moving average로 표현하는 것이 분석에 용이할 것이다. 이와 같은 식으로 날짜의 θ를 v로 대체하자. exponentially weighted moving average 를 얻을 수 있다. 일반화한 EMA의 식은 위와 같다. v_t는 의 대략적인 평균이다. 즉, 위와 같이 볼 수 있다. β의 크기가 커질 수록, v_t에서 고려하는 날짜의 크기 (window size)가 커지므로, 보다 곡선이 smooth해진다. 따라서, 급격한 기온변화에 둔감해진다. β가 커진다는 .. 더보기

반응형