목록시각화 (10)
Yours Ever, Data Chronicles
저번 포스팅에 이어, 이번에는 나머지 범주형 변수들에 대해 EDA를 진행한다. ✔Table of Contents 4. nom_* 변수 EDA (feat. 통계의 함정) 이 변수는 명목형 변수로, 저번 포스팅에서 봤던 bin_* 변수는 고유값이 단 2개였지만 이 변수는 고유값이 여러개이다. 먼저 nom_* 변수를 담은 list2를 만들고, 각 변수별 고유값을 살펴보자. list2 = list() for i in range(0, 10): list2.append('nom_{0}'.format(i)) for ind, col in enumerate(train[list2]): print(col, '의 고유값은: ', train[col].unique()) 결과를 보면 굉장히 스크롤 압박이 심하다. nom_0 ~ no..
두번째로 해본 캐글 프로젝트는 범주형 데이터를 분석하는 프로젝트, Categorical Feature Encoding Challenge이다. 링크를 클릭하면 캐글에서 데이터셋을 다운받을 수 있다. 이 프로젝트에서 사용되는 데이터는 전부 범주형 데이터셋이다. 학습에 사용되는 피처들뿐만 아니라 target 변수까지 모두 범주형 데이터로 되어 있다. 그래서 이번 프로젝트 (특히 EDA 편)에서는 범주형 데이터를 어떻게 분석하는지를 자세히 다룰 것이다. (여담인데, 이 프로젝트 캐글 페이지에 고양이가 있는 이유는 범주형 데이터 분석(Categorical Data)를 줄여 cat-in-the-dat 이라고 이름을 만들었기 때문! 귀엽당...) 또한 이 프로젝트와 포스팅에서 사용된 코드는 나의 깃허브에서 다운받을 ..
파이썬 그래프를 그릴 때, 한 그래프에 더 많은 정보를 담고자 한다면 이중 축을 활용한다. 예를 들어 밑의 예시처럼, (좌측) 특정 변수의 countplot 및 비율만 그릴 수도 있겠지만 (우측) 오른쪽에 이중 축을 하나 더 만들어 또다른 변수의 값이 1인 비율도 나타낼 수 있다. 이렇게 이중 축을 만들고자 할 때, seaborn의 ax.twinx() 를 활용하는 방법을 알아보자. NOTE: 코드는 저의 깃허브에서 내려받을 수 있습니다! 먼저, 좌측 그래프는 앞의 포스팅에서 이미 그렸다. 이번 포스팅에서는 앞에서 그린 비율 countplot에 하나의 이중축을 더 만들어볼 것이다. 이중축은 'nom_1' 변수의 각 고유값들이 target = 1로 갖고 있는 비율을 나타내보자! import pandas as..
파이썬 그래프를 그렸는데, 바로 밑의 그림처럼 그래프 위에 비율까지 쓰고 싶은 경우가 있을 것이다. 이럴 때 사용하면 유용한 파이썬 seaborn에서 제공하는 ax.patches, ax.text 메서드를 활용하면 손쉽게 그릴 수 있다. 먼저 데이터셋은 캐글 Categorical Feature Encoding Challenge 에서 제공하는 'train.csv' 파일을 활용하였다. NOTE: 코드는 저의 깃허브에서 내려받을 수 있습니다! import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns df = pd.read_csv('train.csv', index_col = 'id') df.head() 먼..
앞선 2개의 포스팅을 통해, 데이터의 종류(수치형 데이터, 범주형 데이터)와 변수의 개수(1개 / 2개 이상)에 따라 어떤 그래프를 그려야 하는지, 각 그래프를 통해 어떤 관계를 파악할 수 있는지 알아보았다. 그런데 EDA를 하다보면 앞에서 그린 그래프처럼 한 번에 1개의 plot만 그리는 경우는 많지 않다. 비교를 위해 1개의 plot에 여러 가지 그래프를 한꺼번에 그리는 경우가 대부분이다. 다른 분들의 EDA 결과물을 참고할 때, 밑의 그림처럼 하나의 plot에 4개의 그래프가 나와 있는 경우를 많이 봤을 것이다. 이번 포스팅에서는 위의 그림처럼 하나의 plot에 여러 가지 그래프를 넣는 방법에 대해 알아본다. 이렇게 그릴 수 있는 방법은 plt.add_subplot(), plt.subplots(),..
저번 포스팅에 이어 범주형 데이터를 시각화할 때 주로 사용되는 그래프를 정리한다. ✔Table of Contents 3. 범주형 데이터 시각화 저번 포스팅과 마찬가지로 tips 데이터셋을 사용하였다. tips.head(3) 3-1. 범주형 변수 1개 시각화 카운트플롯: sns.countplot() x: category / y: 각 category별 개수 파이 그래프: pie(x, labels) x: category별 비율 1) 카운트플롯(countplot): category별 개수 확인 주로 범주형 변수의 분포를 파악할 때 사용한다. 형태는 sns.countplot(x or y, data) 예를 들어, day 변수에 대해 어떤 값을 몇 개나 갖고 있는지를 살펴보자. sns.countplot(x = 'da..
파이썬 EDA를 하는 데 정말 중요한 주요 시각화 그래프에 대해 정리한다. 모든 그래프를 다루진 않으며, 많이 쓰이는 그래프를 중심으로만 정리하였다. 구체적으로는 데이터 종류(수치형, 범주형 데이터)에 따라, 변수 개수(1개, 2개 이상)에 따라 어떤 그래프를 그려야 할지를 정리하였다. 주피터 노트북 코드는 다음 깃허브에서 '1. [EDA guide] 주요 데이터 시각화' 파일을 공유해두었다 :) 이번 포스팅에서는 수치형 데이터(numerical data)를 시각화하는 방법을 다룬다. 참고로 시각화 라이브러리는 seaborn을 위주로 작성하였다. ✔Table of Contents 1. 데이터의 종류 먼저 데이터에는 크게 '수치형 데이터(numerical data)'와 '범주형 데이터(categorical..
저번 포스팅에 바로 이어서, 파이썬 운송 최적화 부분을 마무리해봅니다. ✔Table of Contents Tech 62. 앞서 구한 최적 운송 경로를 네트워크 시각화하자. 이전에 배웠던 네트워크 시각화를 한번 해봅시다! 공장(F), 창고(W) 좌표정보를 가져와 찍고, 운송경로의 최적해 값(v1)을 엣지의 가중치로 보면, 어떤 운송경로가 두드러지는지를 한 눈에 파악해볼 수 있겠죠? 또한, 이전 6장에서 했던 네트워크와 결과가 어떻게 달라지는지도 확인해 봅시다. (네트워크 시각화가 무엇인지 궁금하다면, 여기에서 확인하세요!) import pandas as pd import numpy as np import matplotlib.pyplot as plt import networkx as nx #데이터 불러오기 ..
이번 포스팅에서는 python networkx 라이브러리를 활용해 네트워크를 가시화하는 방법을 알아보고, 실제 물류 데이터를 적용하여 효율적으로 운송이 이루어지고 있는지를 살펴봅니다. 최적화를 시각화하는 라이브러리는 다양하지만 여기서는 networkx를 사용합니다. ✔Table of Contents Tech 53. 네트워크 가시화하기 (기초) 먼저 네트워크 시각화를 하기 위해선 다음이 필요합니다. 그래프 객체 노드(node) : 점 엣지(edge) : 점과 점을 연결하는 선 좌표 : 점의 좌표 위의 순서를 지켜, 가장 기본적인 네트워크를 만들어보겠습니다. import networkx as nx import matplotlib.pyplot as plt #그래프 객체 설정 G = nx.Graph() #노드 ..
안녕하세요, Everly입니다. 정말 오랫만에 '파이썬 분석 실무 테크닉' 공부한 부분을 리뷰하는데요! (3달 만이군요..) 앞으로는 좀 더 자주 업로드해보도록 하겠습니다 :) 오늘은 지난 포스팅에서 다뤘던 스포츠 센터(편의상 헬스장) 데이터를 바탕으로, 이 헬스장을 사용하는 고객이 어떤 유형이 있고, 고객의 행동을 에측하는 데이터 분석을 공부해봅니다. 이번 포스팅에서는 클러스터링(clustering)을 통해 고객의 유형을 나눠 보고, 바로 다음 포스팅에서는 고객의 과거 데이터를 기반으로 예측하는 머신러닝 모델을 만들어 봅니다. [고객의 소리] 지난번 분석으로 어느 정도 경향을 파악할 수 있었습니다. 아직 전체적인 경향밖에 파악하지 못해서, 이번에는 좀 더 구체적인 분석을 부탁드리려고 합니다. 고객별로 ..