目录
import pandas as pd
import numpy as np#高性能多维数组矢量运算库
import seaborn as sns
import matplotlib.pyplot as plt
from IPython.display import Image
#IPython.display模块中提供了许多显示Python返回值的类,此处用Image类
%matplotlib inline
#当你调用matplotlib.pyplot的绘图函数plot()进行绘图的时候,或者生成一个figure画布的时候,
#可以直接在你的python console里面生成图像。
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
plt.rcParams['figure.figsize'] = (10, 6) # 设置输出图片大小
# 读取训练数集
train = pd.read_csv(r'C:\Users\maxqu\Desktop\动手学数据分析\hands-on-data-analysis-master\第三章项目集合\train.csv')
train.shape#注意此处不需要加(),加括号会报错:'tuple' object is not callable
此处是已经数据处理后的表格数据
1.1 特征工程
数据预处理阶段,包含缺失值处理
1.1.1 任务一:缺失值填充
- 对分类变量缺失值:填充某个缺失值字符(NA)、用最多类别的进行填充
- 对连续变量缺失值:填充均值、中位数、众数
# 对分类变量进行填充,根据观察表中数据发现Cabin列和Embarked列存在缺失值 train['Cabin'] = train['Cabin'].fillna('NA')#fillna的功能是填充缺失值 train['Embarked'] = train['Embarked'].fillna('S')
# 对连续变量进行填充
train['Age'] = train['Age'].fillna(train['Age'].mean())
# 检查缺失值比例---最好在数据处理之前和之后分别检查一次缺失值的情况
train.isnull().sum().sort_values(ascending=False)
#先判断空值,再去看空值的总个数,最后按照空值个数从大到小排列
1.1.2 任务二:编码分类变量
大多数模型要求所有输入和输出变量均为数字。
这意味着,如果数据包含分类数据,则必须先将其编码为数字,然后才能拟合和评估模型。
# 取出所有的输入特征
data = train[['Pclass','Sex','Age','SibSp','Parch','Fare', 'Embarked']]
# 进行虚拟变量转换
data = pd.get_dummies(data)#get_dummies方法是实现one-hot编码的方法
data.head()
1.2 模型搭建
- 处理完前面的数据我们就得到建模数据,下一步是选择合适模型
- 在进行模型选择之前我们需要先知道数据集最终是进行监督学习还是无监督学习
- 除了根据我们任务来选择模型外,还可以根据数据样本量以及特征的稀疏性来决定
- 刚开始我们总是先尝试使用一个基本的模型来作为其baseline,进而再训练其他模型做对比,最终选择泛化能力或性能比较好的模型
思考0
数据集哪些差异会导致模型在拟合数据是发生变化