데이터로 Deep Dive

데이터 분석과 개발 경험을 공유합니다.

머신러닝 20

머신러닝과 ChatGPT로 테슬라 주식 가격 예측하기: 1) 랜덤 포레스트, XGBoost, 앙상블 및 LSTM 모델링

'금융' 관련 머신러닝 사례를 찾아보다가 ChatGPT로 주식 가격과 코인 가격을 예측해 본 아티클을 발견했다.  찬찬히 읽어보았는데,시도해보면 재미있을 것 같아서 테슬라로 간단히 시도해보았다.  우선, 내가 참고한 아티클은 카카오뱅크 기술기획팀 William에서 발행한 글인데,   ChatGPT를 뉴스 분석에 활용하여 주가를 예측하는 방법의 효과성을 검증한 논문을 소개한다. 사실 더 흥미로운 건, 이 다음 아티클에서 “카카오뱅크에서 ChatGPT를 이용한 암호화폐의 가격 예측에 관해 연구한 내용“을 소개하는데, 논문까지 있어서 한번 읽어보기 좋다. 카카오뱅크, 'CahtGPT로 주식 가격 예측하기' ChatGPT로 주식 가격 예측하기OpenAI의 ChatGPT가 금융시장 분석에 미치는 영향을 연구한 최..

금융 데이터 AI 챗봇 개발기: 3) 추천 알고리즘, 개인 선호도를 반영한 레포트 추천 기능 만들기

👇 이전 포스팅은 아래에서 확인할 수 있습니다. 👇  금융 데이터 AI 챗봇 개발기: 1) 그래서 PDF를 어떻게 분석할건데? (기획부터 데이터 전처리까지)    - 출처: https://nanini.tistory.com/90금융 데이터 AI 챗봇 개발기: 2) LLM 모델을 통한 챗봇 만들기 (RAG부터 Chain까지)   - 출처: https://nanini.tistory.com/91  LLM은 마무리 되었으니!이제 추천 알고리즘을 만들어보자.  구현 배경여기서 짚고 넘어가야 할 부분이추천 알고리즘? 추천 모델? 추천 시스템? 헷갈리는 부분이 있어개념을 다시한번 정리해보면 아래와 같다. 추천 시스템 > 추천 알고리즘 > 추천 모델추천 모델: 알고리즘을 구현한 구체적인 형태추천 알고리즘: 추천을 생..

금융 데이터 AI 챗봇 개발기: 2) LLM 모델을 통한 챗봇 만들기 (RAG부터 Chain까지)

👇 이전의 포스팅은 아래에서 확인할 수 있습니다. 👇금융 데이터 AI 챗봇 개발기: 1) 그래서 PDF를 어떻게 분석할건데? (기획부터 데이터 전처리까지)출처: https://nanini.tistory.com/90 [데이터 개발 공부:티스토리]  이전 포스팅에 이어서이제 RAG를 구축할 차례이다.  LangChain 공식문서에서 RAG는두 가지 주요 구성 요속 있는데 1번 인덱싱 부분은 이전 포스팅에서 이미 완료한 상태였다.  I) 인덱싱 : 소스에서 데이터를 수집하고 인덱싱하는 파이프라인. 이는 일반적으로 오프라인에서 발생합니다.로드 : 먼저 데이터를 로드해야 합니다. 이는 Document Loaders 로 수행됩니다 .분할 : 텍스트 분할기는 큰 청크를 작은 청크로 나눕니다 Documents. ..

로지스틱 회귀(Logistic Regression)와 시그모이드 함수 그리고 Decision Boundary

머신 러닝은 지도 학습과 비지도학습으로 나뉘는데, 지도 학습은 '회귀'와 '분류'로 나뉜다. 지도 학습회귀: 연속적인 값을 예측분류: 정해진 몇 개의 값 중에 예측ex. 어떤 이메일이 스팸인지 아닌지, 아니면 어떤 기사가 스포츠 기사인지 정치 기사인지 연예 기사인지 등 보통 분류 문제를 풀 때는, 각 결괏값에 어떤 숫자 값을 지정해 준다.예를 들어서 이메일이 스팸인지 아닌지 분류한다면, 보통 이메일에는 0이라는 값을 주고 스팸 이메일에는 1이라는 값을 주는 것이다. 이메일의 속성들을 가설 함수에 넣어서 0이 나오면 보통 이메일이고 1이 나오면 스팸 이메일이라고 할 수 있다.만약 어떤 기사가 스포츠 기사인지 정치 기사인지 연예 기사인지 분류하고 싶다면, 이번에는 가능한 결과가 3가지죠? 그러면 각각 0, ..

카테고리 없음 2024.09.15

다항회귀(Polynomial Regression)

다항회귀란?선형 회귀는 학습 데이터에 가장 잘 맞는 일차식을 찾아서 예측을 하는 알고리즘인 반면, 다항 회귀는 고차식을 찾아서 예측하는 알고리즘이다.  집 값 예측 문제를 생각해보자. 항상 집의 크기라는 변수가 주어진다는 가정을 했고 이걸 하나의 속성으로 이용했는데 사용하는 데이터가 항상 이렇게 하나만 사용해도 의미가 있는 완벽한 변수일 수는 없다. 예를 들어 집이 사각형이라고 가정하고 집 크기 대신 집의 높이와 너비 데이터만 있다고 하자.사실 아무리 너비가 커도 높이가 작거나, 높이만 크고 너비만 작으면 크기가 작고 구조가 효율적이지 않기 때문에 집 값이 높지 않다. 사실 이 두 변수들보다 집값을 예측하는 데 훨씬 좋은 수치는 이 둘을 곱한 값, 집의 넓이다.단순 선형 회귀를 사용하면 이 두 변수가 서..

