Microsoft MVP(Python Developer Technologies)
네이버 커넥트 재단 부스트코스 데이터사이언스 강의 설계 및 교수자
서울대 빅데이터혁신공유대학, 서울대 평생교육원, 연세대 DX Academy, 한신대 ABC Camp, 한양대 대학원, 전남대,
한국능률협회, 삼성SDS 멀티캠퍼스, 멋쟁이사자처럼, 패스트캠퍼스, 모두의연구소 등 다수의 교육기관 및 기업 강의
다양한 도메인(제약, 통신, 자동차, 커머스, 교육, 정부기관 등)의 기업 데이터 분석
20년이상 게임, 광고, 교육 등 다양한 도메인에서 웹 백엔드 개발자 및 데이터 분석가 현업 경험
강의
로드맵
전체 1수강평
- 파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
- 공공데이터로 파이썬 데이터 분석 시작하기
- 파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
게시글
질문&답변
Component 수는 어떻게 지정을 해야 할까요?
안녕하세요! LDA나 NMF에서 최적의 컴포넌트 수(토픽의 개수, K)를 찾는 방법에 대해 질문해주셨네요. 토픽 모델링에도 비슷한 정량적 지표들이 있으며, 가장 널리 사용되는 것은 'Perplexity'와 'Coherence Score' 입니다.하지만 군집 분석과 마찬가지로, 이 지표들이 항상 정답을 알려주는 것은 아니며, 최종적으로는 사람이 직접 토픽의 품질을 보고 판단하는 정성적 평가가 매우 중요합니다. 1. 정량적 평가 지표 (Quantitative Metrics)가. Coherence Score (응집도 점수) Coherence Score는 생성된 토픽이 얼마나 의미적으로 일관성 있는지를 측정하는 지표입니다. 즉, 한 토픽 내에 등장하는 상위 단어들이 서로 얼마나 연관성이 높은지를 계산합니다.해석: 점수가 높을수록 의미적으로 일관된, 사람이 해석하기 좋은 토픽이 생성되었음을 의미합니다.사용법:다양한 K 값 (예: 5, 10, 15, ..., 100)에 대해 LDA/NMF 모델을 각각 학습시킵니다.각 모델에 대해 Coherence Score를 계산합니다.K 값에 따른 Coherence Score를 그래프로 그립니다.그래프에서 점수가 가장 높게 나타나는 지점(Peak)이나, 점수가 급격히 꺾이며 안정화되는 지점을 최적의 K 후보로 선택합니다.종류: C_v, Umass, C_uci, C_npmi 등 여러 계산 방식이 있으며, 일반적으로 C_v가 사람의 판단과 가장 유사한 경향을 보여 많이 사용됩니다. Python의 gensim 라이브러리에서 쉽게 계산할 수 있습니다.실루엣 스코어와의 유사점: 군집이 얼마나 잘 형성되었는지 측정하는 실루엣 스코어처럼, Coherence Score는 토픽이 얼마나 의미적으로 잘 형성되었는지 측정합니다.나. Perplexity (혼잡도)Perplexity는 모델이 학습 데이터를 얼마나 잘 설명하는지를 나타내는 지표로, 모델이 테스트 데이터를 얼마나 잘 예측하는지를 측정합니다.해석: 값이 낮을수록 모델이 데이터를 잘 설명(예측)한다는 의미입니다.사용법:K 값에 따른 Perplexity를 그래프로 그립니다.그래프의 기울기가 완만해지는 지점 (Elbow Point)을 최적의 K 후보로 선택합니다.주의사항:Perplexity는 K가 커질수록 계속해서 낮아지는 경향이 있습니다.이 경우, 토픽이 너무 세분화되어 사람이 해석하기 어려운 수많은 토픽이 생성될 수 있습니다.Perplexity가 낮다고 해서 반드시 사람이 해석하기 좋은 토픽인 것은 아닙니다. 최근에는 Perplexity보다 Coherence Score를 더 신뢰하는 추세입니다.엘보우 플롯과의 유사점: 군집 내 거리(inertia)가 줄어드는 엘보우 플롯처럼, Perplexity도 특정 지점에서 감소율이 둔화되는 '팔꿈치' 지점을 찾습니다.2. 정성적 평가 방법 (Qualitative Evaluation)정량적 지표는 훌륭한 가이드라인을 제공하지만, 최종 결정은 결국 사람이 해야 합니다. 토픽 모델링의 주된 목적은 '사람이 이해하고 인사이트를 얻는 것'이기 때문입니다.방법:Coherence Score나 Perplexity를 통해 찾은 몇 개의 K 후보(예: K=20, 25, 30)를 정합니다.각 K 값으로 학습된 모델의 토픽별 상위 단어 목록을 직접 출력해 봅니다.아래 기준에 따라 토픽의 품질을 평가합니다.해석 가능성 (Interpretability): 각 토픽의 단어들이 하나의 의미 있는 주제로 묶이는가? (예: '농구', '축구', '야구', '선수' -> '스포츠' 토픽)차별성 (Distinctiveness): 각 토픽들이 서로 다른 주제를 다루고 있는가? 아니면 비슷한 토픽이 중복되는가?잡음 (Junk Topics): 의미 없는 단어(불용어, 특수문자 등)로만 구성된 토픽이 있는가?최종 선택: 정량적 지표가 가장 좋았던 K가 아니더라도, 사람이 보기에 가장 해석이 잘 되고, 비즈니스 목적에 부합하는 토픽들을 생성하는 K를 최종적으로 선택합니다.실용적인 접근법 (Workflow)K의 범위 설정: 분석하려는 문서의 양과 도메인 지식을 바탕으로 K의 대략적인 범위를 설정합니다. (예: 10부터 100까지 5단위로)정량적 지표 계산: 설정한 K 범위 내에서 각 K 값에 대해 모델을 학습시키고 Coherence Score (C_v)와 Perplexity를 계산합니다.시각화 및 후보 선정: K 값에 따른 두 지표를 그래프로 그려봅니다. Coherence Score가 가장 높은 지점과 Perplexity의 엘보우 지점을 중심으로 2~3개의 K 후보를 선정합니다.정성적 평가: 선정된 K 후보들에 대해 각각 토픽 결과를 출력하여 직접 눈으로 확인하고, 가장 해석 가능하고 유용한 토픽을 생성하는 K를 최종적으로 선택합니다.즐거운 연휴 주말되시길 바라겠습니다.감사합니다.
- 0
- 2
- 17
질문&답변
주식 자동매매 프로그램 제작 관련 조언 부탁드립니다
안녕하세요. 강의를 수강해 주시고 좋은 질문을 남겨주셔서 감사합니다.다만, 강의 소개에도 있는 것처럼 이 강의는 투자 관련 강의가 아닙니다.자동매매 등에 대한 내용도 다루지 않습니다.강의와 무관하게 취미삼아 자동매매를 구현해 본적이 있습니다. 그런데 생각보다 원하는 시점과 구매가격을 맞추는 것이 쉽지 않았고 이를 통해 오히려 손해를 봤습니다.저는 자동매매보다는 다른 일에 관심이 더 많아 취미로 잠시 자동매매를 해본 것에 만족했습니다.그래서 제가 자동매매에 대한 조언을 드리기는 어렵습니다.인터넷 서점이나 자동매매와 관련된 강의가 많이 있습니다. 해당 강의는 데이터 분석 기법을 증권데이터를 소재로 알아보는 강의이기 때문에 만족스러운 답변을 드리지 못해 죄송합니다.남은 연휴 주말 즐겁게 보내시길 바라겠습니다.감사합니다.
- 0
- 1
- 31
질문&답변
패키지 설치 에러 ydata-profiling
안녕하세요. ydata-profiling 은 추상화된 도구로 다양한 EDA를 한번에 해준다는 장점이 있지만 패키지 의존성 문제나 라이브러리 업데이트 문제가 있어 파이썬 버전 등을 맞춰 주어야 하는 문제가 있습니다.인프런 AI 인턴이 답변해준것처럼 파이썬 버전을 맞춰줄 수도 있으나 강의를 위해서만 버전을 맞춘다면 번거로울거 같아 google colab을 사용해서 실습을 진행하시는 것을 권장 드립니다.
- 0
- 2
- 50
질문&답변
adapt() valid 포함
안녕하세요. 좋은 질문을 주셨네요. 말씀해 주신것처럼 어휘를 학습할 때 valid까지 학습하면 데이터 누수가 될 수도 있습니다. valid에만 있는 단어가 사전에 포함되게 되기 때문에 제외하기도 하나, test 데이터는 제외하는게 맞고 valid의 경우에는 데이터셋의 크기를 고려해서 제외하거나 포함하게 됩니다.valid로 학습하지 못하는 어휘가 너무 많게 되면 모델 성능이 함께 떨어질 수도 있습니다.데이터셋이 작거나, 훈련/검증 데이터 간의 단어 분포 차이가 클 때, 훈련 데이터만으로는 충분한 어휘를 학습하기 어렵습니다. 이 경우, 검증 데이터의 어휘까지 포함시켜 더 풍부한 단어 사전을 만들면, 'Unknown' 토큰으로 인한 정보 손실을 줄여 전반적인 모델 성능 향상을 기대할 수 있습니다.
- 0
- 1
- 33
질문&답변
concat 을 통한 데이터 프레임 합치기 에러 문의
안녕하세요. 해당 기능을 사용하는 장점이 어떤 컬럼이 올지 몰라도 컬럼 스키마를 지정하지 않고 사용할 수 있다는게 가장 큰 장점인데요. 판다스 기능이 업데이트 되면서 컬럼명 형식 등이 불일치 되는 데이터에 대해 병합 오류가 발생하고 있습니다. 그래서 전체를 병합하기 전에 병합할 일부 컬럼 정보를 지정하고 병합해 보시는 것을 추천드립니다. 조만간 해당 내용에 대해 콘텐츠를 업데이트하도록 하겠습니다. 이용에 불편을 드려 죄송합니다. 감사합니다!
- 0
- 1
- 41
질문&답변
구글 코랩에서 한글 폰트 설정
안녕하세요. 최근에는 koreanize-matplotlib 을 사용하시는 것을 가장 추천합니다.!pip install koreanize-matplotlib 로 설치해 주시고 아래 처럼 임포트만 해오면 간단하게 해결됩니다. import koreanize_matplotlib
- 1
- 2
- 896
질문&답변
코드 에러
안녕하세요. 먼저 AI 인턴이 답변을 해준 것처럼 해당 라이브러리가 설치가 되었는지 확인을 부탁드립니다.!pip install koreanize-matplotlib주피터 내에서 설치한다면 위 명령어로 설치하시고 사용해 보세요.감사합니다 :)
- 0
- 2
- 88
질문&답변
감성 분석을 하려면 어떤 부분을 공부해야 하나요?
안녕하세요. 감성분석은 이진 분류 문제입니다.강의 섹션9에서 분류 문제를 다루는데 다중 분류가 아닌 이진 분류로 긍정과 부정을 분류하게 되면 감성 분석이 됩니다.또, 최근에는 직접 머신러닝 모델을 만드는 방법도 있지만 OpenAI API를 통해 감성분석 결과를 받는 방법도 있습니다.강의 섹션9는 머신러닝을 통한 분류 문제를 다루게 됩니다.참고를 부탁드려요. 감사합니다.
- 0
- 2
- 147
질문&답변
자세한 설명 부탁드려요 ㅜ
안녕하세요.해당 라이브러리의 명칭이 ydata-profiling 으로 변경되었습니다. 다음은 공식 깃헙 링크 입니다.[ydataai/ydata-profiling: 1 Line of code data quality profiling & exploratory data analysis for Pandas and Spark DataFrames.](https://github.com/ydataai/ydata-profiling) 그래서 설치하는 해당 패키지 설치하셨을 때도 ydata-profiling 으로 설치가 되었기 때문에 pandas-profiling 으로 찾으시면 안 나올 수 있어요. ydata-profiling 으로 찾아보시겠어요? 또, 링크는 어떤 운영체제를 사용하고 있는지, conda, pip 등에 따라 다른 위치에 설치 됩니다.그래서 폴더를 열어 하나씩 찾아보셔야 해요.해당 라이브러리가 폰트 설정이 까다로워서 사용에 불편함을 드려 죄송합니다. 조만간 해당 라이브러리 사용에 대해 강의 업데이트를 할 수 있도록 하겠습니다.감사합니다.
- 0
- 2
- 128
질문&답변
seaborn 라이브러리 호출하였으나 그래프가 안 그려져요
안녕하세요. 올려주신 코드를 보니 대부분 잘 작성해 주셨습니다.보통은 그래프가 표시되지 않으면 %matplotlib inline 를 통해 표시를 하는데 이 또한 잘 작성된 것으로 보여집니다. AI인턴이 답변해 준 것처럼 시각화 코드 아랫줄이 plt.show()를 추가해 보시고 그래도 안 된다면 다시 질문 주세요.plt.figure(figsize=(10, 3))sns.barplot(data=df_last, x="지역명", y="평당분양가격") 잘 해결되길 바라겠습니다.감사합니다.plt.show()
- 0
- 2
- 172