오늘은 비지도학습인 클러스터링을 통해 인프런 댓글 데이터를 분석해보며, 여러 기법들을 탐색해보는 시간을 가졌습니다. 🙂↕️ 인프런 댓글 군집화로 고객의 관심사 파악해보기!온라인 쇼핑몰이나 이벤트에 달린 수백, 수천 개의 댓글을 일일이 읽기란 현실적으로 어렵습니다.대신 군집화(클러스터링) 기법을 사용하면, 비슷한 댓글들을 그룹으로 묶어서 고객들이 어떤 주제에 관심이 있는지 쉽게 파악할 수 있습니다.그래서 이번에는 인프런 댓글 데이터를 전처리하고, 단어 빈도 기반의 BoW와 TF-IDF를 적용한 후에KMeans 및 MiniBatchKMeans 알고리즘으로 비지도학습인 군집화를 진행해 주요 관심 키워드와 그룹을 도출하는 과정을 진행해보았습니다. ✨ 데이터 불러온 후, 전처리하기먼저 댓글 데이터를 CSV 파..
오늘은 국민 청원 데이터와 다산콜센터 데이터를 가지고 여러 기법들, 딥러닝 모델들을 적용해보며 실습해보았습니다! ☁️ 국민 청원 데이터로 워드 클라우드 만들기✨ 데이터를 먼저 불러와봅시다!먼저, pandas를 이용하여 CSV 파일로부터 국민 청원 데이터를 불러옵니다.불러올 때, article_id를 인덱스로 설정해서 각 청원을 고유하게 관리하고,start와 end 컬럼은 날짜형 데이터로 파싱하여 나중에 시간 기반 분석에 활용할 수 있도록 합니다.import pandas as pdbase_path = 'data'file_name = 'petition.csv'df = pd.read_csv(f'{base_path}/{file_name}', index_col='article_id',..
오늘은 역전파, 워드 임베딩에 이어 관련된 Word2Vec 모델을 구축해보는 작업까지 실습해보았습니다. ⚽ 역전파에 대해서 더 자세히 알아보잡!지금까지 배운 내용을 정리해보면, 신경망 학습에서의 핵심은 입력값이 들어와서 은닉층, 그리고 출력층을 거쳐 최종 예측값을 내고,이 예측값이 실제값과 얼마나 차이(오차)가 있는지를 계산한 뒤,이 오차를 줄이기 위해 가중치를 계속 업데이트해나가는 과정이라고 할 수 있습니다. ✨ 역전파를 준비하기 위한 순전파순전파에 대해서는 전에도 간단히 배운 적이 있었지만, 몇 가지 예를 들어보며 더 깊게 살펴보았습니다.가중합을 계산하기먼저, 입력층($x1, \, x2$)에서 은닉층($h1, \, h2$)으로 이동하면서, $z_1 = x_1 w_1 + x_2 w_2, \, z_2..
오늘은 딥러닝에 대해 아주 간략한 내용을 배운 뒤에, 기초 ANN 관련 지식들을 습득해보았습니다. 🏃🏻 먼저 배운 내용으로 붓꽃 품종 분류하기!어제 잠깐 언급되었던 붓꽃 품종을 분류하는 작업을 머신러닝으로 진행해보았습니다. (소프트맥스 회귀) ⚠️ Tensorflow Import할 때마다 요상한 메시지가...?oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable TF_ENABLE_ONEDNN_OP..
오늘은 벡터의 유사도와 관련해서 잠깐 오전에 배운 뒤에, 바로 머신러닝을 와다다 쏟아내며 배워보았습니다. 🏹 벡터의 유사도문서의 유사성을 평가할 때 일반적으로 사용되는 기준은 두 문서가 얼마나 많은 공통 단어를 공유하는지이며, 이건 사람의 직관적인 판단 방식과 유사하게 진행됩니다.ML 기반의 자연어 처리에서도 동일한 원리가 적용되는데,단어를 효과적으로 수치화하여 표현하는 방법(DTM, TF-IDF, Word2Vec 등)과이러한 벡터 표현 간 유사도를 정량적으로 측정하는 방법(유클리드 거리, 코사인 유사도 등)이 핵심적인 역할을 해줍니다.그 중에서 먼저 코사인 유사도를 살펴보겠습니다. ✨ 코사인 유사도(Cosine Similarity)두 벡터 간 각도의 코사인 값을 사용하여 유사성을 측정하는 방법입니다...
오늘은 SOYNLP, 여러 언어 모델, 그리고 BoW, DTM, TF-IDF에 대한 이론들을 배우고 관련 실습(WordCloud 생성)도 진행했습니다. 🎁 한국어 전처리 패키지 ✨ SOYNLP를 이용해서 단어 토큰화하기SOYNLP는 비지도 학습 기반의 단어 토크나이저로, 형태소 분석기와 달리 사전에 등록되지 않은 단어(신조어 등)도 효과적으로 처리할 수 있게 해주는 패키지입니다. 💡 기존 형태소 분석기의 한계는?일반적인 형태소 분석기는 신조어나 미등록 단어를 정확하게 구분하지 못하는 경우가 대부분입니다.예를 들면, 저번에 사용했던 Okt 형태소 분석기를 사용하게 된다면 다음과 같은 결과가 나옵니다.from konlpy.tag import Okttokenizer = Okt()print(tokenize..
이번에는 국내 항공기들을 대상으로 운항했던 기록 데이터를 가지고 분석했던 내용들을 정리해보고자 합니다. ✈️ 항공기 운항 실태 조사오후부터는 강사님께서 제공해주신 국내노선 여객 이용률 데이터를 가지고 분석해보며, 시각화까지 해보는 시간을 가져보았습니다.중간에는 MySQL에 해당 데이터를 저장하는 실습도 포함되어 있으니 차근차근 정리해보겠습니다. ✨ 항공기 운항에 어떤 실태가 드러나있을까?어떤 국내 노선이 가장 많은 여객을 수송할까?여객 수 기준으로 가장 인기 있는 노선을 파악한 다음, 해당 노선의 특징을 분석해보자!반대로 수요가 낮아 좌석이 많이 남는 비효율적인 노선은 어디일까?여객 수가 낮거나 이용률이 떨어지는 노선을 식별해보자!특정 노선에서의 탑승률(좌석 대비 실제 이용률)은 어떤 식으로 변동될까?노..
이번에는 특정 병원에서의 No-show 데이터로 분석했던 내용들을 정리해보고자 합니다. 🏥 No-show 환자를 줄이자! 프로젝트특정 A 병원에서는 예약한 환자들이 오지 않아 진료가 원활히 이루어지지 않는 일이 종종 발생한다고 합니다.문제를 해결하기 위해서 예약하고 오지 않는 환자들의 특징을 파악하고, 'No Show'의 발생률을 줄일 수 있는 아이디어를 제시해보고자 데이터를 분석하려고 합니다! ✨ 데이터 읽어보고 확인데이터의 컬럼명을 확인해보니 다음과 같은 컬럼들이 존재하고 있었습니다.속성타입설명PatientIdfloat환자IDAppointmentIDint예약IDGenderF or M성별ScheduledDaydatetime병원 예약 날짜AppointmentDaydatetime실제 병원 방문 날짜Age..