EDA(Exploratory Data Analysis)
탐색적 데이터 분석
원 데이터를 가지고 유연하게 데이터를 탐색하고, 데이터의 특징과 구조로부터 얻은 정보를 바탕으로 통계모형을 만드는 분석방법, 주로 빅데이터 분석에 사용된다.
EDA의 순서(The process of EDA)
1. 문제 정의 2. 데이터 수집 3. 데이터 전처리 4. 데이터 모델링 5. 시각화 및 탐색
EDA는 두 가지 추론통계(모집단으로부터 추출한 샘플 사용)와 기술통계로 나뉘는데, 빅데이터는 기술통계를 사용한다.
EDA시 고려할 점
- 상관관계와 인과관계는 서로 다르다.
- 이상치는 분석에 큰 이상을 줄 수 있다.
3차원 시각화보다는 2차원 시각화가 좀 더 좋다.(3차원 시각화는 실제 가치를 낮추는 경향이 있다.)
빅데이터는 단순한 선형 구조의 방식으로 설명하기에는 한계가 있기 때문에 최근 주목받는 것이 데이터 시각화이다.
특히, 파생변수를 만들어보면서 좋은 인사이트들이 나온다.
데이터 시각화의 가장 중요한 효과는 자료로부터 습득하는 시간 절감이다.
데이터 변수
변수에는 질적변수, 양적변수가 있다.
질적 변수
질적 변수는 수학적 연산에는 아무런 의미가 없다.
(ex : 요일, 성별, 자동차 브랜드)
양적 변수
길이와 무게와 같이 양적인 수치로 측정되거나 몇 개인가를 세어 측정하는 변수
덧셈, 뺄셈 등의 연산이 가능하다.
Matplotlib
판다스에서 돌아가는 툴로써 그래프를 그리는데 많이 쓰인다.
# %matplotlib inline # 버전이 낮은 노트북에서 그래프가 바로 뜨지 않을 때 사용 % 쉘메소드
import matplotlib as mpl # 기본 설정 만지는 용도
import matplotlib.pyplot as plt # 그래프 그리는 용도
import matplotlib.font_manager as fm # 폰트 관련 용도
그래프를 그리기 위한 준비
# 현재 설치된 폰트 확인해보기
sys_font=fm.findSystemFonts()
print(f"sys_font number: {len(sys_font)}")
print(sys_font)
nanum_font = [f for f in sys_font if 'Nanum' in f]
print(f"nanum_font number: {len(nanum_font)}")
# 한글 폰트 설정
plt.rc('font', family='NanumGothic')
# - 기호 깨짐 현상 방지를 위한 설정
plt.rc('axes', unicode_minus=False)
축과 도화지 그리기
ax =plt.axes() #축에 관해서 수정할 떄 axes로 접근한다.
fig = plt.figure() #도화지에 관해서 수정할 때 fig로 접근한다.
그래프 그리기
x = [0, 2, 4, 6, 8]
y = [1, 2, 3, 4, 5]
plt.plot(x, y)
plt.plot(x, y); # 주소값이 출력되지 않는다.
plt.plot(np.random.randn(30).cumsum(), linestyle='--', marker='^')
plt.plot(np.random.randn(30).cumsum(), linestyle='--', marker='x')
plt.plot(np.random.randn(30).cumsum(), linestyle='--')
linestyle이나 marker 같은 경우를 다양하게 변경할 수 있다.
plt.plot(np.random.randn(30).cumsum(), '^g--') #순서도 상관없이 한꺼번에 넣을 수 있다. 게으른 개발자이다.
axis
plt.plot(np.random.randn(30).cumsum())
plt.xlim(-3, 30)
plt.ylim(-5, 50)
plt.axid('tight') #게으른 개발자들을 위해서 좋은 방법이다.
legend
x_1 =np.array([1, 3, 5, 7, 9])
y_1 = np.array([0, 5, 0, 5, 0])
x_2 = (x_1)+1
y_2 = (y_1)+1
plt.plot(x_1, y_1, label='L')
plt.plot(x_1, y_2, label='H')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.legend(loc='upper left')
plt.title('Line Graph Example')
위의 코드와 같이 plt.legend(loc='')를 사용하면, 범례를 원하는 위치에 설정할 수 있다.
폰트
폰트를 지정하여 사용할 수 있다.
font1 = {'family': 'DejaVu Sans', 'size': 24, 'color' : 'green'}
font2 = {'family': 'Liberation Mono', 'weight':'bold', 'size': 12, 'color' : 'blue'}
plt.plot(np.random.rand(30), label='A')
plt.title('제목', fontdict=font1)
plt.xlabel('x축', fontdict=font2)
plt.ylabel('y축')
plt.legend(loc='upper left', frameon=False) # loc라는 파라메터로 범례의 위치를 조정해줄 수 있다
rotation 파라미터로 폰트의 각도도 지정할 수 있다.
축 설정
plt.yticks([1, 2, 3, 4, 5], color='blue')
plt.xticks([0, 1, 2, 3, 4, 5, 6], color='black')
#alpha = 텍스트의 투명도(0~1)이다.
'플레이데이터 빅데이터 부트캠프 12기 > Python' 카테고리의 다른 글
[플레이데이터 빅데이터 부트캠프]Python 데이터 시각화 PLOTLY(1) (0) | 2022.07.25 |
---|---|
[플레이데이터 빅데이터 부트캠프]Python 데이터 시각화(2) (0) | 2022.07.22 |
[플레이데이터 빅데이터 부트캠프]Python Pandas(3) (0) | 2022.07.21 |
[플레이데이터 빅데이터 부트캠프]Python Pandas(2) (0) | 2022.07.21 |
[플레이데이터 빅데이터 부트캠프]Python Pandas(1) (0) | 2022.07.21 |