06. ch 02. 분류 분석 - 01. Pokemon 데이터셋 탐색 - 07. ch 02. 분류 분석 - 02. 분류 분석과 로지스틱 회귀 모델 - 1
06. ch 02. 분류 분석 - 01. Pokemon 데이터셋 탐색
정답이 없는 경우. 비지도 학습.
2. EDA (Exploratory Data Analysis : 탐색적 데이터 분석)
2-1) 기본 정보 탐색
df.shape
df.info()
df.isnull().sum()
개별 피처 탐색
df['Legendary'].value_counts()
df['Generation'].value_counts()
df['Generation'].value_counts().sort_index().plot()
df['Type 1'].unique() 타입1에 무슨 타입 있는지
df['Type 2'].unique() 타입2에 무슨 타입 있는지
len(df[df['Type 2'].notnull()]['Type 2'].unique())
타입1, 2 합쳐서 총 몇개의 타입.
2-2) 데이터 특징 탐색
변수들의 분포 탐색
fig = plt.figure(figsize =(12, 12))
ax=fig.gca()
sns.boxplot(data=df[['HP', 'Attack', 'Defense', 'Sp. Atk', 'Sp. Def', 'Speed']], ax=ax)
plt.show()
레전더리 값이 1일 때
fig = plt.figure(figsize =(12, 12))
ax=fig.gca()
sns.boxplot(data=df[df['Legendary']==1][['HP', 'Attack', 'Defense', 'Sp. Atk', 'Sp. Def', 'Speed']], ax=ax)
plt.show()
df['Total'].hist(bins=50)
Legendary 그룹별 탐색
Type 1의 분포
df['Type 1'].value_counts(sort=False).sort_index().plot.barh()
Type 1 중에 레전더리가 1일 때
df[df['Legendary'] == 1]['Type 1'].value_counts(sort=False).sort_index().plot.barh()
Type 2의 분포
df['Type 2'].value_counts(sort=False).sort_index().plot.barh()
Type 2 중에 레전더리가 1일 때
df[df['Legendary'] == 1]['Type 2'].value_counts(sort=False).sort_index().plot.barh()
제너레이션
df['Generation'].value_counts(sort=False).sort_index().plot.barh()
레전더리가 1일 떄 제너레이션 분포
df[df['Legendary'] == 1]['Generation'].value_counts(sort=False).sort_index().plot.barh()
레전더리가 제너레이션에 따라 어떤 사이즈를 갖는지
groups = df[df['Legendary'] == 1].groupby('Generation').size()
포켓몬 능력 분포 탐색
세대별로 어떤 능력을 갖고 있는지
fig = plt.figure(figsize =(12, 12))
ax=fig.gca()
sns.boxplot(x = "Generation", y="Total", data=df, ax=ax)
plt.show()
타입에 따라 어떤 토탈값
fig = plt.figure(figsize =(12, 12))
ax=fig.gca()
sns.boxplot(x = "Type 1", y="Total", data=df, ax=ax)
plt.show()
07. ch 02. 분류 분석 - 02. 분류 분석과 로지스틱 회귀 모델 - 1
패스트캠퍼스 데이터분석 강의 링크
bit.ly/3imy2uN