본문 바로가기

프로그래밍

(356)
[번역|SO] 시계열데이터의 이상탐지를 위한 패키지 link : https://datascience.stackexchange.com/questions/32126/looking-for-good-package-for-anomaly-detection-in-time-series 질문 : 시계열데이터에서 이상탐지를 위한 좋은 패키지를 찾는다. 답변1: (2018년 10월) pyod 라는 파이썬 패키지가 있다. ( Pyod ) 이 패키지에는 다음과 같은 알고리즘이 들어있다. 선형모델 (PCA, vMCD, vOne-Class, SVM) 인접성기반 모델 (LOF, CBLOF, HBOS, KNN, AverageKNN, MedianKNN) 확률모델 (ABOD, FastABOD) 앙상블, 조합 프레임워크 (IsolationForest, FeatureBagging) 신경망, ..
[ML|번역] 랜덤포레스트의 기본 변수중요도에 주의하라 랜덤포레스트의 기본 변수중요도에 주의하라 / Beware Default Random Forest Importances link : https://explained.ai/rf-importance/ 요약 scikit-learn 랜덤포레스트의 변수중요도( feature importance) 또는 R의 기본 랜덤포레스트 변수중요도는 편향되어 있다. 파이썬에서 믿을만한 결과를 얻으려면, rfpimp 패키지에서 제공하는 퍼뮤테이션 중요도 (permutation importance)를 사용하라. R에서는 랜덤포레스트 생성시에 importance=T 를 사용하고, importance() 함수에서 type=1 인자를 주라. 더불어, 변수중요도는 모델이 적절한 하이퍼패러미터로 훈련되었을 때에만 믿을 수 있다. 이후 상세한..
[ML|SO번역] 머신러닝에서 Out-of-Fold (OOF) 란? src : https://stackoverflow.com/a/52396238/100093 (K-Fold 크로스 밸리데이션에서) 매 폴드마다 90%의 데이터로 훈련을 하고, 나머지 10%의 데이터에 대해서는 예측을 합니다. 이 10%로 에러 메트릭(예를 들어 RMSE라고 합시다.)을 계산합니다. 이 과정을 통해 결국 남는 것은, 10차례의 각 폴드마다 RMSE 값 하나와 각 10% 데이터셋에 대한 예측치입니다. 이 결과물을 2가지 방법으로 처리할 수 있습니다. 10개의 RMSE 값의 평균과 표준편자를 확인합니다. K폴드는 랜덤으로 데이터를 나누므로, 각 폴드에서 나온 에러값(RMSE)들은 서로 비슷해야 합니다. 만약, 값들이 서로 비슷하지 않다면, 이 때의 모델(피쳐와 하이퍼패러미터들)로는 테스트셋에서 안..
추천시스템 메모 2 1. Recommender Systems - Andrew Ng 1.1. Recommender Systems | Problem Formulation 1.2. Recommender Systems | Content Based Recommendations 알려진 특징들(로맨스, 액션, ...)이 있고, 각 영화에 대해 이 특징들에 대한 점수를 매겨서, 영화를 수치의 튜플로 표현할 수 있다. 사용자들이 이미 매긴 영화들 점수를 가지고, 각 사용자들이 영화의 특징(feature)에 대해 얼마나 선호하는지를 학습하여, 아직 점수를 매기지 않은 영화에 대한 알려진 특징점수와 사용자의 추측된 선호도를 연산하여, 그 영화에 대한 점수를 예측한다. For each user j, learn a parameter theta(j..
추천시스템 메모 추천시스템 Recommend System DEVIEW 2017 : 인공지능 추천 시스템 AiRS 개발기 : 모델링과 시스템 https://tv.naver.com/v/2297146 : 발표영상. https://www.slideshare.net/deview/airs-80886207 : 발표슬라이드. 최재호@네이버나의 필기 추천모델의 종류 stats based collaborative filtering deep learning 통계기반 개인화보다, 글로벌 추천 (10대남성 등등) Chi-Squared Cross-Entropy H(p,q) = - Sum p(x) log q(x) KL Divergence : 에 대한 설명 있는데 이해 못함. 협력필터 (collaborative filtering) - 가장 대표적인..
[Python] Python Profiling 관련 메모 cProfile : 파이썬 표준라이브러리 프로파일러python -m cProfile script.py python -m cProfile -s tottime script.py python -m cProfile -o prof.out script.py 프로파일 시각화 : Visualizing the Results of Profiling Python Code pyprof2calltree pyinstumentpython -m pyinstrument --show-all script.py
[Python] pd.to_datetime 과 datetime.fromtimestamp 의 결과가 다르다. 타임스탬프로 시간이 주어진 데이터가 있는데, 이걸 데이트타임으로 변환하기 위해 다음 두가지 방법을 써 보았는데, 결과가 다르게 나왔다. import time import pandas as pd import datetime t = time.time() # 1562770422.6544123 dt1 = pd.to_datetime(t, unit='s') # dt1 = Timestamp('2019-07-10 14:53:42.654412270') dt2 = datetime.datetime.fromtimestamp(t) # dt2 = datetime.datetime(2019, 7, 10, 23, 53, 42, 654412) 두 결과의 타입이 조금 다르지만, 그걸 무시하고 봐도, 날짜가 같..
RMSLE 의 의미는 무엇일까? 아래내용은 개인적으로 의미를 생각해 본 것입니다. (정식으로 통계학 공부하면서 배운 내용이 아니에요.) 개념상 틀린 부분, 부정확한 부분이 있다면, 지적바랍니다. RMSLE 는 Root Mean Square Logarithmic Error 이고, 그 식은 다음과 같다. $ \sqrt{ \frac{1}{n} \sum_{i=1}^{n}{ (\log( p_i + 1) - \log(a_i + 1))^2} } $ $ = \sqrt{ \frac{1}{n} \sum_{i=1}^{n}{ (\log \frac {p_i + 1} {a_i + 1} )^2} } $ 이 값의 의미는 무엇일까? 이 의미를 이해하려면, 우선 RMSE, Root Mean Square Error 를 이해할 필요가 있다. RMSE 는 예측값과 실제값의..