안녕하세요
삼성SDS Brightics 서포터즈 3기, 비전공생입니다!

오늘은 저번주에 이어 팀 분석 프로젝트로,
텍스트 데이터로 MBTI를 예측하는 프로젝트를 진행해보려고 합니다.
지난주 글에서 소개드렸듯, 저는 “reddit mbti 발자취 분석” 부분을 맡게 되었는데요!
오늘은 Reddit 발자취 데이터가 기록된 데이터를 불러와보고,
데이터를 간단히 살핀 후, MBTI별로 보인 특성을 살펴보려고 합니다!
다만, 브라이틱스로 불러오니, 데이터의 오류가 생겨서
불가피하게, 일단은 python으로 분석한 내용을 담았는데요.
다시 브라이틱스를 활용해 분석을 해보고, 그 내용을 수정하여 업로드해두도록 하겠습니다..!
이번에는 브라이틱스와 python을 이용한 코드를 비교한다는 개념으로 봐주시면 정말 감사하겠습니다.
1. 데이터 살펴보기
데이터를 불러와보고, 간단하게 살펴보는 작업을 진행해보겠습니다.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
!pip install seaborn==0.11.0
import seaborn as sns
데이터는 하단의 Kaggle을 통해 다운받았습니다.
https://www.kaggle.com/datasets/michaelkitchener/mbti-type-and-digital-footprints-for-reddit-users

df = pd.read_csv("reddit_psychometric_data.csv")
df.head()

판다스를 통해 데이터를 불러와줍니다. 브라이틱스에서는 이 코드 없이 버튼 몇 번 만으로도 가능했죠!
df.shape
데이터의 크기를 살펴보았는데요.
(3586, 16384)의 엄청난 크기였답니다.
null값이 있진 않은지 확인해보겠습니다.
df.isnull().sum()

변수가 너무 많아서, 이렇게는 null값을 모두 파악할 수 없으니, sum을 한번 더 해보겠습니다!
df.isnull().sum().sum()
총 0 결과값을 확인하였습니다!
Kaggle에서 이미 정리된 데이터여서 매우 깔끔하네요!
df.describe()

데이터를 전반적으로 살펴보았습니다.
그럼, 이제 본격적으로 MBTI 타입별로 데이터를 비교해볼까요?
2. MBTI 타입별로 비교해보기
일단 해당 데이터에서의 MBTI TYPE의 분포를 살펴보겠습니다.
df['mbti_type'].value_counts()

INTP, INFP, INTJ, ENTP, INFJ 순으로 양이 많네요! ESFJ가 가장 적은데,
실제로 사회에서도 많이 만나보지 못한 MBTI여서 흥미롭네요!
조금 더 보기 쉽도록, 시각화를 해보았습니다.
python에서는 이렇게 다시 코드를 입력해서 확인해야하는데
브라이틱스에서는 데이터프레임 타입과 시각화 타입, 그 중에서도 다양한 차트를 버튼 클릭 한번 만으로 할 수 있었죠!
이번 기회에 브라이틱스가 얼마나 손 쉬운 툴인지 다시 한번 깨달았습니다 ;)
df['mbti_type'].value_counts().plot(kind='bar', figsize=(12, 5), rot=0)

MBTI 타입별로 그룹을 지어주고, 변수 별 평균치를 뽑아보았습니다.
변수가 워낙 많아서 한 눈에 변수마다의 값을 확인하기는 어려운데요.
df.groupby('mbti_type').mean()

지금부터는, 각 변수별로 MBTI의 정도를 시각화해본 것을 보여드리겠습니다.
"post_introvert" 는 말 그대로 내성적인, 소극적인 포스팅을 한 것에 해당되는데요.
역시나 INFP, ISFP, INTP, INFJ, INTJ 순으로 높게 나왔네요.
ENTP, ESFJ, ESFP, ESTJ는 소극적인 포스팅을 한 적이 거의 없네요 ㅎㅎ.
df.groupby(["mbti_type"])[["post_introvert"]].mean().plot(kind='bar', figsize=(12, 5), rot=0)

"post_movies" 변수는 영화를 포스팅한 MBTI를 확인할 수 있겠죠?
INTP, ENFJ, ISFP, INFJ, ENFP 순으로 높은데요!
기본적으로 상상력이 풍부한 N과, 감성이 발달한 F의 조합을 가진 MBTI가 많은 것 같네요!
영화를 좋아하고, 그 영화에 대한 해석을 포스팅하는 유형의 분들은 아무래도, 상상력이 풍부하고 감성이 발달했을 가능성이 높겠네요. :)
df.groupby(["mbti_type"])[["post_movies"]].mean().plot(kind='bar', figsize=(12, 5), rot=0)

"post_unpopularopinion" 변수는 대중적이지는 않은 의견을 포스팅한 MBTI를 확인해보는 변수인데요.
ISTJ, ESTP, INTP, ENTP 순으로 높습니다!
정말 흥미로운 것이, 경험과 현실을 기반으로 판단하는 S와, 이성이 강한 T유형의 조합이 모두 상위권을 차지하고 있습니다.
아무래도 일반적으로 받아들여지는 것에 대해, 그와 다른 의견을 표명하는 분들은
이성적으로 판단했을 때, NO라고 말할 수 있는 분들이기 때문일 것 같네요!
df.groupby(["mbti_type"])[["post_unpopularopinion"]].mean().plot(kind='bar', figsize=(12, 5), rot=0)

자 오늘은, 이정도로 분석을 해보고 마무리하려고 하는데요!
데이터를 기반으로 분석했지만, MBTI는 어디까지나 재미로 보아야 한다고 생각하고,
너무 많은 의미를 부여할 수는 없다고 생각합니다!
이 글을 보신 여러분들도 그저 흥미롭게!
그리고 브라이틱스가 얼마나 편한 툴인지를 비교해보시며! 확인하셨길 바라고,
그럼 저는 다음 주에 더 다른 많은 분석을 가지고 돌아오도록 하겠습니다.
*본 포스팅은 삼성SDS Brightics 서포터즈 3기 활동의 일환으로 작성하였습니다.
#삼성SDS_Brightics #Brightics_Studio
#브라이틱스#모델링#데이터분석#datascience
#브라이틱스#서포터즈 #MBTI #MBTI분석
'삼성SDS Brightics > 브라이틱스 서포터즈' 카테고리의 다른 글
[삼성SDS Brightics] '텍스트데이터로 MBTI 예측하기' 팀 분석 프로젝트 - 4편 (1) | 2022.09.06 |
---|---|
[삼성SDS Brightics] '텍스트데이터로 MBTI 예측하기' 팀 분석 프로젝트 - 3편 (0) | 2022.08.30 |
[삼성SDS Brightics] '텍스트데이터로 MBTI 예측하기' 팀 분석 프로젝트 - 1편 (0) | 2022.08.16 |
[삼성SDS Brightics] 부동산 데이터로 집 값 예측하기 - 3편 (0) | 2022.07.12 |
[삼성SDS Brightics] 부동산 데이터로 집 값 예측하기 - 2편 (0) | 2022.07.05 |