데이터로 Deep Dive

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

개발자 14

금융 데이터 AI 챗봇 개발기: 4) 드디어 모델 배포! 사이트가 생기니 좋구만!

👇 이전 포스팅은 아래에서 확인할 수 있습니다. 👇  1️⃣ 금융 데이터 AI 챗봇 개발기: 1) 그래서 PDF를 어떻게 분석할건데? (기획부터 데이터 전처리까지)    - 출처: https://nanini.tistory.com/902️⃣ 데이터 AI 챗봇 개발기: 2) LLM 모델을 통한 챗봇 만들기 (RAG부터 Chain까지)   - 출처: https://nanini.tistory.com/913️⃣ 금융 데이터 AI 챗봇 개발기: 3) 추천 알고리즘, 개인 선호도를 반영한 레포트 추천 기능 만들기- 출처: https://nanini.tistory.com/92   앞에서 세 개 포스팅으로 모델을 구현한 이야기의 최종판, 기능들을 한데 모아서RePick이란 서비스를 만들었다.  - RePick (ht..

수료 후기 - [한국경제신문 with toss bank] Tech 우수인재 양성을 위한 (MLOps) 과정

장장 6개월의 기간이 느린듯 빠른듯 끝났다...! 혼자 파이썬을 해도, 데이터 공부를 해도 꽉 막힌 느낌이라 마지막 마음으로 도전한 부트캠프였는데 결론은참, 하길 잘했다. 그런데 역시나끝나면 아쉬움이 남는건 국룰인 듯나도 아쉬움이 백만개 남았다.  이 부트캠프에서 난 MLOps를 수료했고, MLOps 개념은 아직 대중화된 용어도 아닌지라우리의 챗지피티한테 물어봤을 때 아래와 같은 답변을 뱉어냈다. 맞다. 머신러닝을 운영하는 것으로 데브옵스와 유사한 개념으로써, 머신러닝 모델의 개발, 배포, 운영을 효율적으로 관리하는 것인데중요한건부트캠프 수료 만으로는...MLOps로의 취업은 힘들것 같다.  이건 어쩔 수 없는게6개월동안 데이터사이언스를 위한 수학(쪼금)+SQL+Python+Machine Learning..

etc 2025.01.14

회귀 알고리즘

