动手学习数据分析之模型建立和评估

建模

数据分析的目的是运用数据,结合业务来得到某些我们需要知道的结果。分析的第一步就是建模,搭建一个合适的模型获得合适的结果。在本章中,我们提出了对目标生存与否的预测的任务,我们分别搭建了回归模型,和决策树模型帮助我们实现目标。

sklearn模型算法选择路径图

下面给出sklearn的算法选择路径,供大家参考:
sklearn

切割训练集和测试集

切割数据集是为了后续能评估模型泛化能力,sklearn中切割数据集的方法为train_test_split,将stratify=y就是按照y中的比例分配, random_state=0设置了随机种子,便于实验的复现。

X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=0)
X_train.shape, X_test.shape

在这里插入图片描述

回归模型

线性模型所在的模块为sklearn.linear_model,线性回归简单来说就是这样一个公式,线性回归模型在训练中调整权重进行拟合。
在这里插入图片描述
模型训练:

lr = LogisticRegression()
lr.fit(X_train, y_train)

随机森林

树模型所在的模块为sklearn.ensemble,决策树模型同时使用多个条件进行判断的模型。
模型训练:

rfc = RandomForestClassifier()
rfc.fit(X_train, y_train)

输出模型预测结果

一般监督模型在sklearn里面有个predict能输出预测标签,predict_proba则可以输出标签概率。
下面是回归模型的预测示例。
在这里插入图片描述

评价

我们需要对模型进行评估来知道这个模型好用与否。
我们分别使用k 折交叉验证(k-fold cross-validation)和准确率(precision)以及召回率(recall)对模型进行评价。

  • 最常用的交叉验证是 k 折交叉验证(k-fold cross-validation),其中 k 是由用户指定的数字,通常取 5 或 10。
  • 准确率(precision)度量的是被预测为正例的样本中有多少是真正的正例
  • 召回率(recall)度量的是正类样本中有多少被预测为正类
  • f-分数是准确率与召回率的调和平均

k 折交叉验证

K折就是讲数据集切分成K小块,验证集和测试集相互形成补集,循环交替:
在这里插入图片描述

scores = cross_val_score(lr, X_train, y_train, cv=10)

在这里插入图片描述

混淆矩阵、精确率、召回率以及f-分数

混淆矩阵如图:
在这里插入图片描述
准确率 (Accuracy),精确度(Precision),Recall,f-分数计算方法如图:
在这里插入图片描述

  • 混淆矩阵的方法在sklearn中的sklearn.metrics模块
  • 混淆矩阵需要输入真实标签和预测标签
  • 精确率、召回率以及f-分数可使用classification_report模块
    模型的各项指标如图所示:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值