"파이썬 기초 라이브러리부터 쌓아가는 머신러닝" #5

Flash·2021년 12월 28일
0

머신러닝

목록 보기
6/8

#Matplotlib, Seaborn 시각화 #2

#Scatter 차트 이해 및 제작

#Heatmap 차트 이해 및 제작

#Histogram 차트 이해 및 제작

#Box 차트 이해 및 제작

#머신러닝

#"거친코딩

#파이썬 기초 라이브러리부터 쌓아가는 머신러닝"


#1 Scatter Chart

matplotlib의 scatter 차트를 이용하여 데이터를 분석한다.

_데이터 셋은  기온에 따른 아이스크림의 판매 _

plt.scatter(tips['total_bill'],tips['tip'],
			color='green'
            edgecolor='lightblue',
            linewidth=1)
plt.show()

seaborn의 scatterplot을 이용하여 데이터를 분석 시각화 한다.

데이터는 이전 장에서 이용했던 요일별 tips이다

sns.scatterplot(data=tips,
		x='total_bill',
                y='tip',
                hue='day',
                style='time',
                size='size')
plt.title('Scatter between total_bill and tip', fontsize=20)
plt.xlabel('total_bill', fontsize=16)
plt.ylabel('tip', fontsize=16)
plt.show()

style => 모양 구분으로 다른 변수와 비교
hue => 색깔 구분으로 다른 변수와 비교
size => 크기 구분으로 다른 변수와 비교

요일별로 색깔을, tip의 크기별로 사이즈를, 
시간 별로 모양을 나누어 데이터 구분을 했다.

파라미터들의 기능을 보여주기 위해 여러 종류를 사용했지만 
시각화 했을 때 데이터가 한 눈에 들어오지 않는다.

파라미터들을 적절히 사용하여 데이터 분석에 도움을 주어야 할 것 같다.

Scatter chart에 어울리는 데이터를 적절한 파라미터를 사용하여 시각화하면 
데이터의 분포를 한 눈에 알아보기 쉬울 것으로 보인다.

#2 Heatmap

Heatmap 차트 이해 및 제작
seaborn을 활용한 시각화
1에 가까우면 양의 상관관계 0에 가까우면 상관관계 없을 수도
-1에 가까우면 음의 상관관계

sns.heatmap(tips.corr(),
			annot=True,
            square=True,
            vmin=-1, vmax=1,
            linewidth=5,
            cmap='RdBu')
plt.show()

annot => 박스 안 corr 값 표시할지 말지
square => 박스를 정사각형으로 할지말지
vmin, vmax => 최소, 최대 값 지정
linewidth => 라인 두께 지정
cmap => 색상 스타일 선택

위의 예시에서는 진한 파랑색이 강한 상관관계 
진한 빨간색이 강한 음의 상관관계를 의미한다

이렇게 변수들 사이의 상관관계를 시각화하여 데이터 분석을 한다.

#3 Histogram

Histogram 차트 이해 및 제작
matplotlib의 hist을 이용하여 histogram 작성
bins default=10
density=True하면 비율로 확인, false하면 실제 데이터 수로

plt.hist(tips['total_bill'],
		bins=10,
        density=True,
        alpha=0.4,
        color='lightgreen',
        edgecolor='red',
        linewidth=2)
plt.show()

alpha => 투명도
color => 기둥의 색상
edgecolor => 테두리 색상
linewidth => 기둥의 두께

seaborn을 이용한 시각화

sns.histplot(data=tips,
			x='total_bill',
            bins=30,
            kde=True,
            hue='day'
            multiple='stack',
            shrink=0.6)
plt.show()

히스토그램을 이용하면 수치의 비교가 용이하다.
예를들어 위의 그림에서 x축을 요일로 만들면 어떤 요일에
가장 많은 팁을 받는지 비교할 수 있을 것이다.

#Box chart

pyplot의 boxplot을 이용한 시각화

plt.boxplot(tips['tip'],
			sym='rs')
plt.show()

seaborn의 boxplot을 이용한 시각화
sns.boxplot(data=tips,
			x='day',
            y='tip',
            hue='smoker',
            linewidth=2,
            order=['Sun','Sat','Fri','Thur'])
plt.show()

profile
Whiplash We Flash

0개의 댓글