회귀란?데이터 값이 평균과 같은 일정한 값으로 돌아가려는 경향회귀 분석은 데이터 값이 평균과 같은 일정한 값으로 돌아가려는 경향을 이용한 통계학 기법 여러 개의 독립변수(X)와 한 개의 종속변수(y) 간의 상관관계를 모델링하는 기법(*모델링은 표본)가중치 -> 회귀 계수(Regressino Coefficients)회귀 유형회귀 계수회귀 계수가 직선이면 -> 선형회귀회귀 계수가 직선이 아니면 -> 비선형로지스틱 회귀독립변수 개수회귀 계수의 결합1개단일 회귀선형선형 회귀 N개 다중 회귀비선형비선형 회귀로지스틱 회귀 회귀 모델의 목적: 전체 데이터의 잔차(오류 값) 합이 최소가 되는 모델을 만드는 것 -> 오류 값의 합이 최소가 될 수 있는 최적의 회귀 계수 w을 찾는 것!일반 선형 회귀(LinearRegre..

앙상블(보팅, 배깅, 부스팅)

보팅(Voting)Hard Votiing: 다수의 Classifeir간 다수결로 최종 class 결정Soft Voting: 다수의 Classifier들의 class 확률을 평균하여 결졍(*일반적으로 많이 사용) -> predict prob가 있어야 가능SVC 모델은 predict proba가 없으므로 Soft Votingd 참여 불가 배깅(Bagging): Bootstrap Sampling의 줄임말, 기존 학습 데이터 세트로부터 랜덤하게 복원추출하여 동일한 사이즈의 데이터 세트를 여러 개 만드는 것과대적합되며 훈련이 진행됨대표 모델: 랜덤포레스트부스팅(Boosting): 과소적합된 모델을 사용하여 순차적으로 반복학습을 진행함, 예측한 데이터 혹은 학습 트리에 가중치 부여를 통해 오류를 개선해 나가면서 학..

Git 협업하기(feat. git fetch, git diff, git blame, git revert)

> git fetch: 로컬 레포지토리에서 현재 HEAD가 가리키는 브랜치의 업스트림(upstream) 브랜치로부터 최신 커밋들을 가져옴(*git pull과 다름!)*git pull = git fetch + git merge> git diff: 두 커밋 간의 차이 + 두 브랜치 간의 차이 확인> git pull 과 git fetch의 차이점은?> git blame [파일명]:  특정 파일의 내용 한줄한줄이 어떤 커밋에 의해 생긴 것인지 출력> git show [커밋 아이디]: 해당하는 커밋의 변경사항 확인> git revert [커밋 아이디]: 특정 커밋에서 이루어진 작업을 되돌리는(취소하는) 커밋을 새로 생성> git revert [되돌아갈 커밋 아이디]..[커밋 아이디]: 되돌아갈 커밋 아이디 다음부..

브랜치(branch) 개념부터 잘 사용하는 방법까지

branch 는 왜 사용할까?: Git에서 하나의 프로젝트는 여러 가지 버전으로 관리할 수 있다. 예를 들어 하나의 프로젝트를 '유/무료 버전, 배포/개발/테스트/긴급 버그 수정용 버전, 스마트폰/PC/TV 버전' 등 으로 나누어 관리할 수 있는데 이는 모두 Git에 branch 라는 개념이 있기 때문에 가능하다. git branch: 생성된 모든 브랜치 조회git branch [브랜치명]: 입력한 브랜치명으로 새로운 브랜치 생성git branch -d [브랜치명]: 해당 브랜치를 삭제git checkout [브랜치명]: 해당 브랜치로 이동git checkout -b [브랜치명]: 입력한 브랜치명으로 된 새로운 브랜치를 생성하여 해당 브랜치로 이동checkout: 다른 branch로 이동-b: branc..

Remote Repository의 브랜치에 대해 더 알아보자(feat.origin과 master)

아래 포스팅에서 했던 작업 중, 2024.07.15 - [Codeit/Git] - GitHub 시작하기(git push, git pull, git clone)GitHub에서 Math_Box라는 리모트 레포지토리(remote repository)를 만들고로컬 레포지토리(local repository)의 내용을 그 리모트 레포지토리에 보내기위해 아래와 같은 커맨드 2개를 실행한 적이 있다. 이때 아래의 두개 커맨드에 대해 알아보자. git remote add origin https://github.com/Marlangcow/Math_box.gitgit push -u origin master1. origin이란?git remote add origin [GitHub 상 프로젝트 주소]: [GitHub 상 프로젝..

commit(커밋) 과 메시지 작성 가이드라인(*협업 시, 필수)

아래의 가이드라인은 회사마다 다를 수 있으며, 절대적인 규칙이 있는 것도 아니지만나중에 다시 봤을 때 이하하는데 어려움이 없도록다른 동료 개발자와 협업하는 데 방해가 되지 않도록커밋을 남기고, 그때마다 커밋 메시지를 잘 작성하는 것이 중요합니다. 1. 커밋 메시지 작성 가이드라인1) 커밋 메시지의 제목(title)과 상세 설명(body) 사이에는 한 줄을 비워두세요.*참고: Git 공식 권장사항 중) 필수는 아니지만 커밋 메시지를 변경 사항을 요약하는 짧은(최대 50자) 한 줄로 시작하고, 그 뒤에 빈 줄을 넣은 다음 더 자세한 설명을 넣는 것이 좋습니다. 커밋 메시지의 첫 번째 빈 줄까지의 텍스트는 커밋 제목으로 처리되고, 이 제목은 Git 전체에서 사용됩니다. 예를 들어, git-format-patc..

API 통해 데이터 수집(feat. 크롤링은 지양한다..)

데이터 수집 방법크롤링: 추천 x (*불법 소지 다분함, 최근까지도 다수 기업의 법적 분쟁 사례 있음)크롤링의 최종목표: 웹데이터를 DataFrame으로 변환API: 추천 o (*고비용, 이용 제한 x, 이용매뉴얼만 잘 익히면 API 크롤링 완)부동산 데이터 수집(서울시 빅데이터 센터, 공공데이터 포털) https://data.seoul.go.kr/together/guide/useGuide.do공공데이터 요청 시, 응답할 때 두가지 컨셉으로 응답 (XML, JSON)일괄처리 함수 만들기 (처리.py)자동 적용배치 처리 윈도우에서는 스케쥴러 프로그램Linux에서는 Crontab 설정해당 스크립트 (처리.py)가 정해진 시간에 코드가 돌아감웹 스크래핑 시, 주의점1. 어떤 웹 페이지를 스크래핑 하고자 한다면..

가상환경 세팅하기

가상환경 세팅은 뭐 하나 안맞으면에러나서 골때림# 가상환경 세팅 (*가장 중요! + test폴더는 git에 올리지 않도록 세팅)1. Github 폴더 생성2. git clone # 깃 클론3. Git-Bash로 접속4. virtualenv venv # 해당 폴더에 가상환경 세팅5. conda deactivate # conda 비활성화6. source venv/bin/activate # venv 활성화(*mac은 bin 넣어줘야함, winows는 다름)7. pip install -r requirements.txt (# .txt에 필요한 내용들 eg. numpy pandas matplotlib seaborn plotly scikit-learn jupyterlab 들 넣고 저장)8. 깃헙에서 다운로드 받은 소..