快捷搜索:  汽车  科技

python的科学计算库(用Python做科学计算工具篇)

python的科学计算库(用Python做科学计算工具篇)在 scikit-learn 中实现的机器学习算法期望数据存储在二维数组或矩阵中。数组可以是numpy数组,或者在某些情况下是scipy.sparse矩阵。数组的大小预计为[n_samples n_features]同样,这是一个将模型拟合到数据的示例,但我们这里的重点是模型可以对新数据进行概括。该模型是从训练数据中学习的,可以用来预测测试数据的结果:在这里,我们可能会得到一个 x 值,而模型可以让我们预测 y 值。我们将在这里看两个非常简单的机器学习任务。第一个是分类任务:图中显示了二维数据的集合,根据两个不同的类标签着色。分类算法可用于在两个点簇之间绘制划分边界:通过绘制这条分隔线,我们学习了一个可以 泛化到新数据的模型:如果您将另一个点放到未标记的平面上,该算法现在可以预测它是蓝色点还是红色点。我们将看到的下一个简单任务是回归任务:一组数据的简单最佳拟合线。

python的科学计算库(用Python做科学计算工具篇)(1)

所需基本库

  • NumPy
  • scipy
  • matplotlib
全章目录【本节简介:问题设置】
  • 简介:问题设置
  • 使用 scikit-learn 进行机器学习的基本原理
  • 监督学习:手写数字的分类
  • 监督学习:住房数据的回归
  • 测量预测性能
  • 无监督学习:降维和可视化
  • 特征脸示例:链接 PCA 和 SVM
  • 特征脸示例:链接 PCA 和 SVM
  • 参数选择、验证和测试

6.1.简介:问题设置6.1.1. 什么是机器学习?

机器学习是关于构建具有自动调整参数的可调参数的程序,以便通过适应先前看到的数据来改善它们的行为。

机器学习可以被认为是人工智能的一个子领域,因为这些算法可以被看作是构建块,通过某种方式使计算机学会更智能地表现, 不是像数据库系统那样仅仅存储和检索数据项。

python的科学计算库(用Python做科学计算工具篇)(2)

分类问题

我们将在这里看两个非常简单的机器学习任务。第一个是分类任务:图中显示了二维数据的集合,根据两个不同的类标签着色。分类算法可用于在两个点簇之间绘制划分边界:

通过绘制这条分隔线,我们学习了一个可以 泛化到新数据的模型:如果您将另一个点放到未标记的平面上,该算法现在可以预测它是蓝色点还是红色点。

python的科学计算库(用Python做科学计算工具篇)(3)

数据矩阵

我们将看到的下一个简单任务是回归任务:一组数据的简单最佳拟合线。

同样,这是一个将模型拟合到数据的示例,但我们这里的重点是模型可以对新数据进行概括。该模型是从训练数据中学习的,可以用来预测测试数据的结果:在这里,我们可能会得到一个 x 值,而模型可以让我们预测 y 值。

6.1.2. scikit-learn 中的数据数据矩阵

在 scikit-learn 中实现的机器学习算法期望数据存储在二维数组或矩阵中。数组可以是numpy数组,或者在某些情况下是scipy.sparse矩阵。数组的大小预计为[n_samples n_features]

  • n_samples:样本数:每个样本是一个待处理的项目(例如分类)。样本可以是文档、图片、声音、视频、天文物体、数据库或 CSV 文件中的一行,或者您可以用一组固定的数量特征描述的任何内容。
  • n_features:可用于以定量方式描述每个项目的特征或不同特征的数量。特征通常是实值的,但在某些情况下可能是布尔值或离散值。

特征的数量必须预先确定。然而,它可能是非常高维的(例如数百万个特征),其中大多数对于给定样本都是零。这是scipy.sparse 矩阵有用的情况,因为它们比 numpy 数组更节省内存。

一个简单的例子:鸢尾花数据集应用问题

作为一个简单数据集的例子,让我们看一下 scikit-learn 存储的 iris 数据。假设我们要识别鸢尾花的种类。数据包括对三种不同种类的虹膜的测量:

python的科学计算库(用Python做科学计算工具篇)(4)

python的科学计算库(用Python做科学计算工具篇)(5)

python的科学计算库(用Python做科学计算工具篇)(6)

濑户鸢尾

杂色鸢尾

弗吉尼亚鸢尾

请记住,每个样本必须有固定数量的特征,并且每个样本的特征数量i必须是相似的数量。

使用 Scikit-learn 加载虹膜数据

Scikit-learn 有一组关于这些虹膜物种的非常简单的数据。数据包括以下内容:

  • 鸢尾花数据集中的特征:萼片长度(厘米) 萼片宽度(厘米) 花瓣长度(厘米) 花瓣宽度(厘米)
  • 要预测的目标类:濑户 杂色 弗吉尼亚

scikit-learn嵌入 iris CSV 文件的副本以及将其加载到 numpy 数组中的函数:

>>>

>>> from sklearn.datasets import load_iris >>> iris = load_iris()

每个样本花的特征存储在data数据集的属性中:

>>>

>>> print(iris.data.shape) (150 4) >>> n_samples n_features = iris.data.shape >>> print(n_samples) 150 >>> print(n_features) 4 >>> print(iris.data[0]) [5.1 3.5 1.4 0.2]

每个样本的类别信息存储在 target数据集的属性中:

>>>

>>> print(iris.target.shape) (150 ) >>> print(iris.target) [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]

类的名称存储在最后一个属性中,即 target_names:

>>>

>>> print(iris.target_names) ['setosa' 'versicolor' 'virginica']

该数据是四维的,但我们可以使用散点图一次可视化两个维度:

python的科学计算库(用Python做科学计算工具篇)(7)

相关文章:
  • 用Python做科学计算(工具篇)——scipy 使用指南
  • 用Python做科学计算(工具篇)——1.1. NumPy 数组对象
  • 用Python做科学计算(工具篇)——numpy1.2.数组的数值运算
  • 用Python做科学计算(工具篇)——numpy1.3 更精细的数组
  • 用Python做科学计算(工具篇)——numpy1.4 高级操作
  • 用Python做科学计算——matplotlib绘图实例

猜您喜欢: