본문 바로가기

분류 전체보기113

Apriori 연관 규칙 알고리즘 - 개념, 전처리 방법, 모델 적용 연관규칙 알고리즘의 이해 Apriori 알고리즘은 연관 규칙 학습 알고리즘 중 하나로, 데이터셋에서 특정 항목들 간의 연관성을 찾아내는 데 사용된다예를 들어, 고객의 구매 기록을 분석하여 '우유를 산 고객들은 계란도 산다' 등과 같은 연관성을 찾아낼 수 있다. "Apriori 원칙"  "특정 항목 집합이 자주 발생한다면, 그 항목들의 부분 집합들도 자주 발생한다" 는 것을 기반으로 한다,즉, 자주 발생하는 항목 집합의 하위 집합들은 더 자주 발생할 가능성이 높다는 것을 의미한다.  더 쉽게 설명하면, 다음과 같은 상황이 발생했다고 가정해보자.  A 고객은 마트에서 '파, 양파, 두부' 를 한번에 구매했다. B 고객은 마트에서 '양파, 두부'를 한번에 구매했다.C 고객은 마트에서 '두부, 파'를 한번에 구.. 2024. 3. 24.
Box-Cox , Yeo-johnson Transformation 개요 박스콕스 변환(Box-Cox transformation)과 여존슨 변환(Yeo-Johnson transformation)은 데이터를 정규분포에 가깝게 변환하는 통계 기법이다. 데이터에 적용시킬 통계 모형이 정규분포를 가정하고 있고, 예측 모델의 예측 성능을 향상 시킬 수 있기 때문에 데이터를 정규화한다. 정규분포를 가정하는 통계기법은 선형회귀 , 로지스틱 회귀 등이 있다. 데이터의 값이 양수라면 해당 범위를 포괄하는 박스콕스 변환을 사용하며, 데이터가 0또는 음수값이 존재할 경우 이를 보안한 여존슨 변환을 사용한다. 해당 변환은 sklearn 패키지에서 사용할 수 있다. from sklearn.preprocessing import power_transform #여존슨 변환 df[['여존슨 변환한 컬.. 2024. 3. 17.
[트레이딩]Python 코인 자동매매 구현하기(기초) 이번 포스팅은 CCXT 라이브러리를 사용하는 법을 간단히 익혀본다. 간단한 자동매매 클래스를 생성하고, 실행 스크립트를 main.py로 저장하여 자동매매 프로그램을 실행시켜본다. CCXT(Cryptocurrency Exchange Trading Library) 소개 CCXT는 cryptocurrency(암호화폐) 거래소를 위한 통합된 자바스크립트/Python/PHP 라이브러리이다. https://docs.ccxt.com/#/ ccxt - documentation docs.ccxt.com 빗썸 (Bithumb) , 업비트 (Upbit), 코인원 (Coinone) 등의 다양한 가상 자산을 거래할 수 있는 거래소와 통일된 API 를 제공하는 라이브러리이다. 업비트 API 를 발급받아서 사용방법을 설명하겠다. .. 2024. 3. 5.
데이터 비닝과 WOE(Weight of Evidence), IV(Information Value) 데이터 비닝(변수 구간화) 연속형 변수를 구간화를 통해 그룹으로 나누는 과정이다. 데이터 비닝을 통해 해당 변수의 스케일이나, 분포가 모델에 미치는 영향을 줄일 수 있고, 모델 복잡도를 줄일 수 있다. 비닝의 가장 대표적인 예시 - 카운팅/ 값에 대한 경계로 구간화 - 값으로 통일 폭 변수 구간화 - 동일 빈도 변수 구간화 - 구간별 평균값으로 평활화 - 중앙값으로 평활화 - 경계값으로 평활화 구간화를 어떻게 하는지는 데이터에 따라 달라진다. (나이 : 10대,20대,30대 등, 학점 등) 오늘 포스팅에서는 변수 구간화 이후, Feature Selection의 영역에서 각 구간별로 나누어진 변수가 얼마나 예측력이 있는지 WOE(Weight of Evidence) 와 IV(Information)를 활용하여.. 2024. 2. 29.
Ascendex 코인 OHLCV 데이터 API 크롤링 코인 ohlcv 데이터를 크롤링해보자. 거래소는 Ascendex 이고, 공식문서는 다음과 같다. ASCENDEX 공식 문서 https://ascendex.github.io/ascendex-pro-api/#ascendex-pro-api-documentation API Reference ascendex.github.io 1. API Key 발급 인증키 발급은 홈페이지에서 로그인 후 가능하므로, 간략하게 설명하고 넘어간다. https://ascendex.com/en/global-digital-asset-platform AscendEX: Cryptocurrency Trading Platform | Bitcoin & Crypto Exchange SUBSCRIBE to our Sunday Briefing Weekl.. 2024. 2. 25.
BTC 시계열 모델링 워크플로우 및 각 단계별 트러블 정리 워크플로우 (요약) 0. Loading Data - resampling - returns, volatility 1. Preprocessing(전처리) 1-1. checking missing value , imputation - ohlc, quote_qty : spline interpolate - returns : Arima - volatility : Arima 2. Technical Indicators(파생변수 생성) - MACD - Stochastic Oscillator - ATR - RSI - Ultimate Oscilator - ROC - RSI - Boolinger Band 2.1. checking Missing Value 3. Feature Engineering - (Baseline Model .. 2024. 2. 24.
[텍스트 분석] konlpy 한글 형태소 분석 0. 텍스트 전처리 단계 1. 데이터 정제 (Python 문법, 정규표현식 사용) 2. 영어/한글에 따라 전처리 진행(nltk, konlpy) 토큰화 : 텍스트의 단위를 token으로 나누기 문장토큰화/단어토큰화/단어보다 더 작은 형태로 토큰화 정규화 : 어간 추출, 표제어 추출 ex) go, goes > go 품사 태깅 : 명사, 대명사, 형용사 등으로 분석 요구에 따라 태깅 👉 이번 포스팅 : konlpy 라이브러리를 사용하여 형태소 분석 하는 방법 (mac 사용자의 경우, 설치 과정이 복잡하고 에러가 빈번하므로 Jupyter보다 Colab에서 사용하길 권장한다) 1. Konlpy 라이브러리 설치 및 임포트 Konlpy(Korean Natural Language Processing in Python).. 2024. 2. 22.
[텍스트 분석] nltk 영어 형태소 분석 - 토큰화/정규화/품사 태깅 0. 텍스트 전처리 단계 1. 데이터 정제 (Python 문법, 정규표현식 사용) 2. 영어/한글에 따라 전처리 진행(nltk, konlpy) 토큰화 : 텍스트의 단위를 token으로 나누기 문장토큰화/단어토큰화/단어보다 더 작은 형태로 토큰화 정규화 : 어간 추출, 표제어 추출 ex) go, goes > go 품사 태깅 : 명사, 대명사, 형용사 등으로 분석 요구에 따라 태깅 👉 이번 포스팅 : nltk 라이브러리를 사용하여 영어 텍스트를 토큰화/정규화/품사 태깅 하는 방법 1. nltk (Natural Language Toolkit) 패키지 NLTK는 텍스트 데이터를 처리하고 분석하는 데 사용되며, 다양한 자연어 처리 작업을 수행할 수 있는 도구와 리소스를 제공하는 패키지이다. 영어 텍스트 전처리에.. 2024. 2. 21.
TICK 데이터 리샘플링 & OHLCV 변환 + 트러블슈팅 0. 공모전 개요 2024-1 데이터 학회 연합 ASCEND 채용 연계 데이터 분석 공모전 틱데이터 활용 비트코인(BTC)의 단기 변동성 예측 모델링 주관/ 주최 : BDA , ASCEND(퀀트 트레이딩 기업) 참여 학회 : BDA, KUBIG, KHUDA, ESAA, ESC, PARROT 사용 모델 : Random Forest 데이터 : 2023.01 ~ 2024.01 10분 단위 BTC 틱데이터 평가 방법 / 성능평가지표 : 향후 7일 동안의 ‘실제 시장 데이터’에 적용해 성능을 평가 / mape 1. 제공된 데이터 & 리샘플링 계획 Column Name Description id 각 거래에 고유하게 할당된 식별 번호, 거래 구별 시 사용 price 거래가 체결된 가격(달러가치) qty 거래된 비트코.. 2024. 2. 18.
[Tableau] 집합 분석 - 집합 개념, 정적/동적 집합 생성하기 Tableau 집합 이란? 일부 조건으로 데이터의 하위 집합을 정의하는 사용자 지정 필드 (https://help.tableau.com/current/pro/desktop/ko-kr/sortgroup_sets_create.htm) 집합 만들기 집합을 사용하여 데이터 하위 집합을 비교하고 관련 질문을 할 수 있습니다 help.tableau.com 집합과 필터의 차이 집합 (In/out)으로 분리 , 필터는 In에 속하는 멤버 유지( 필터가 집합의 하위개념/부분집합 ) 집합 생성하기 - 정적/동적 집합을 생성하는 경로는 다음과 같다. - 드래그 > 메뉴 집합 만들기 - 필드 > 만들기 > 집합 - 필터 > 집합 만들기 이를 참고하여 정적 집합/ 동적 집합을 생성해보자. 1. 정적 집합 생성하기 (고정된 집합.. 2024. 2. 18.