본문 바로가기
  • 데이터에 가치를 더하다, 서영석입니다.

전체 글165

Hands-on ML : 4. 2 확률적 경사하강법, 미니배치 경사 하강법 배치 경사 하강법 문제점 배치 경사 하강법의 문제는 매 스텝에서 전체 훈련 세트를 사용해 그레디언트를 계산한다는 것이다. 훈련 세트가 커지면 매우 느려지는 이유로 확률적 경사하강법을 사용한다. 확률적 경사하강법 매 스텝에서 한 개의 샘플을 무작위 선택하고 그에 대한 그레이디언트를 계산한다. 매 반복에서 적은 데이터를 처리하기에 속도가 매우 빠르며, 1개 샘플에 대한 메모리만 필요하므로 매우 큰 훈련 데이터 셋도 가능하다. 반면에 확률적이기에 배치 경사 하강법보다 불안정하다는 단점이 있다. 또한 매끄러운 하강이 아닌 요동치는 것을 볼 수 있는데, 요동치는 것은 지역 최솟값을 뛰어넘어서 전역 최솟값을 찾게 도와줄 수 있다. 학습률이 너무 천천히 줄어들면 오랫동안 최솟값 주변을 맴돌거나 지역 최솟값에 머무를 .. 2022. 5. 18.
Hands-on ML : 4. 2 경사 하강법 경사 하강법 (gradient descent) 최적의 해법을 찾을 수 있는 일반적인 최적화 알고리즘 아이디어 : 비용 함수를 최소화하기 위해 반복해서 파라미터 조정해가는 것. 제시된 함수의 기울기로 최소값을 찾아내는 머신러닝 알고리즘 1. 특정 파라미터 값으로 시작 : 가중치 W1에 대한 시작점을 선택한다. 2. 비용 함수 (Cost function) 계산 : 모델을 구성하는 가중치 W의 함수 3. 반복 학습 (iteration) : 과정을 n번 반복하며 최소값으로 수렴. (스텝의 크기가 중요) -> numeric analysis에서의 수치적 접근법과 같다. ( ex) Bisection algorithm etc..) 4.2.1 배치 경사 하강법 경사 하강법을 구현하기 위해 각 모델 파라미터에 대한 비용 .. 2022. 5. 17.
[2022 통계청 공모전] 5. test 및 후기.. 마지막.. test padding이다. 토크나이저시키고.. tokenizer = Tokenizer() tokenizer.fit_on_texts(test) X_encoded = tokenizer.texts_to_sequences(test) 패딩시킨다... X_test = pad_sequences(X_encoded, maxlen=max_len, padding='post') 잘잘한 코드를 몇 줄 작성한 뒤, predicted에 y_pred의 argmax 다시 말해서, 최대가 되는 벡터값을 넣어주면 완료! y_pred = np.mean(pred_list,axis=0) predicted = y_pred.argmax(axis=-1) 이후 아래 그림처럼 digit_1, digit_2, digit_3이 비어있는데, 이.. 2022. 5. 16.
[2022 통계청 공모전] 4. CNN-LSTM 사용 CNN-LSTM 사용하기에 앞서 PCA를 진행해주었다. PCA 함수 생성 compute_pca 함수를 만들어, covariance 행렬을 계산 covariance matrix에서 eignvector와 eigenvalue를 계산 eigenvalue를 오름차순으로 sort highest 에서 lowest로 종렬 eigen vector를 내림차순으로 sort n개의 eigenvector를 선택 후 배열 eigenvector의 transpose를 곱하여 데이터를 변환 def compute_pca(X: np.ndarray, n_components: int=2) -> np.ndarray: X_demeaned = X - X.mean(axis=0) covariance_matrix = np.cov(X_demeaned, .. 2022. 5. 15.
[삼성 SDS Brightics] Brightics Studio 활용 https://honeyofdata.tistory.com/66 지난 포스팅에 이어 이상치 탐지의 시각적 분석을 해보려고 한다. Boxplot boxplot도 확인해주고 Histogram count된 histogram도 확인해주었다. 시간에 따른 plot도 확인해주었다. 이제 이상치 탐지(Outlier Detection)에 Turkey 방식으로 TVOC의 열만 이상치 제거를 해주었다. 이상치 전후 비교 Histogram -왼쪽 히스토그램 : 이상치 제거 전 , -오른쪽 히스토그램 : 이상치 제거 후 (Turkey방법) 아래 그림의 경우, 왼쪽 분포와 오른쪽 분포가 비슷한 양상을 보이는 것처럼 보여도, 두 그래프의 y축의 범위가 다르다. 뿐만 아니라, outlier로 보이는 긴 선도 제거되었음을 볼 수 있다.. 2022. 5. 14.
[삼성 SDS Brightics] Brightics Studio 소개 지인을 통해 삼성 SDS Brightics를 알게 되었고, 어떤 툴인지 궁금하여 직접 설치해 활용해보기로 하였다. 역시.. SDS 깔끔한 이미지로 Brightics AI를 사용해보고 싶었으나, 혹시 나중을 위해 Brightics Studio를 사용하기로 하였다. 뭔가 처음 게임을 설치하는 것처럼 처음 쓰는 툴에 매력을 느꼈다.. 또한 ML/DL로 나눠져있는 것으로 보아 DL은 노트북으로 돌리다가 터지겠다..는 생각이 들었다. 다음에 시도해봐야겠다.. 이제 진행과정을 보자. STEP1 . 로컬의 분석하고 싶은 데이터를 불러온다. STEP2. 데이터프레임의 컬럼명과 데이터의 예시를 확인한다. First Data = dataframe.head(1)인 것 같다.. STEP3. 변경하고 싶은 컬럼명, 타입의 경우.. 2022. 5. 13.
Hands-on ML : 4. 선형 회귀 및 계산 복잡도 (시간복잡도, 공간복잡도) 4.1 선형 회귀 (Linear regression) 4.1.1 정규방정식 (normal equation) 통계에서 일반 최소 제곱은 선형 회귀 모델에서 알려지지 않은 매개변수를 추정하기 위한 선형 최소제곱 방법의 한 유형 이를 파이썬으로 나타내보자. X=2*np.random.rand(100,1) y=4+3*X+np.random.randn(100,1) 정규방정식으로 Theta 구하기. X_b=np.c_[np.ones((100,1)),X] theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y) X_new=np.array([[0],[2]]) X_new_b=np.c_[np.ones((2,1)),X_new] y_predict=X_new_b.dot(theta_.. 2022. 5. 12.
[2022 통계청 공모전] 4. modeling with CNN-LSTM 임베딩까지 마친 set을 CNN-LSTM의 모델을 적용시키는 분류 분석을 진행하였다. CNN Algorithm : 차원 축소 단계를 거쳐 이미지를 분류하는 신경망 알고리즘이다. convolution layer , pooling layer , fully connected layer을 통해 feature 추출. LSTM(Long Short Term Memory) RNN에서 발전된 구조로 3개의 gate와 2개의 state가 존재한다. Forget Gate : 잊고자 하는 정도. 활성화함수 : sigmoid 함수 (출력값 : 0~1 사이) Input Gate : 새로운 입력을 받고자 하는 정도. 활성화함수 : sigmoid 함수 (출력값 : 0~1 사이) Output Gate : Cell State 중 어떤 .. 2022. 5. 11.
[2022 통계청 공모전] 3. embedding_model Embedding_model 만들기 Word2Vec 함수 사용 from gensim.models import Word2Vec embedding_okt = Word2Vec(tokenized_okt1, size=100, window = 2, min_count=50, workers=4, iter=100, sg=1) embedding 모델을 구축한다는 것은 Word2Vec의 함수를 써서 단어벡터를 만들어준다는 뜻이다. 이후 아래 코드처럼 저장해주면 임베딩된 모델이 완성되게 된다. embedding_okt.save('/emb__okt.model') 자연어처리에서 사용하는 gensim 라이브러리는 아래를 참고하면 된다. https://radimrehurek.com/gensim/ Gensim: topic modell.. 2022. 5. 9.