1. 项目背景与目标
人格特质预测一直是心理学和机器学习交叉领域的热门研究方向。作为一名长期从事数据科学工作的从业者,我最近在Kaggle上发现了一个关于内外向人格预测的有趣数据集。这个项目让我想起了大学时选修的心理学课程,当时我们就讨论过如何用量化的方法来研究人格特质。
内外向人格是心理学"大五人格"理论中的重要维度之一。传统上,心理学家通过问卷调查来评估一个人的内外向程度。但在这个数字时代,我们是否可以通过人们的行为数据来预测这一特质呢?这正是本项目要探索的核心问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数据集解析
2.1 数据来源与结构
数据集来自Kaggle平台,包含18,524条记录,每条记录代表一个匿名用户的社交行为数据。数据字段包括:
-
基础特征:
- Time_spent_Alone:独处时间(小时/周)
- Stage_fear:舞台恐惧程度(1-10评分)
- Social_event_attendance:社交活动参与度(1-10评分)
-
社交行为特征:
- Going_outside:外出频率(1-10评分)
- Drained_after_socializing:社交后是否疲惫(0/1)
- Friends_circle_size:朋友圈大小(1-100)
-
线上行为特征:
- Post_frequency:发帖频率(次/周)
-
目标变量:
- Personality:人格类型(0=内向,1=外向)
2.2 数据质量检查
在开始分析前,我们需要对数据进行全面的质量检查:
python复制# 数据加载与初步检查
import pandas as pd
df = pd.read_csv("personality_data.csv")
print(f"数据集形状: {df.shape}")
print("\n缺失值统计:")
print(df.isnull().sum())
print("\n数据类型检查:")
print(df.dtypes)
print("\n目标变量分布:")
print(df['Personality'].value_counts(normalize=True))
从初步检查来看,数据集相对干净,缺失值较少(约0.5%),且目标变量分布均衡(内向48.7%,外向51.3%)。这种平衡分布对我们的建模非常有利,不需要进行过采样或欠采样处理。
3. 探索性数据分析(EDA)
3.1 单变量分析
我们先来看各个特征的分布情况:
python复制import matplotlib.pyplot as plt
import seaborn as sns
# 设置可视化风格
plt.style.use('seaborn')
plt.rcParams['font.sans-serif'] = ['SimHei'] # 支持中文显示
# 数值特征分布
num_features = ['Time_spent_Alone', 'Stage_fear',
