-
[상관분석+히트맵] 타이타닉호 생존율 분석하기DataAnalysis/모델 분석 2022. 6. 1. 00:56
<개념>
1. 상관 분석
- 두 변수가 어떤 선형적 관계에 있는지를 분석하는 방법
-두 변수는 서로 독립적이거나 상관된 관계일 수 있는데, 두 변수의 관계의 강도를 상관관계라고함
-상관 분석에서는 상관관계의 정도를 나타내는 단위로 모상관 계수 ρ를 사용
2.단순 상관 분석
- 두 변수가 어느 정도 강한 관계에 있는지 측정
3. 다중 상관 분석
-세 개 이상의 변수 간 관계의 강도를 측정
-편상관 분석: 다른 변수와의 관계를 고정하고 두 변수 간 관계의 강도를 나타내는 것
4. 상관 계수 ρ
-변수 간 관계의정도(0~1)와 방향(+,-)을 하나의 수치로 요약해주는 지수로 -1~1 사이의 값
-상관 계수 +: 양의 상관관계, 한 변수가 증가하면 다른 변수도 증가
-상관 계수 - : 음의 상관관계, 한 변수가 증가할 때 다른 변수는 감소
0.0~0.2 상관관계가 거의 없음 0.2~0.4 약한 상관관계 0.4~0.6 상관관계가 있음 0.6~0.8 강한 상광관계 0.8~1.0 매우 강한 상관관계 <프로젝트>
데이터 정리
import seaborn as sns import pandas as pd titanic = sns.load_dataset("titanic") titanic.isnull().sum() titanic['age'] = titanic['age'].fillna(titanic['age'].median()) titanic['embark_town'] = titanic['embark_town'].fillna('Southampton') titanic['deck'] = titanic['deck'].fillna('C')
파이차트 그리기
import matplotlib.pyplot as plt f,ax = plt.subplots(1, 2, figsize = (10, 5)) ################################강의듣거나 변수 찾아보기 ################ #pie 차트는남자승객의생존율을나타내도록설정 titanic['survived'][titanic['sex'] == 'male'].value_counts().plot.pie(explode = [0,0.1], autopct = '%1.1f%%', ax = ax[0], shadow = True) titanic['survived'][titanic['sex'] == 'female'].value_counts().plot.pie(explode = [0,0.1], autopct = '%1.1f%%', ax = ax[1], shadow = True) ax[0].set_title('Survived (Male)') ax[1].set_title('Survived (Female)') plt.show()
등급별 생존자 수를 차트로 나타내기
#등급별 생존자 수를 차트로 나타내기 #pclass를 x축, survived=0,1 개수를 계산하여 y축으로 하는 countplot을 설정 sns.countplot('pclass', hue = 'survived', data = titanic) plt.title('Pclass vs Survived') plt.show()
상관계수 구하기
#상관 분석을 위한 상한 계수 구하고 저장하기 #피어슨상관계수를 적용하여상관계수를구함 titanic_corr = titanic.corr(method = 'pearson') #survived와 adult_male변수 사이의 상관계수를구함 titanic['survived'].corr(titanic['adult_male'])
산점도로 상관분석 시각화하기 : pairplot()
#1. 산점도로상관분석시각화하기 #변수간의상관분석시각화를위해pairplot() 그리기 sns.pairplot(titanic, hue = 'survived') plt.show()
pairplot()함수는 그리드 형태로 데이터프레임에 있는 각 데이터 열의 조합을 산점도로 그린다. 그리고 같은 데이터가 만나는 대각선 영역에는 히스토그램을 그린다.
두변수로 상관분석 시각화: catplot()
# 2.두변수의상관관계시각화하기 # 생존자의 객실 등급과 성별관계를 catplot()으로 그리기 #pclass와survived 변수의관계를차트로그림 hue인자를이용하여종속변수를sex로지정 sns.catplot(x = 'pclass', y = 'survived', hue = 'sex', data = titanic, kind = 'point’) plt.show()
히트맵으로 시각화
#히트맵으로 시각화 def category_age(x): if x < 10: return 0 elif x < 20: return 1 elif x < 30: return 2 elif x < 40: return 3 elif x < 50: return 4 elif x < 60: return 5 elif x < 70: return 6 else: return 7 #category 0~7개로 titanic['age2'] = titanic['age'].apply(category_age) titanic['sex'] = titanic['sex'].map({'male':1, 'female':0}) titanic['family'] = titanic['sibsp'] + titanic['parch'] + 1 #titanic.to_csv('C:/Users/kmj/My_Python/7장_data/titanic3.csv', index =False) heatmap_data = titanic[['survived', 'sex', 'age2', 'family', 'pclass','fare']] #비트맵에 사용할 색상맵을 지정 colormap = plt.cm.RdBu ###################계쑤 찾아보기 ####################### #corr() 함수로구한상관계수로히트맵을생성 sns.heatmap(heatmap_data.astype(float).corr(), linewidths = 0.1, vmax= 1.0, square = True, cmap = colormap, linecolor = 'white', annot = True,annot_kws = {"size": 10}) plt.show()
출처: 데이터 과학 기반의 파이썬 빅데이터 분석(이지은 지음)책을 공부하며 작성한 내용입니다.
'DataAnalysis > 모델 분석' 카테고리의 다른 글
[결정 트리 분석] 센서 데이터로 움직임 분류하기 (0) 2022.06.02 [로지스틱 회귀 분석] 특징데이터로 유방암 진단하기 (0) 2022.06.01 [선형 회귀] 자동차 예상 연비 예측하기 (0) 2022.06.01 [선형회귀분석+ 산점도/선형회귀그래프] 환경에따른주택가격예측하기 (0) 2022.06.01 [기술통계분석] 와인 품질 예측하기 (0) 2022.06.01