2020-08-28
2020-08-28 22:31
127 查看
第三章 模型搭建和评估–建模
- 导入库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from IPython.display import Image 在IPython笔记本中显示文件中的图像 - plt.rcParams[‘font.sans-serif’] = [‘SimHei’] # 用来正常显示中文标签
plt.rcParams[‘axes.unicode_minus’] = False # 用来正常显示负号
plt.rcParams[‘figure.figsize’] = (10, 6) # 设置输出图片大小
注 plt.rcParams参数详解
字体
plt.rcParams[‘font.family’] = ‘YaHei Consolas Hybrid’ # 设置字体样式
plt.rcParams[‘font.size’] = ‘16’ # 设置字体大小
样式
plt.rcParams[‘font.stretch’] = ‘normal’
plt.rcParams[‘font.style’] = ‘normal’
plt.rcParams[‘font.variant’] = ‘normal’
plt.rcParams[‘font.weight’] = ‘normal’ - 模型搭建
处理完数据进行建模,需要先知道数据集最终是进行监督学习还是无监督学习。根据任务以及数据样本量以及特征的稀疏性来决定。比如使用机器学习最常用的一个库(sklearn)。
4. 切割训练集和测试集
将数据集分为自变量和因变量
按比例切割训练集和测试集(一般测试集的比例有30%、25%、20%、15%和10%)
使用分层抽样
设置随机种子以便结果能复现
切割数据集目的是为了后续能评估模型泛化能力;
sklearn中切割数据集的方法为train_test_split
5. 模型创建
创建基于线性模型的分类模型(逻辑回归)
创建基于树的分类模型(决策树、随机森林)
分别使用这些模型进行训练,分别的到训练集和测试集的得分
查看模型的参数,并更改参数值,观察模型变化
6. 输出模型预测结果
-
加载库 import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from IPython.display import Image
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier -
加载数据并分割测试集和训练集
9. 模型评估
模型评估是为了知道模型的泛化能力。
交叉验证(cross-validation)是一种评估泛化性能的统计学方法,它比单次划分训练集和测试集的方法更加稳定、全面。
在交叉验证中,数据被多次划分,并且需要训练多个模型。
最常用的交叉验证是 k 折交叉验证(k-fold cross-validation),其中 k 是由用户指定的数字,通常取 5 或 10。
准确率(precision)度量的是被预测为正例的样本中有多少是真正的正例
召回率(recall)度量的是正类样本中有多少被预测为正类
f-分数是准确率与召回率的调和平均
- 交叉验证 其在sklearn中的模块为sklearn.model_selection
- 混淆矩阵 混淆矩阵的方法在sklearn中的sklearn.metrics模块
混淆矩阵需要输入真实标签和预测标签
精确率、召回率以及f-分数可使用classification_report模块 - ROC曲线 ROC曲线在sklearn中的模块为sklearn.metrics
ROC曲线下面所包围的面积越大越好
相关文章推荐
- Vue框架入门到实践(四)
- ML之RF:利用数据集(客户年龄、职业、婚姻状况、教育水平、违约记录、年账户平均余额、住房贷款、个人贷款)实现预测客户是否购买该银行的产品二分类预测和推理
- 动手学习数据分析————第五部分
- 裂变增长模式下的流量分析
- 比特币是如何赚钱的?我们来看下比特币是如何投资的吧。
- 数据结构与算法专题——第三题 最长公共子序列
- 设计模式-适配器模式
- 机器学习基础-支持向量机
- 阿里巴巴云上数据中台之道02——中台建设过程解析
- MySQL学习记录 - 08-分页查询
- 虚拟机Ubuntu18简易配置四(开启root用户)
- redis特点
- 第一个SparkStreaming程序
- SaprkStreaming整合kafka(获取偏移量和异步提交偏移量)
- MySQL学习记录 - 07- 子查询
- 2020-08-28
- nginx部署的服务器上线后访问报错500
- Vue框架入门到实践(三)
- Python接口自动化测试-requests库的基础使用
- 235. 二叉搜索树的最近公共祖先-leetcode