본문 바로가기

분류 전체보기

(509)
keras evaluate () 6. 모델 평가 - 테스트 데이터셋으로 평가 - Evaluate 함수가 사용됨 => 두 번째 인자에 Y_test 사용함을 주의하기 ! model.evaluate(test_X, test_Y) # 모델평가 res = model.evaluate(X_test, Y_test, batch_size=32) print(res) ■ score = model.evaluate(X_test, Y_test) 케라스의 evaluate 함수는 모델의 정확도를 평가할 수 있는 기능을 제공합니다. 이 함수를 사용하려면 두 가지 데이터를 넣어야 합니다. 첫 번째 데이터는 테스트할 데이터로, 여기에서는 X_test를 입력합니다. 두 번째 데이터는 테스트할 데이터의 정답으로, 여기에서는 Y_test를 입력합니다. evaluate 함수에 데..
ACF , PACF 로 ARIMA 모형의 차수 결정 - AR에 해당하는 차수 p는 PACF를 이용하여 결정하고, MA에 해당하는 차수 q는 ACF를 이용하여 결정 - 정상시계열의 ACF 는 상대적으로 빠르게 0에 수렴하며, 비정상 시계열은 천천히 감소 (종종 큰 양의 값) 참고 : https://assaeunji.github.io/statistics/2021-09-08-arimapdq/
특성 추출을 위한 3 가지 방법 특성 추출을 위한 3 개의 기본적인 차원 축소 기법 : 기본 PCA , LDA , 커널 PCA PCA 비지도 학습 방법 클래스 레이블을 사용하지 않고 직교하는 특성 축을 따라 분산이 최대가 되는 저차원 부분 공간으로 데이터를 투영한다. LDA PCA 와 다르게 LDA 는 지도학습 방법의 차원 축소 기법 훈련 데이터셋에 있는 클래스 정보를 사용하여 선형 특성 공간에서 클래스 구분 능력을 최대화한다. 커널 PCA 비선형 특성 추출 방법 커널 트릭과 고차원 특성 공간으로의 가상 투영을 통해 비선형 특성을 가진 데이터셋을 저차원 부분 공간으로 극적으로 압축한다. 이 부분 공간에서 클래스는 선형적으로 구분될 수 있다.
특성 스케일 맞추기 - 결정트리와 랜덤 포레스트는 특성 스케일 조정에 영향을 받지 않는 알고리즘 경사하강법 (gradient descent) 알고리즘을 구현하면서 보았듯이 대부분의 머신러닝과 최적화 알고리즘은 특성의 스케일이 같을 때 훨씬 성능이 좋다. 특성 스케일 조정의 중요성 두 개의 특성에서 첫번째 특성이 1에서 10 사이의 스케일을 가지고 있고 두 번째 특성은 1 에서 10만 사이의 스케일을 가진다고 가정해보자. 아달린에서 제곱 오차 함수를 생각해보면 알고리즘은 대부분 두 번째 특성에 대한 큰 오차에 맞추어 가중치를 최적화 할 것이다. 유클리디안 거리 지표를 사용한 K - 최근접 이웃 (KNN) 또한 샘플간의 거리를 계산하면 두 번째 특성 축에 좌우한다. 스케일이 다른 특성을 맞추는 방법 정규화 (Nomalizati..
ReLU 와 ReLU 의 변형들 ; 기울기 소실 문제 시그모이드 함수를 사용하면 입력의 절대값이 클 경우에 시그모이드 함수의 출력값이 0 또는 1에 수렴하면서 기울기가 0 에 가까워진다. 그래서 역전파 과정에서 전파시킬 기울기가 점차 사라져 입력층 방향으로 갈수록 역전파가 되지 않는 기울기 소실 문제가 발생할 수 있다. 기울기 소실을 완화하는 가장 간단한 방법은 은닉층의 활성화 함수로 시그모이드나 Tanh 대신 ReLU 나 변형함수와 같은 Leaky ReLU 를 사용하는 것 ! 정리 은닉층에서는 시그모이드 함수를 사용하지 말 것 Leaky ReLU 를 사용하면 모든 입력값에 대해서 기울기가 0에 수렴하지 않아 죽은 LeLU 문제를 해결한다. 은닉층에서는 ReLU 나 Leaky ReLU 와 같은 ReLU 함수의 변형을 사용할 것 참고 : https://wik..
3차원에서의 hstack , vstack A = np.array([[[1,2,3], [10,20,30],[100,200,300]]]) A array([[[ 1, 2, 3], [ 10, 20, 30], [100, 200, 300]]]) B = np.array([[[4,5,6], [40,50,60],[400,500,600]]]) B array([[[ 4, 5, 6], [ 40, 50, 60], [400, 500, 600]]]) print(A.shape) # (1, 3, 3) print(B.shape) # (1, 3, 3) hstack np.hstack((A,B)).shape # (1, 6, 3) vstack np.vstack((A,B)).shape # (2, 3, 3)
원-핫 벡터의 무작위성 꼭 실제값을 원-핫 벡터로 표현해야만 다중 클래스 분류 문제를 풀 수 있는 것은 아님. 대부분의 다중 클래스 분류 문제가 각 클래스 간의 관계가 균등하다는점에서 원 - 핫 벡터는 이러한 점을 표현할 수 있는 적절한 방법이다. 다수의 클래스를 분류하는 문제에서는 이진 분류처럼 2 개의 숫자 레이블이 아니라 클래스의 개수만큼 숫자 레이블이 필요하다. - 레이블링 방법 : 분류해야 할 클래스 전체에 정수 인코딩 예 ) 분류해야 할 레이블이 {red, green, blue}와 같이 3개라면 각각 0, 1, 2로 레이블 예 ) 분류해야 할 클래스가 4개고 인덱스를 숫자 1부터 시작하고 싶다고 하면 {baby, child, adolescent, adult}라면 1, 2, 3, 4로 레이블 그런데 일반적인 다중 클래..
하이퍼볼릭 탄젠트(tanh) 를 사용하는 이유 1. 활성 함수란 ? : 퍼셉트론의 출력에 의미를 부여해 주며, 일반적으로 비선형 함수이다. 2. sign 함수의 문제점 : 결정 경계로부터의 거리를 신경쓰지 않고 , 단지 분류를 잘 했는지 아닌지에만 초점을 맞춘다. 3. tanh 함수 (Hyperbolic tangent 함수) 사인함수를 부드러운 S자 형태의 함수로 바꿀 수 있다. 음의 무한대로 가면 -1 , 양의 무한대로 가면 +1 로 점근 출력값이 실수로 연속되게 나타난다. (Soft Decision) 4. tanh 함수의 사용 이유 - 기울기 소실 문제 - 활성화 함수로 시그모이드 함수를 사용하였을 때 다음과 같이 기울기 소실 문제가 발생한다 이 문제를 조금 완화하고자 사용하는 활성화 함수가 tanh 이다. - tanh 함수를 사용하여도 계층이 ..