本记录为本人参加datawhale数据分析(泰坦尼克号任务项目)学习笔记,不足之处多多指教。
经过前面的两章的知识点的学习,我可以对数数据的本身进行处理,比如数据本身的增删查补,还可以做必要的清洗工作。那么下面我们就要开始使用我们前面处理好的数据了。这一章我们要做的就是使用数据,我们做数据分析的目的也就是,运用我们的数据以及结合我的业务来得到某些我们需要知道的结果。那么分析的第一步就是建模,搭建一个预测模型或者其他模型;我们从这个模型的到结果之后,我们要分析我的模型是不是足够的可靠,那我就需要评估这个模型。
导入相关库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from IPython.display import Image
这些库作用:
1、pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能
2、 NumPy是Python中科学计算的基础包,是pandas使用基础
3、matplotib 是可视化库
4、 seaborn是基于Matplotlib的Python数据可视化库。它提供了一个高级界面,用于绘制引人入胜且内容丰富的统计图形
%matplotlib inline #内置可视化显示出来不需要在show
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
plt.rcParams['figure.figsize'] = (10, 6) # 设置输出图片大小
shape包含在numpy库,是矩阵(ndarray)的属性,可以获取矩阵的形状(例如二维数组的行列),获取的结果是一个元组
train = pd.read_csv('train.csv')
train.shape
#读取清洗过的数据集
data = pd.read_csv('clear_data.csv')
data.shape
模型搭建
- 处理完前面的数据我们就得到建模数据,下一步是选择合适模型
- 在进行模型选择之前我们需要先知道数据集最终是进行监督学习还是无监督学习
- 模型的选择一方面是通过我们的任务来决定的。
- 除了根据我们任务来选择模型外,还可以根据数据样本量以及特征的稀疏性来决定
- 刚开始我们总是先尝试使用一个基本的模型来作为其baseline,进而再训练其他模型做对比,最终选择泛化能力或性能比较好的模型
这里建模,并不是从零开始,自己一个人完成完成所有代码的编译。我们这里使用一个机器学习最常用的一个库(sklearn)来完成我们的模型的搭建。
划分数据集的方法有哪些?
常用三种:留出法 (hold-out) 交叉验证法(k fold cross validation) 自助法(bootstrapping)
1.留出法: 直接将数据集划分为两个互斥的集合, 分别作为训练集和测试集, 其中训练集一般是2/3 ~ 4/5
该方法两个注意点:
训练集和测试集的划分要尽可能的保持数据分布一致性,如分层采样(stratified sampling)
单次使用留出法的评估结果往往不够稳定和可靠,因此使用留出法时一般要采用若干次随机划分、重复进行试验评估取其平均值作为留出法的评估结果。缺点:若训练集包含了绝大多数的样本, 那么训练出的model更加接近于整个数据集训练出的结果, 但是测试集的数量少了,