본문 바로가기

분류 전체보기

(110)
CountVectorizer, Word2Vec, Autoencoder 모델 1. CountVectorizer특징빈도 기반: CountVectorizer는 텍스트 데이터에서 단어의 빈도를 계산해 벡터로 표현희소 행렬 생성: 각 단어가 전체 텍스트 내에서 얼마나 자주 등장하는지를 세어, 희소 행렬 형태로 표현고정된 벡터 크기: 전체 코퍼스(문서 집합)에 있는 고유한 단어 수만큼의 차원을 가지며, 각 단어는 벡터에서 고유한 인덱스를 차지문서 간 유사도 계산에 유리: 단순한 빈도 계산이므로, 문서 간의 코사인 유사도 등 간단한 연산으로 유사도 계산이 가능from sklearn.feature_extraction.text import CountVectorizerbox = []for i in data["서비스명"] + " " + data['소분류']: box.append(i)cv = ..
뉴스기사 & 리뷰 (텍스트 데이터) 주가 예측 뉴스기사 & 리뷰 (텍스트 데이터) 주가 예측 → 뉴스 기사 수집Selenium과 BeautifulSoup을 사용하여 네이버 뉴스에서 특정 키워드와 관련된 뉴스 기사를 수집주식 키워드와 관련된 최신 뉴스 기사 제목 100개를 스크롤을 반복하면서 수집해, 리스트에 저장# 필요한 라이브러리 임포트import undetected_chromedriver as uc # 크롬 브라우저를 자동화하면서 탐지 방지 기능을 가진 드라이버from bs4 import BeautifulSoup # HTML을 파싱해 텍스트 추출import time # 일정 시간 지연을 위해 사용# 크롬 드라이버를 사용하여 브라우저 시작driver = uc.Chrome()# 뉴스 검색 페이지로 이동driver.get("https://sear..
RSI, 볼린저 밴드를 활용한 투자 전략 (EMA, finterstellar 라이브러리 사용) RSI (Relative Strength Index, 상대 강도 지수)주식, 외환, 암호화폐 등 금융 상품의 가격이 과매도 또는 과매수 상태에 있는지를 판단하는 지표로 사용  RSI ≥ 70: 과매수 상태를 나타내며, 가격이 고평가될 가능성 ↑. 이때 매도 신호로 해석RSI ≤ 30: 과매도 상태를 나타내며, 가격이 저평가될 가능성 ↑ . 이때 매수 신호로 해석  RSI 계산 과정변화량 계산: 특정 주기의 종가 변화를 구해 상승폭과 하락폭을 구한다.AU (Average Up): 일정 기간 동안의 평균 상승폭.DU (Average Down): 일정 기간 동안의 평균 하락폭.RSI 계산:       import FinanceDataReader as fdrimport matplotlib.pyplot as pl..
강화학습 - 밴디트 알고리즘(슬롯 확률 시뮬레이션, 상승장 종목 찾기) 강화학습강화학습은 행동을 선택하여 주어진 환경에서 최대의 보상을 얻기 위해 학습하는 기계 학습에이전트(agent)가 환경(environment)과 상호작용하면서 보상(reward)을 받아, 이를 통해 최적의 정책(policy)을 학습에이전트는 다양한 상태(state)에서 가능한 행동(action)을 선택하고, 그 결과로 보상을 받아 다음 행동을 결정.밴디트 알고리즘밴디트 문제(Multi-Armed Bandit Problem)는 강화학습의 가장 기본적인 문제 중 하나로, 여러 개의 슬롯 머신(밴디트) 중에서 최적의 슬롯 머신을 선택하는 문제각 슬롯 머신은 서로 다른 확률로 보상을 주며, 에이전트는 한 번의 선택으로 보상을 최대화하기 위해 어떤 슬롯 머신을 선택할지 결정해야 함.에이전트는 탐험(Explora..
변동성 돌파 전략, 마켓 타이밍 전략 변동성 돌파 전략특정 조건이 만족되면 매수하고 종가에 매도하는 전략전일의 변동폭을 이용해 당일의 목표가를 설정하고, 목표가에 도달하면 매수 후 종가에 매도 1. 목표가 설정거래일의 시가에 전일 변동폭의 절반을 더한 값을 목표가로 설정 import FinanceDataReader as fdrimport numpy as np# 1. 코스닥 150 데이터 불러오기 ('229200'은 코스닥 150 ETF의 코드)df = fdr.DataReader('229200')# 2. 전일 변동폭 계산 (변동폭: 고가 - 저가)df['변동'] = df['High'] - df['Low']df['전일변동'] = df['변동'].shift(1) 2. 매수 조건거래일의 장 중 주가가 목표가를 돌파할 경우 매수# 3. 목표가 설정 ..
주식 포트폴리오 분석을 위한 시뮬레이션 - 몬테카를로 시뮬레이션, 샤프지수, KOSPI 통계분석, 종목간 상관관계, 최대 낙폭, 할로윈 투자 전략 주식 포트폴리오 분석을 위한 시뮬레이션주식 포트폴리오의 수익률과 위험도를 계산하는 과정이를 기반으로 몬테카를로 시뮬레이션을 통해 다양한 비율로 포트폴리오를 구성하여 수익률과 위험도를 분석 몬테카를로 시뮬레이션:다양한 주식 비중으로 포트폴리오를 구성하고, 그에 따른 예상 수익률과 위험도를 계산무작위로 비중을 선택하여, 각 포트폴리오가 얼마나 수익을 낼 수 있는지 평가10,000번 반복하여 다양한 포트폴리오를 테스트 pct_change() 함수 : 각 주식의 일간 퍼센트 변동률을 계산cov() 함수 : 공분산 행렬을 계산하여, 각 주식 간의 변동성을 평가하는 데 사용 1. 데이터 불러오기 및 전처리'stocks.csv' 파일에서 날짜와 주식 종목 데이터를 불러와서 일간 수익률을 계산하는 기반을 마련impor..
금융 데이터 전처리 (주식 데이터월별, 분기별, 주별 데이터 집계, 거래량 변화 탐지, 모멘텀 전략 및 수익률 계산, 볼린저 밴드) import pandas as pddate = ["6/1", "6/2", "6/3", "6/4", "6/5"]high = pd.Series([42800, 42700, 42050, 42950, 43000], index = date)low = pd.Series([42150, 42150, 41300, 42150, 42350], index = date)# 변동폭diff = high - lowdiff  날짜 찾기diff.max() # 최대값diff.idxmax() # 가장 큰 값이 있는 날짜diff.idxmin() # 가장 작은 값이 있는 날짜  수익률 계산# 수익률profit = high / lowprofit 누적 수익률 계산# 누적수익률profit.cumprod().iloc[-1]  안에 있는 ' , ' 처리..
Okt 형태소 분석기(빈도기반), 워드클라우드, 상대빈도분석(오즈비 분석), TF-IDF 분석 한국어 데이터 : konlpykkma : 서울대, 최신 단어 반영 Xokt : 트위터에서 만든 형태소 분석기# 한국어 데이터 : konlpy# kkma : 서울대, 최신 단어 반영 X# okt : 트위터에서 만든 형태소 분석기, from konlpy.tag import Kkma, Oktokt = Okt()okt.nouns('아버지가방에들어가신다')→ okt.nouns() : 명사만 추출Okt 형태소 분석기 기반 - 연설문 빈도 분석#!pip install koreanize-matplotlibimport koreanize_matplotlibimport matplotlib.pyplot as pltimport pandas as pd# 빈도 분석(문재인, 박근혜 대통령 연설문)f = open('speech_mo..