Professional Field

SQL(ORACLE) | AI | BI | 통계분석

Python 7

[LangChain] OpenAI 모델을 이용한 URL 챗봇 개발

우선, 언어 모델을 만들기 위해 해야 하는 절차는 다음과 같다. 1. 가져올 뉴스데이터 URL를 확보한다.2. TEXT를 추출한 후 파라미터를 조정해 스플릿한다.3. 임베딩을 진행한다.4. 벡터저장소에 저장한다.5. 리트리버를 구성한다. 6. 프롬프트를 작성한다. 7. 모델에 적용한다. 1번 랭체인 라이브러리를 사용하였으며, URL 이 아니더라도 PDF, Log, Json 등 데이터 형태에 따라 변경한다.from langchain.document_loaders import WebBaseLoaderimport bs4from langchain.schema import Documentloader = WebBaseLoader( web_paths=("https://www.news1.kr/industry/di..

Scientist/ML.DL 2024.11.20

[Python] 대용량 데이터 로드하는 방법

아래 대용량 데이터 손쉽게 로드하는 방법에 대해 pickle을 포스팅했는데,메모리가 부족하거나 분산환경이 아니라 아예 첫 1회조차 불러오지 못하는 상황이라면 Chunksize 를 사용하면 된다. 1. chunksize: loop마다 csv 데이터를 읽어올 양이다. 10 ** 6은 100000인데요, 이는 한 번에 1000개의 데이터를 가져온다는 뜻이다.2. pd.read_csv(chunk_size): Python pandas에서 read_csv에는 chunksize라는 옵션이 존재한다.  이를 통해서 chunk 라는 dataframe이 생긴다. 이를 데이터셋으로 이용하면 된다.  chunksize = 10**6 # 청크 크기 조절for chunk in pd.read_csv('open/train.csv'..

Scientist/Code 2024.07.15

[Python] 대용량 데이터 임시 저장 Pickle 사용법

컴퓨터 사양이 안좋거나, 대용량 데이터를 다룰 때 Cloud DB 나 직접 서버에서 가져오는 데이터가 아닌 이상 엑셀로 데이터프레임을 불러오는 경우가 대다수이다. 이 때, 데이터가 크다보니 로딩이 오래걸리는 경우가 많았다.프로젝트가 하루만에 끝나는 것이 아니기 때문에 진도를 나갈 때마다 새로 불러와줘야 했지만pickle 을 사용하게 되면 최초의 1회만 가져올 수 있다면 그 후부터는 오래걸리지 않는다. pickle 파일 형식은 파이썬 객체 자체를 저장할 때 유용하고, 데이터를 직렬화하여 저장해놓고 필요할 때 역직렬화로 불러오는 형태이다.  예시는 다음과 같다.import pickle# 데이터 (예시 데이터)data = {'Name': ['John', 'Anna', 'Peter'], 'Age':..

Scientist/Code 2024.07.15

[ML/DL] Boosting 알고리즘 - XGBoost

XGBoost 는 Xtreme Gradient Boosting으로, 관련된 논문은 다음과 같다.https://dl.acm.org/doi/abs/10.1145/2939672.2939785 XGBoost | Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data MiningPublication History Published: 13 August 2016dl.acm.org 랜덤 포레스트와 같은 앙상블 기법이지만 랜덤포레스트는 배깅을 사용하고 XGBoost는 부스팅을 사용한다.(균형 트리 방식이다.)보통은 대규모 데이터셋을 사용하거나, 변수가 많을 때, 해석보다는 성능이 우선시 되는 상황에서 주로 사용을..

Scientist/ML.DL 2024.07.12

[Python] Crawling Meta 라이브러리

Meta 라이브러리는 Meta에 게재 중인 광고를 검색할 수 있는 장소이다. 광고주가 고객에게 광고를 나타낼 때 어떤 광고글과 이미지, 동영상 기간 등을 지정하여 게시를 하는데 이것을 크롤링해서 데이터를 모을 수 있으면 어떨까 하는 생각에 시도를 해보았다. 라이브러리는 API를 제공하기 때문에 오픈되어 있는 소스를 사용해도 되지만 selenium을 통한 크롤링을 하기 위해 파이썬 라이브러리를 사용하였다. selenium을 이용하기 위해선 크롬드라이버가 필요하다. 설치방법은 구글에 크롬드라이버( chromedriver.exe ) 최신버전을 다운받으면 된다. 사용한 방법은1. 웹을 열어서 Xpath와 CSS selector를 통해 html로 이루어져 있는 웹 class와 src를 크롤링을 진행2. 많은 광고..

Portfolio 2024.07.12

[ML/DL] Youtube 조회수 분석

팀 프로젝트를 통해 머신러닝과 딥러닝을 배우게 되면서 이론적으로는 알겠는데 실제로 무슨 차이가 있는것인지 궁금하여 시작하게 된 유튜브 조회수에 대한 프로젝트를 진행했다.  Kaggle에서 Youtube Korea에 대한 데이터셋을 제공해주어 이를 토대로 분석을 시도하였다.조회수가 잘 나오게하려면 어떤 변수들이 상관관계를 가지고 종속변수에 영향을 주는지 확인해보는 방향으로 개발을 진행 하였다. 1. 변수를 선정한다. 조회수는 Views 나머지 변수는 tags, channel_title, comment_count, likes, dislikes 등이 있다. 2. 먼저 데이터셋을 분석하기 위해 각각의 변수를  피처 스케일링 작업을 진행하였다. 피처 스케일링 작업이란 모델의 성능을 더 좋게 만들기 위해서 데이터의..

Portfolio 2024.07.12

[Python] 가상환경 생성 및 쥬피터 커널 연결방법

파이썬을 사용할 때 파이참이나 쥬피터를 이용하곤 했는데 오류를 쉽게 확인할 수 있는 쥬피터를 주로 쓰곤했다. 머신러닝과 딥러닝을 개발하면서 패키지 라이브러리를 많이 사용하곤 하는데 프로젝트를 진행할 때버전환경이 맞지 않으면 충돌하기 때문에 가상환경을 생성하여 각각의 프로젝트를 진행하는 방법을 사용한다. 쥬피터를 열어보면 아래화면과 같이 가상환경으로 열 수 있는 커널이 존재하지 않는다. 여기에 가상환경을 만들어보겠다.1. anaconda prompt를 관리자 권한으로 실행시켜준다. [Windows 운영체제 기준]anaconda prompt 창에 conda create --name KCY[사용할 가상환경이름] python=3.8[사용할 파이썬 버전] 2. 생성한 가상환경을 활성화해준다.conda activ..

Scientist/ML.DL 2024.07.10