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

《Python 数据科学手册》笔记

一、Scikit-Learn的数据表示

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

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

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()方法对数据进行拟合

⑤对新数据应用模型

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

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

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

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

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

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

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

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

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

...

3.混淆矩阵

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

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

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

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

     

 

上一篇:python 整数反转


下一篇:搭建repo仓库管理环境