선형 회귀(Linear Regression)

선형 회귀 (Linear Regression)우선 집 크기가 주어졌을 때, 집 값을 예측한다고 해보자. 이때 선형 회귀는 여기 있는 데이터를 가장 잘 대변해 주는 선을 찾아내는 것이다. 이 데이터에 가장 잘 맞는, 가장 적절한 하나의 선을 찾아내는 거다. 통계학에서는 최적선, 영어로는 line of best fit이라고도 한다. 위의 이미지와 같이 데이터에 잘 맞는 최적선을 찾았다고 가정해보자. 그럼 이걸 어떻게 활용할 수 있을까? 아래 이미지의 최적선을 보면 50평 집 가격은 20억으로, 30평인 집은 약 10억 5천만원이라고 볼 수 있다. 이처럼 정확하진 않더라도 꽤나 합리적인 예측을 할 수 있다. 변수위의 예에서 우리가 맞추려고 하는 '집 가격'은 '목표 변수(target variable)' 또는 ..

정규화(Regularization)와 L1(Lasso), L2(Ridge) 정규화

정규화(Regularization)란?복잡한 모델을 그대로 학습시키면 과적합이 된다. 이때, '정규화' 라는 기법을 통해 학습 과정에서 모델이 과적합 되는 것을 예방할 수 있다. 아래 좌측 이미지와 같은 학습 데이터를 이용하여 다항 회귀를 해보면 우측 이미지처럼 모델이 과적합되어 복잡한 다항 함수가 나오게 된다.  과적합된 함수는 보통 위아래로 엄청 왔다 갔다 하는 특징이 있다. 많은 굴곡을 이용하여 함수가  training데이터를 최대한 많이 통과하도록 하는 것이다. 함수가 이렇게 급격히 변화한다는 것은 함수의 계수, 즉 가설 함수의 θ값들이 굉장히 크다는 의미이다.  정규화는 모델을 학습시킬 때 θ 값들이 너무 커지는 것을 방지해준다. θ 값들이 너무 커지는 걸 방지하면 아래 이미지처럼 trainin..

그리드 서치(Grid Search)와 하이퍼 파라미터 (Hyperparameter)

하이퍼 파라미터 (Hyperparameter)많은 머신 러닝 알고리즘은 학습을 하기 전에 미리 정해주어야 하는 변수 또는 파라미터들이 있다.여기서 하이퍼 파라미터란 학습을 하기 전에 미리 정해줘야 하는 변수 또는 파라미터들을 의미하는데 scikit-learn에서 보통 모델을 만들 때 옵셔널 파라미터로 정해주는 변수들이다.하이퍼 파라미터에 어떤 값을 넣어주느냐에 따라 성능에 큰 차이가 있을 수 있기 때문에 모델의 성능을 높여주는 좋은 하이퍼 파라미터를 고르는게 굉장히 중요하다.  예를 들면, Lasso는 L1 정규화를 해주는 회귀 모델인데, scikit-learn에서 Lasso 모델을 만들 때 alpha와 max_iter라는 옵셔널 파라미터를 지정해 준다. model = Lasso(alpha=0.001, ..

k겹 교차 검증(k-fold cross validation)

k겹 교차 검증(k-fold cross validation)은 머신 러닝 모델의 성능을 조금 더 정확하게 평가할 수 있는 방법이다. 머신 러닝 알고리즘을 만들 때, training set은 모델이 인풋 변수를 잉용하여 아웃풋 변수를 예측할 수 있도록 학습시키는데 사용하고, test set은 학습시킨 모델이 얼마나 예측을 잘 하는지, 즉 모델의 성능이 얼마나 좋은지를 파악하기 위해 사용한다.  이렇게 모델의 성능을 파악하면 어떤 문제가 생길 수 있을까?test set에서만 성능이 좋은 걸 수도 있고, 반대로 test set에서만 성능이 좋지 않게 나올 수도 있다.  교차 검증은 이런 문제를 해결해 주는 방법이다.k-겹 교차 검증k-겹 교차 검증은 먼저 전체 데이터를 k개의 같은 사이즈로 나눈 후, 반복적으..

편향(Bias)와 분산(Variance)

편향아래 좌측의 데이터를 살펴보면 어느 정도까지는 키가 늘어날 때 몸무게가 같이 늘어나지만, 일정 키부터는 몸무게가 잘 늘어나지 않는다. 따라서 우측의 곡선이 데이터를 더 정확하게 표현한다고 볼 수 있다. 이처럼 좌측 직선 모델의 문제는 모델이 너무 간단해서 아무리 학습을 해도 우측과 같은 곡선 관계를 나타내지 못하는데 이를 통해 모델에 한계가 있다는 것을 알 수 있다.이처럼 모델이 너무 간단해서 데이터의 관계를 잘 학습하지 못하는 경우 모델의 편향, 영어로는 bias가 높다고 한다. 이번에는 높은 차항의 회귀를 사용해서, 위와 같은 관계를 학습했다고 해보자.이때, 아래의 복잡한 곡선은 모델의 복잡도를 늘려서 training 데이터의 관계를 잘 학습할 수 있도록 하였으므로 training 데이터에 거의 ..