jupyter adult数据集分析
时间: 2023-11-23 09:46:21 浏览: 149
Adult数据集是一个经典的二元分类问题,目标是根据一系列特征预测一个人的年收入是否超过50K美元。该数据集包含32561个样本,其中大约三分之二用于训练,剩余的用于测试。数据集包含以下14个特征:
- 年龄:一个连续值表示年龄。
- 工作类型:一个分类变量表示雇员的职业。
- fnlwgt:一个连续值表示调查员的权重。
- 教育程度:一个分类变量表示受教育水平。
- 教育年限:一个连续值表示受教育年限。
- 婚姻状况:一个分类变量表示婚姻状态。
- 职业:一个分类变量表示职业。
- 家庭关系:一个分类变量表示家庭关系。
- 种族:一个分类变量表示种族。
- 性别:一个分类变量表示性别。
- 资本收益:一个连续值表示资本收益。
- 资本损失:一个连续值表示资本损失。
- 每周工作时长:一个连续值表示每周工作时长。
- 国籍:一个分类变量表示国籍。
下面是一个基本的Jupyter Notebook,展示了如何对Adult数据集进行分析和建模。首先,我们需要导入所需的库和数据。我们将使用Pandas进行数据加载和处理,使用Scikit-learn进行建模和评估。
```python
# 导入必要的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# 加载数据集
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data'
adult = pd.read_csv(url, header=None)
# 添加列名
adult.columns = ['age', 'workclass', 'fnlwgt', 'education', 'education-num', 'marital-status', 'occupation', 'relationship', 'race', 'sex', 'capital-gain', 'capital-loss', 'hours-per-week', 'native-country', 'income']
# 查看前5行数据
adult.head()
```
接下来,我们将对数据进行基本的探索性数据分析(EDA)。我们将观察各个特征的统计信息、缺失值、离群值和数据类型。
```python
# 统计信息
adult.describe()
# 检查缺失值
adult.isnull().sum()
# 检查数据类型
adult.dtypes
# 检查离群值
sns.boxplot(x='age', data=adult)
```
接下来,我们将对数据进行一些可视化,以更好地了解数据的分布和相关性。
```python
# 年龄分布
sns.distplot(adult['age'])
# 收入分布
sns.countplot(x='income', data=adult)
# 不同教育程度的收入分布
sns.countplot(x='education', hue='income', data=adult)
# 不同职业的收入分布
sns.countplot(y='occupation', hue='income', data=adult)
# 相关性热力图
corr = adult.corr()
sns.heatmap(corr, cmap='coolwarm')
```
最后,我们将使用Scikit-learn进行建模和评估。我们将使用逻辑回归模型,并使用交叉验证评估模型性能。
```python
# 导入所需的库
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
# 准备数据
X = adult.iloc[:, :-1]
y = adult.iloc[:, -1]
# 将分类变量转换为数值变量
X = pd.get_dummies(X)
# 建立逻辑回归模型
model = LogisticRegression()
# 交叉验证评估模型性能
scores = cross_val_score(model, X, y, cv=5)
print('交叉验证得分:', np.mean(scores))
```
这就是基本的Jupyter Notebook,展示了如何对Adult数据集进行分析和建模。当然,这只是一个起点。你可以进一步探索数据,使用不同的算法进行建模,并尝试提高模型的性能。
阅读全文