这门课程得主要目的是通过真实的数据,以实战的方式了解数据分析的流程和熟悉数据分析python的基本操作。知道了课程的目的之后,我们接下来我们要正式的开始数据分析的实战教学,完成kaggle上泰坦尼克的任务,实战数据分析全流程。
这里有两份资料需要大家准备:
z图书《Python for Data Analysis》第六章和 baidu.com &
google.com(善用搜索引擎)
本次学习由开源学习组织Datawhale发起
task3、数据重构2
模型搭建和评估
模型搭建和评估–建模
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from IPython.display import Image
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
plt.rcParams['figure.figsize'] = (10, 6) # 设置输出图片大小
在配置好我们需要的环境与库以后,我们就要开始Task3的学习啦!这一章我们要做的就是使用数据,我们做数据分析的目的也就是,运用我们的数据以及结合我的业务来得到某些我们需要知道的结果。将分析出的结果通过模型概化出来进行后续的评估改进,个人觉得是数据分析里对数据初步运用的关键。
【思考】这些库的作用是什么呢?以下是个人的回答。
在对前面的数据完成处理后,我们就要开始本节内容的关键之一——对数据进行建模。
在本次学习里我们用到的是sklearn模型算法进行建模。
sklearn,全称scikit-learn,是python中的机器学习库,建立在numpy、scipy、matplotlib等数据科学包的基础之上,涵盖了机器学习中的样例数据、数据预处理、模型验证、特征选择、分类、回归、聚类、降维等几乎所有环节。下面是sklearn的算法选择路径图
# sklearn模型算法选择路径图
Image('sklearn.png')
在使用sklearn的第一个任务,我们要对数据进行操作的要求是:
将数据集分为自变量和因变量
按比例切割训练集和测试集(一般测试集的比例有30%、25%、20%、15%和10%)
使用分层抽样
设置随机种子以便结果能复现
【思考】
什么情况下切割数据集的时候不用进行随机选取
回答:在数据的数据量达到一定程度大时,其本身已经具有足够的随机性时,或是在此前已经对数据进行了随机化处理。
任务二:模型创建
创建基于线性模型的分类模型(逻辑回归)
创建基于树的分类模型(决策树、随机森林)
分别使用这些模型进行训练,分别的到训练集和测试集的得分
查看模型的参数,并更改参数值,观察模型变化
在完成任务二的基础上,打卡的内容主要着重对于思考题的个人理解
【思考】
为什么线性模型可以进行分类任务,背后是怎么的数学关系
对于多分类问题,线性模型是怎么进行分类的
回答:线性模型能根据数据对应的值进行对应,一个数据的不同值在多个线性模型分析下所处的位置则为其分类的终点,若其被分在模型上某一类的范围内,就认为此数据属于这个类别,从而完成分类。
对于多分类的问题,可以利用逻辑回归训练多个分类器,把其中一个当做一类,其他的作为一类输入样本,在每个分类器得出属于的类,在m个结果中统计得票最多的类(或者几率最高的类),作为最终的结果,适用于分类不多的情况。
小结
本次打卡所学的内容是对于数据可视化处理建模的个人理解,没有包含学习的全部内容,对于模型的评估学习的不够透彻,因此并未在打卡中详述。还请继续努力,请多指教。