Scikit-Learn简介 —— 数据表示及评估器API

《Python 数据科学手册》笔记

一、Scikit-Learn的数据表示

      1.Scikit-Learn基本的数据表示二维网格数据,每一行表示数据集中的每个样本,每一列表示相关特征 (量化观测值)。例如鸢尾花数据集:

2.通常将上述除开最后一列的表格称为特征矩阵,记为变量X,它是维度为[n_samples,n_features](即 [样本数,特征数])的二维矩阵。而最后一列将其称之为标签数组,记为y,它是维度为长度为n_samples的一维数组。

二、Scikit-Learn的评估器API

1.Scikit-Learn API设计原则:

统一性:所有对象使用共同接口连接一组方法和统一的文档

内省:所有参数值都是公共属性

限制对象层级:只有算法可以用Python类表示。数据集都是用标准数据类型表示,参数名称用标准的Python字符串

函数组合:许多机器学习任务都可以用一串基本算法实现

明智的默认值:Scikit-Learn预先定义适当的默认值

2.Scikit-Learn 评估器API的常用步骤:

①通过Scikit-Learn中导入适当的评估器类,选择模型类

②用合适的数值对模型进行实例化,配置模型超参数

③整理数据,获取特征矩阵和目标矩阵

④调用模型实例的fit()方法对数据进行拟合

⑤对新数据应用模型

用鸢尾花数据及高斯朴素贝叶斯模型为例:

简单来说,就是:分割数据集、导入模型、训练数据、预测数据、求准确率这5个步骤。

仿照以上步骤,便可以用各种数据集组合各种模型进行模型训练与预测了。例如,

· 用简单线性模型为散点数据集拟合一条直线;

· 用主成分分析(PCA)法对鸢尾花数据进行降维;

· 用高斯混合模型(GMM)对鸢尾花数据进行聚类;

· 用流行算法中的Isomap算法对手写数字数据进行降维;

· 用高斯朴素贝叶斯对手写数字进行分类;

...

3.混淆矩阵

在上述鸢尾花的例子中,我们用准确率(accuracy_score)来衡量了模型的优劣,但是仅依靠这个指标无法知道模型哪里做得不好,因此要引入一个混淆矩阵将预测的正误可视化。

接着上述鸢尾花的例子,添加如下代码,得到一个混淆矩阵:

鸢尾花一共3类,对角线上的数字为预测正确的数据,非对角线上的数据为预测错误的数据,可以看出,该模型的将某个类别为‘1’的鸢尾花错判成了类别为‘2’的鸢尾花。

     

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值