본문 바로가기

전체 글

(1621)
추천 시스템(2) 실습후기 🎵 추천 시스템 실습 후기: 암묵적 피드백과 ALS로 음악 취향 찾기!안녕하세요! 오늘은 추천 시스템 실습을 하며 배운 내용을 정리해보려고 합니다. 특히 암묵적 피드백(Implicit Feedback) 데이터를 활용해 Matrix Factorization을 하고, ALS(Alternating Least Squares) 로 모델을 학습해보는 과정을 직접 코딩해보았습니다.추천 시스템이란?추천 시스템은 크게 두 가지로 나뉩니다.1. 협업 필터링 (Collaborative Filtering)나와 비슷한 취향을 가진 사람들이 좋아한 아이템을 추천과거 행동 데이터 기반단점: 콜드스타트 문제 (신규 사용자, 신규 아이템 추천 어려움)2. 콘텐츠 기반 필터링 (Content-based Filtering)아이템의 속성..
추천시스템 입문(1) 🎯 추천시스템 입문✅ 추천 시스템이란?사용자에게 취향이나 상황에 맞는 아이템(영화, 음악, 상품 등)을 자동으로 추천해 주는 시스템활용 예:넷플릭스 → 영화 추천유튜브 → 영상 추천아마존, 쿠팡 → 상품 추천멜론, 스포티파이 → 음악 추천✅ 추천 시스템의 작동 원리두 가지 가정으로 작동:유사한 사용자 가정 → 나와 비슷한 취향의 사람이 좋아한 것을 추천유사한 아이템 가정 → 내가 좋아한 아이템과 비슷한 아이템을 추천작동 흐름데이터 수집 ↓전처리 ↓유사도 계산 or 모델 학습 ↓추천 후보 생성 ↓추천 리스트 출력✅ 추천 시스템의 종류1. 콘텐츠 기반 필터링 (Content-Based Filtering)아이템 자체의 특징으로 유사도 계산예: 액션 영화 좋아 → 또 다른 ..
LangChainThon 주요 이슈정리(2025.07.01~07.04) LangChain 구성 이슈 정리✅ 1. Streamlit + LangChain RAG 구성상단 고정 레이아웃문제: Streamlit 상단 영역 고정하려 했으나 전체 페이지가 스크롤됨해결 시도:CSS position: sticky 활용container 분리채팅 영역 높이 제한 및 overflow 처리예시 질문 위치문제: 예시 질문 블록이 중간이 아니라 입력창 아래 고정되길 원함해결 방안:컴포넌트 순서 재배치세션 상태로 예시 질문 노출 여부 제어화면 스크롤 문제문제: 질문/답변 시 화면이 맨 위로 튀는 현상해결 방안:세션 상태 관리st.chat_message 사용StreamlitChatMessageHistory 객체 활용✅ 2. LangChain 모델 연결GPT-3.5 vs GPT-4o-mini 속도GPT..
로이터 뉴스 분류 딥러닝 실험 정리 ✅ 실험 목적로이터 뉴스 데이터(46개 카테고리)를 대상으로머신러닝 vs 딥러닝 분류 성능을 비교하고,전처리 방식에 따른 성능 차이를 확인함✅ 데이터 개요데이터셋: Keras 내장 reuters 뉴스 기사 (약 11,000개)문제: 다중 클래스 분류 (카테고리 46개)특성: 뉴스는 대체로 짧고, 핵심 단어 위주로 구성✅ 실험 1: 머신러닝 (TF-IDF + Complement Naive Bayes)구성 내용전처리CountVectorizer + TfidfTransformer모델ComplementNB, LogisticRegression 등특징단어 중요도 기반 희소 벡터 사용결과정확도 약 0.7271✅ 실험 2: 딥러닝 (TF-IDF + Dense Neural Network)구성 내용전처리위 TF-IDF 벡터..
로이터 뉴스 데이터셋 머신러닝 다중분류 📋 2025-06-18 머신러닝 & 텍스트 분류 통합 캔버스 (코드+설명 포함)1. 로이터 뉴스 데이터셋 로드 및 이해from tensorflow.keras.datasets import reuters(x_train, y_train), (x_test, y_test) = reuters.load_data(num_words=10000, test_split=0.2)print(f"훈련 데이터 개수: {len(x_train)}")print(f"테스트 데이터 개수: {len(x_test)}")뉴스는 정수 시퀀스로 표현됨46개 주제 레이블 존재특수 토큰 , , 가 0,1,2번 인덱스2. 단어 인덱스 복원 및 텍스트 변환word_index = reuters.get_word_index()index_to_word = {in..
Word2Vec & FastText 임베딩 실습 및 개념 요약(2) ✅ 1. Word2Vec 실습NLTK의 abc 말뭉치를 불러와 문장 단위로 토큰화된 데이터를 Word2Vec에 입력합니다.Word2Vec 클래스는 단어를 벡터로 임베딩하는 모델이며, 아래 설정은 CBOW 방식(sg=0)을 사용합니다.학습 후 most_similar() 함수를 통해 특정 단어와 의미적으로 유사한 단어들을 확인할 수 있습니다.import nltknltk.download('abc')nltk.download('punkt')from nltk.corpus import abccorpus = abc.sents()from gensim.models import Word2Vecmodel = Word2Vec(sentences=corpus, vector_size=100, window=5, min_count=5,..
텍스트 벡터화 · 임베딩 학습 정리(1) 1. 벡터화의 개념 및 희소성 문제문서를 수치화하여 머신러닝(Machine Learning) 또는 딥러닝(Deep Learning) 모델이 처리할 수 있도록 변환하는 과정DTM(Document-Term Matrix): 문서 × 단어로 이루어진 행렬 구조행: 문서 벡터, 열: 단어 벡터대부분의 값이 0인 희소 벡터(Sparse Vector) 발생단어장(Vocabulary): 텍스트 전체에서 중복 없이 등장한 단어들의 집합. 크기를 보통 V로 표기2. DTM vs TF-IDFDTM: 단어의 단순 등장 횟수를 카운팅하여 표현TF-IDF:TF(Term Frequency): 문장 내 단어들의 등장 빈도를 정규화한 값IDF(Inverse Document Frequency): 전체 문서 중 해당 단어가 등장한 문서 ..
텍스트 벡터화 학습노트 텍스트 벡터화 학습노트1️⃣ Bag‑of‑Words(BOW) 개념문맥을 무시하고 단어 등장 횟수로 문서를 표현장점: 단순·빠름, 선형 모델과 상성 좋음단점: 위치 정보 손실, 차원 폭발(희소 행렬)▶ 통계 기반ㆍ머신러닝 기반통계: 단어 등장 횟수 기반 → CountVectorizer, TF‑IDFML: 벡터 입력 후 분류·군집화 등 학습2️⃣ BoW 구현 및 비교📙 CountVectorizer vs Keras Tokenizer항목 CountVectorizer(sklearn) Tokenizer(Keras)반환 형식희소행렬(CSR)Numpy 배열BoW 방식fit_transform, vocabulary_texts_to_matrix(..., mode='count')시퀀스 지원❌✅ (texts_to_sequen..