Python 데이터 분석 템플릿

Python 데이터 분석 템플릿



kaggle에서 작업하고 있다면 데이터를 분석하여 자신으로부터 특징량을 만들어낼 필요가 있다.
이 때 그래프를 사용하여 데이터 분석을 수행합니다.
이 기사에서는 데이터 분석을 목적으로 그래프를 만드는 템플리를 올린다.

사용 라이브러리


import numpy as np
import pandas as pd

import matplotlib.pyplot as plt
import matplotlib as mpl
import seaborn as sns

상관관찰 관찰



모든 변수 사이의 산점도



pandas를 사용하면 한 번에 산포도가 나온다.
같은 변수끼리에서는 히스토그램을 그렸다. (같은 변수끼리에서는 직선이 될 뿐이므로)
from pandas.plotting import scatter_matrix
scatter_matrix(df)



산점도



또한, 특정 변수끼리의 산점도는 다음과 같이 간단하게 작성 가능
df.plot(kind='scatter',x='Age',y='Survived',alpha=0.1,figsize=(4,3))



상관 계수 계산



상관 계수



Pearson의 상관 계수를 corr()로 한 번에 표시할 수 있다. 매우 편리.
data1.corr()



상관 계수의 히트 맵


def correlation_heatmap(df):
    _ , ax = plt.subplots(figsize =(14, 12))
    colormap = sns.diverging_palette(220, 10, as_cmap = True)

    _ = sns.heatmap(
        df.corr(), 
        cmap = colormap,
        square=True, 
        cbar_kws={'shrink':.9 }, 
        ax=ax,
        annot=True, 
        linewidths=0.1,vmax=1.0, linecolor='white',
        annot_kws={'fontsize':12 }
    )

    plt.title('Pearson Correlation of Features', y=1.05, size=15)

correlation_heatmap(data1)



목적 변수에 대한 상관 계수


corr_matrix = data1.corr()
fig,ax=plt.subplots(figsize=(15,6))
y=pd.DataFrame(corr_matrix['Survived'].sort_values(ascending=False))
sns.barplot(x = y.index,y='Survived',data=y)
plt.tick_params(labelsize=10)



히스토그램



모든 변수의 히스토그램



hist() 로 한번에 낼 수 있다.
df.hist()



히스토그램을 겹치다


plt.figure(figsize=[8,6])

plt.subplot(222)
plt.hist(x = [data1[data1['Survived']==1]['Age'], data1[data1['Survived']==0]['Age']], stacked=True, color = ['g','r'],label = ['Survived','Dead'])
plt.title('Age Histogram by Survival')
plt.xlabel('Age (Years)')
plt.ylabel('# of Passengers')
plt.legend()



변수 분포 설명



include = 'all'로 하면 수치가 아닌 특징량도 표시된다.
data1.describe(include = 'all')



사분위수


plt.figure(figsize=[8,6])

"""
o is treated as a Outlier.
minimun
25パーセンタイル 第一四分位数
50パーセンタイル 第二四分位数(中央値)
75パーセンタイル 第三四分位数
maximum
"""

plt.subplot(221)
plt.boxplot(data1['Age'], showmeans = True, meanline = True)
plt.title('Age Boxplot')
plt.ylabel('Age (Years)')



Boxplot을 보고 이상값이 있는지 검토할 수 있습니다.
이것은 누락 값의 구멍 채우기에도 사용할 수 있습니다.
이상치가 맞거나 분포가 치우치거나 할 때는 평균을 사용하는 것보다 중앙값을 사용하는 것이 좋다.
한편, 좌우 대상으로, 편향이 없는 분포가 되어 있으면 평균치를 사용하는 것이 좋을지도.

좋은 웹페이지 즐겨찾기