klue데이터셋을 통해 nmf와 lda 기법을 사용하여 토픽모델링
실습파일: 1203-klue-topics_extraction_with_nmf_lda-input
klue데이터셋을 통해 유사도 분석
실습파일: 1204-LDA-similarity-input
비즈니스데이터를 이용한 기업데이터 분석
실습파일: 1205-online-retail-eda-input
토픽 모델(Topic model)이란 문서 집합의 추상적인 "주제"를 발견하기 위한 통계적 모델 중 하나로, 텍스트 본문의 숨겨진 의미구조를 발견하기 위해 사용되는 텍스트 마이닝 기법 중 하나
유용한 특성을 뽑아내기 위한 비지도 학습 알고리즘
PCA와 비슷하며, 차원축소에도 사용가능PCA와 다른 점 : 음수가 아닌 성분(즉 양수인 성분)과 계수값을 찾는다.Jupyter Notebook Viewer (nbviewer.org)
https://github.com/bmabey/pyLDAvis
# pip install pyldavis
# 주어진 문서에 어떤 주제들이 존재하는지를 확인하는 잠재 디리클레 분석(LDA)
from sklearn.decomposition import LatentDirichletAllocation
LDA_model = LatentDirichletAllocation(n_components=num_topics, random_state=42)
LDA_model.fit(dtm_cv)
# 토픽 모델링에 이용되는 LDA 모델의 학습 결과를 시각화하는 라이브러리인 pyLDAvis
# t-SNE(t-Stochastic Neighbor Embedding) 차원축소기법중 하나
import pyLDAvis.sklearn
pyLDAvis.enable_notebook()
pyLDAvis.sklearn.prepare(LDA_model, dtm_cv, cvect, mds='tsne'))
#독립 실행형 HTML 파일로 저장
pyLDAvis.save_html(prepare_tfidf, "lda_vis_tfidf.html")
# 등장 빈도에 기반하여, 코사인 유사도 알고리즘 적용해봅니다.
from sklearn.metrics.pairwise import cosine_similarity
cs_cv = cosine_similarity(dtm_cv[0], dtm_cv)
cs_cv
AARRR은 시장 진입 단계에 맞는 특정 지표를 기준으로 우리 서비스의 상태를 가늠할 수 있는 효율적인 기준
수많은 데이터 중 현 시점에서 가장 핵심적인 지표에 집중할 수 있게 함으로써, 분석할 리소스(인력이나 시간)가 충분하지 않은 스타트업에게 매력적인 프레임워크
Acquisition : 어떻게 우리 서비스를 접하고 있는가
Activation : 사용자가 처음 서비스를 이용할 때 긍정적인 경험을 제공하는가
Retention : 이후의 서비스 재사용률은 어떻게 되는가
Referral : 사용자가 자발적 바이럴, 공유를 일으키고 있는가
Revenue : 최종 목적(매출)으로 연결되고 있는가

코호트 분석은 분석 전에 데이터 세트 의 데이터 를 관련 그룹으로 나누는 일종의 행동 분석
이러한 그룹 또는 집단은 일반적으로 정의된 시간 범위 내에서 공통된 특성이나 경험을 공유
코호트 분석을 통해 회사는 고객이 겪는 자연적 주기를 고려하지 않고 맹목적으로 모든 고객을 분할하는 대신 고객(또는 사용자)의 수명 주기 전반에 걸쳐 패턴을 명확하게 볼 수 있음
이러한 시간 패턴을 보고 회사는 특정 집단에 맞게 서비스를 조정 가능
시간집단
특정 기간 동안 제품이나 서비스에 가입한 고객
과거에 제품을 구매했거나 서비스에 가입한 고객
회사의 제품이나 서비스를 구매하는 다양한 규모의 고객

Recency : 얼마나 최근에 구매했는가
Frequency : 얼마나 자주 구매했는가
Monetary : 얼마나 많은 금액을 지출했는가


# 국가별 매출액의 평균과 합계를 구합니다.
# TotalPrice를 통해 매출액 상위 10개만 가져옵니다.
df.groupby("Country")["TotalPrice"].agg(['mean','sum']).nlargest(10, "sum").style.format("{:,.0f}")

groupby agg 딕셔너리로 지정해서 변수마다 다른 연산
df.groupby("StockCode").agg({"InvoiceNo":"count",
"Quantity":"sum","TotalPrice":"sum"}).sort_values(
"InvoiceNo", ascending=False)
사실(Fact) : 기업데이터 분석을 하였다.
느낌(Feeling) : 딥러닝 이론에 치여있다가 익숙한 걸 하게 되니 진짜 살 거 같다.
교훈(Finding) : 쉽다고 안주하지말고 복습 꾸준히..!