본문 바로가기

데이터와 함께 탱고를

(38)
[지도 데이터 시각화] Part 2. 여러 시각화 타입 알아보기 이번 포스팅에서는, 지도 데이터를 시각화할 때 어떤 타입으로 시각화할 수 있는지 그 종류를 살펴보겠습니다. 이 타입이 정해진 것은 아니나, 대체로 많이 써오던 타입은 이름이 보통 정해져있습니다. 따라서, 기본적인 시각화 형태부터 하나씩 살펴본 후, 이후 조금 특이한 타입도 살펴보겠습니다. 1. Scatter (Point) 어떤 라이브러리에서는 Point plot 으로도 불립니다. 말 그대로 Point 단위로 데이터들을 지도에 찍습니다. 데이터는 Point 단위로 geometry 정보를 갖고 있어야 합니다. 예를 들어, 각 데이터가 범죄가 발생한 곳의 위치 데이터라면, 주로 어디서 발생하는지 한 눈에 알 수 있습니다. 이처럼, 전반적인 위치 데이터의 구체적인 분포를 보고 싶을 때 사용합니다. 2. Line..
[지도 데이터 시각화] Part 1. Geo Data 와 Python 1. Geo Data 1.1. 개념 지도 데이터를 다루기 앞서, 지도 데이터란 무엇이고 어떤 형태로 생겼는지 살펴보려 합니다. 지도 데이터는 일반적으로 '위치' 정보를 담고 있는 데이터입니다. 이 위치는 좌표계에 따라 다르게 정의될 수 있지만, 일반적으로는 시각화에는 WGS84 좌표계(EPSG 4326 이라고도 합니다)를 씁니다. 한편, 점과 점 사이의 거리 등 공간 연산에는 WGS84 가 아닌 다른 좌표계를 씁니다. 이처럼 목적에 따라 좌표계가 달라질 수 있습니다. 좌표계 종류와 구분은 아래 링크에서 확인해보세요. https://www.osgeo.kr/17 한편, 각 좌표계에서 한 지점을 점, Point 라고 합니다. 이 점은 좌표계에서 (x, y) 로 표현됩니다. WSG84 에서는 (경도, 위도)로 ..
Catboost 주요 개념과 특징 이해하기 비교적 가장 최근에 등장한 Catboost 에 대해 관심이 생기던 찰나, 최근에 Medium Article 로 Catboost 를 잘 정리해놓은 글이 있어, 이를 참고하여 Catboost 에 관한 내용들을 정리해본다. (참고가 아니라 사실상 거의 번역일 거 같다...) Catboost 하면 그냥 데이터에 범주형 변수 많을 때 유용한 모델 정도로만 알고 있었는데, 이 Article 에서 개념부터 특징까지 잘 설명해주고 있으니, Catboost 에 대해 관심이 있으셨던 분들도 같이 읽어보시면 좋을 것 같다. 글의 구성은 Catboost 이 기존 부스팅 기법과 다른점 위주로 설명하면서, 이러한 다른점으로 인한 특징과 장점을 설명하는 방식이 되겠다. 1. 기존의 부스팅 기법 1.1. 방법 기존의 부스팅 기법을 ..
matplotlib.pyplot 좀 더 복잡한 레이아웃 1 from matplotlib import gridspec fig = plt.figure() gs = gridspec.GridSpec(1, 2) gs00 = gridspec.GridSpecFromSubplotSpec(2, 1, subplot_spec=gs[0]) gs01 = gridspec.GridSpecFromSubplotSpec(1, 2, subplot_spec=gs[1]) ax1 = fig.add_subplot(gs00[0]) ax2 = fig.add_subplot(gs00[1]) ax3 = fig.add_subplot(gs01[0]) ax4 = fig.add_subplot(gs01[1]) ax1.plot([1,2,3], [1,2,3]) 이렇게 배워 갑니다... (추후 한 번에 정리할 예정) 아무래도..
Categorical Value Encoding 과 Mean Encoding 이번 글에서는, 가장 인기있는 Categorical Value Encoding 을 하나씩 정리해보려고 한다. 다음의 내용을 다룬다. One-hot Encoding Label Encoding Mean Encoding 특히 마지막에 3.Mean Encoding 은 최근 Kaggler 들에 의해 많이 쓰이고 있다. 무엇이 Mean Encoding 이고, 어떻게 쓰는지, 장단점은 무엇인지 살펴본다. 한편, Mean Encoding 은 특히 Gradient Boosting Tree 계열에 많이 쓰이고 있다. 앞으로 모델 학습 성능을 말할 때, 별다른 말이 없으면 Tree 기반 모델을 두고 말하는 것이라 보면 되겠다. 글로만 설명하지 않고, 직접 눈으로 Encoding 을 확인하기 위해, Titanic Datase..
이제는 matplotlib 말고, Plotly 를 쓰자. 세련된 데이터 시각화 패키지, Plotly. matplotlib, seaborn 만 사용하다가, 최근에 훨씬 세련된 데이터 시각화 툴을 찾았습니다. plotly 인데, 웹 시각화 라이브러리인 d3.js 를 이용하여 보다 interactive 하게 그래프를 만들어줍니다. 그만큼, 굉장히 잘되어있고, 앞으로도 많이 발전할 라이브러리라는 생각이 듭니다. 예를 들어, 다음과 같은 그래프를 만들 수 있습니다. data = pd.Series(range(10)) data.iplot(kind='bar', title="제목", xTitle="x축", yTitle="y축") 코드만 봐도, matplotlib 보다 훨씬 간결함이 보입니다. 시각화 된 그래프 역시 훨씬 세련된게 느껴집니다. 또한, 우측 하단 Export to..
Gradient Boost 이 글은 StatQuest with Josh Starmer 의 StatQuest: Gradient Boost Part1 영상을 보고 정리한 글이다. 모든 사진과 설명에 대한 출처는 여기에 있다. 이번 글에서는, Boosting 중, 비교적 최근에 많이 쓰이는 Gradient Boost 에 대해 정리해보려고 한다. Kaggle 에서 많이보이는 XGboost 와 Light GBM 이 Gradient Boost 를 바탕으로 나온 모델이다. 사실상 현재 제일 많이쓰이는 Tree 계열의 모델을 이해하는데 기초적인 지식을 쌓는다고 볼 수 있다. 1. AdaBoost 다시 상기해보기. Gradient Boosting 은 이전에 포스팅한 AdaBoost 와 비슷한 부분이 있기 때문에, 먼저 AdaBoost 를 빠르게 ..
AdaBoost 이 글은 StatQuest with Josh Starmer 의 StatQuest: AdaBoost 영상을 보고 정리한 글이다. 모든 사진과 설명에 대한 출처는 여기에 있다. 이번에는 Boosting 기법에서 대표적이고 비교적 쉬운 개념인 AdaBoost 에 대해 정리해보려고 한다. 항상 Boosting 기법 중 가장 이해하기 쉽기도 하고, 기본 틀이 되는 느낌이라, 가장 먼저 등장하는 것 같다. 하지만 'Boosting 모델 중' 비교적 쉽다는 거지, 이전의 Bagging 모델인 Random Forest 랑 비교하면 조금 복잡하다. 따라서, 글도 매우 길어질 것 같으나... 일단 시작해보겠다. 1. 개념 1.1. Stump 잠깐, Random Forest 를 기억해보면, Random For..