목록Data (72)
짜리몽땅 매거진
0. 데이터 구조주의깊게 볼만한 테이블 : ga_sess , ga_sess_hitssession 과 hit에 대한 이해1. 일별 세션 건수, 일별 방문 사용자, 사용자별 평균 세션with temp_01 as ( select to_char(date_trunc('day', visit_stime), 'yyyy-mm-dd') as d_day -- ga_sess 테이블에는 sess_id로 unique하므로 count(sess_id)와 동일 , count(distinct sess_id) as daily_sess_cnt , count(sess_id) as daily_sess_cnt_again , count(distinct user_id) as daily_user_cnt from ga.ga_sess group..
데이터 변환은 데이터를 다른 형태로 바꾸는 작업을 의미합니다. 데이터 변환은 다양한 목적을 가지며, 주로 아래와 같은 이유로 수행하게 된다.데이터 분포 변화: 데이터가 정규분포를 따르지 않을 때, 로그 변환, 제곱근 변환 등으로 데이터를 변환하여 정규분포에 더 가깝게 만든다. 이 과정을 통해 모델의 성능을 향상시킬 수 있다.이상치 영향 줄이기: 로그 변환과 같은 방법은 이상치=의 영향을 줄여서 모델이 이상치에 덜 민감하게 만든다.데이터 관계를 선형화: 비선형적인 관계를 선형으로 바꾸기 위해 데이터 변환이 사용된다. 예를 들어, 지수적인 증가를 보이는 데이터를 로그 변환을 통해 선형화할 수 있다.모델링을 진행할 때 성능을 향상시키기 위해 변환과 스케일링 처리를 동시에 수행하는 경우가 많은데 이 두 개의 과..
KNN 알고리즘과 K-means 클러스터링과 같은 머신러닝의 기초적인 모델들은 모두 거리기반 측정을 바탕으로 시작한다. KNN 알고리즘의 경우 가까운 속성에 따라 분류한다고 했는데 '가깝다'는 것에는 기준이 필요하다. 나중에 KNN 알고리즘에 대해 자세히 다루겠지만, KNN 알고리즘은 거리기반 분류분석 모델로 거리를 기반으로 분류하는 알고리즘이며 따라서 상대적으로 거리가 더 짧은 이웃이 더 가까운 이웃으로 취급된다. 즉, KNN 알고리즘은 어떤 새로운 데이터로부터 거리가 가까운 K개의 다른 데이터의 레이블(속성)을 참고하여 K개의 데이터 중 가장 빈도 수가 높게 나온 데이터의 레이블로 분류하는 알고리즘이다. K-means 알고리즘에서 K는 묶을 군집의 개수를 의미하고 means는 평균을 의미한다. 단어 ..
Kmeans알고리즘은 머신러닝 비지도학습에 속하는 K-means 알고리즘은 쉽게 말해 데이터를 K개의 군집(Cluster)으로 묶는(Clusting) 알고리즘이다. 군집이란 쉽게 말해서 비슷한 특성을 지닌 데이터들을 모아놓은 그룹(Group)이다. 마찬가지로 군집화는 군집으로 묶는다는 의미로 해석할 수 있다. Kmeans알고리즘은 KNN알고리즘과 구분하는 것이 중요한데, 분류와 군집화의 차이점에 대해 간단히 살펴보자.분류분류는 지도학습 방법에 속하여 정답이 주어졌을 때 정답을 기반으로 데이터를 나누는 방법을 의미한다. 따라서 머신러닝에서 모델을 학습시킬 때 모델이 제대로 분류하는지를 평가하기 위해 정답을 제거하고 모델이 예측한 레이블과 실제 레이블을 비교하여 모델의 성능을 판단한다.군집화반면, 군집화는 ..
Feature Selection이란 모델링을 진행하기 전 전처리단에서 유의미한 변수들만 선택함으로써 모델의 성능을 개선하고 과적합 방지 등의 효과를 얻기 위해 사용하는 방법을 말한다. 여러 Feature Selection 기법들을 실습 코드와 함께 살펴보자. 1. Filter Method통계 기법을 사용하여 상관관계가 높은 변수나 성능이 높은 변수를 추출하는 방법 (1) VarianceThreshold분산이 낮은 데이터는 도움이 안된다고 판단하여 제거하는 방법으로 titanic 샘플 데이터를 활용해 실습을 진행했다.from sklearn.feature_selection import VarianceThreshold#피처 정리X=titanic.drop(['survived','alive','who','adul..
제주도의 등하교 버스 혼잡 문제를 개선하고자 정류장별 데이터를 활용해 혼잡한 정류장 예측 모델링을 진행하고 혼잡 지표가 가장 높은 정류장을 선별해 새로운 등하교 버스 노선을 추천해보자.0. 데이터 수집 및 전처리 위와 같이 데이터를 수집했고, 종속변수는 정류장별 혼잡지표(=정류장별 인근 10대 거주인구수 / 정류장별 버스 개수)로 새로운 파생변수를 생성하였다. 1. 지역 특성 파악을 위한 군집 분석제주도 버스 정류장 지역의 특성을 파악하기 위하여, 군집화 분석을 진행하였다. 앞서 전처리한 데이터에서 정류장 아이디 기준 평균을 산출하였다. 그리고, 데이터를 정류장, 인구, 학교 세 가지 특성으로 나누어, K-means 알고리즘을 활용해 클러스터링을 3회 진행하였다. 1. ‘정류장’ 특성 군집화1) 스케일링..
'제주도 신재생 에너지 활용을 통한 전력 비용 절감 및 탄소 배출 감소 분석'을 주제로 날짜별 기상데이터, 태양광 발전량 데이터, 풍력 발전량 데이터, 제주 평균 전력 사용량 데이터 등을 수집해 시계열 분석을 진행하였다. 본격적인 분석에 들어가기 앞서 종속변수인 풍력 발전량과 태양열 발전량과 깊은 상관관계가 있는 독립변수만 선정하여 모델링할 최종 데이터셋에 포함하고자 했는데, 이때 상관분석을 진행하였다. 상관분석 방법은 여러가지가 있는데, 1. pandas를 사용한 상관분석pandas 라이브러리의 corr 메서드를 사용하면 데이터프레임의 상관계수를 쉽게 계산할 수 있다.df = pd.DataFrame(data)# 상관계수 계산correlation_matrix = df.corr()print(correla..
지난번 Feature Selection 기법 중 Model-agnostic Explanation Method이자 XAI(Explainable AI)에 해당하는 SHAP과 LIME에 대해 다룬 적 있었다. 오늘은 Catboost 모델을 활용해 금산인삼축제 성패를 예측한 LIME Value 데이터를 태블로 상에서 '생키 차트'로 시각화해보자. 생키 차트는 각 단계별 값의 변화를 한 눈에 표현하기 위한 목적으로 사용한다. 특히, 전체 값이 어떤 곳으로 흘러가는지 혹은 어떤 단계에서 얼마나 많은 값이 이동하는지도 한눈에 파악할 수 있는 효과적인 시각화이다. 태블로에서는 생키 차트를 표현하는 방법을 표현 방식으로 제공하고 있지 않기 때문에 이를 표현하기 위해서는 몇 가지 과정이 필요하다.0. 데이터 준비 및 연결..