scikit-learn

scikit-learn 是一个开源项目, 可以免费使用和分发, 任何人都可以
轻松获取其源代码来查看其背后的原理。 scikit-learn 项目正在不断
地开发和改进中, 它的用户社区非常活跃。 它包含许多目前最先进的机
器学习算法, 每个算法都有详细的文档( http://scikitlearn.org/stable/documentation ) 。 scikit-learn 是一个非常流行的工
具, 也是最有名的 Python 机器学习库。 它广泛应用于工业界和学术
界, 网上有大量的教程和代码片段。 scikit-learn 也可以与其他大量
Python 科学计算工具一起使用

 


安装scikit-learn
scikit-learn 依赖于另外两个 Python 包: NumPy 和 SciPy。 若想绘图
和进行交互式开发, 还应该安装 matplotlib 、 IPython 和 Jupyter
Notebook。 我们推荐使用下面三个预先打包的 Python 发行版之一, 里
面已经装有必要的包。
 

Anaconda ( https://store.continuum.io/cshop/anaconda/ )
用于大规模数据处理、 预测分析和科学计算的 Python 发行版。
Anaconda 已经预先安装好 NumPy、 SciPy、 matplotlib 、 pandas 、
IPython、 Jupyter Notebook 和 scikit-learn 。 它可以在 Mac OS、
Windows 和 Linux 上运行, 是一种非常方便的解决方案。 对于尚未安装
Python 科学计算包的人, 我们建议使用 Anaconda。 Anaconda 现在还免
费提供商用的 Intel MKL 库。 MKL( 在安装 Anaconda 时自动安装) 可
以使 scikit-learn 中许多算法的速度大大提升。


Enthought Canopy ( https://www.enthought.com/products/canopy/ )
用于科学计算的另一款 Python 发行版。 它已经预先装有 NumPy、
SciPy、 matplotlib 、 pandas 和 IPython, 但免费版没有预先安装
scikit-learn 。 如果你是能够授予学位的学术机构的成员, 可以申请
学术许可, 免费使用 Enthought Canopy 的付费订阅版。 Enthought
Canopy 适用于 Python 2.7.x, 可以在 Mac OS、 Windows 和 Linux 上运
行。


Python(x,y) ( http://python-xy.github.io/ )
专门为 Windows 打造的 Python 科学计算免费发行版。 Python(x,y)
已经预先装有 NumPy、 SciPy、 matplotlib 、 pandas 、 IPython 和
scikit-learn 。
如果你已经安装了 Python, 可以用 pip 安装上述所有包:
$ pip install numpy scipy matplotlib ipython scikit-learn pandas
 

 

NumPy 是 Python 科学计算的基础包之一。 它的功能包括多维数组、 高
级数学函数( 比如线性代数运算和傅里叶变换) , 以及伪随机数生成
器。
在 scikit-learn 中, NumPy 数组是基本数据结构。 scikit-learn
接受 NumPy 数组格式的数据。 你用到的所有数据都必须转换成 NumPy
数组。 NumPy 的核心功能是 ndarray 类, 即多维( n 维) 数组。 数组
的所有元素必须是同一类型。 NumPy 数组如下所示:
In[2]:
import numpy as np
x = np.array([[1, 2, 3], [4, 5, 6]])
print("x:\n{}".format(x))
Out[2]:
x:
[[1 2 3]
[4 5 6]]
对于 NumPy ndarray 类的对象, 我们将其简
称为“NumPy 数组”或“数组”。


SciPy


SciPy 是 Python 中用于科学计算的函数集合。 它具有线性代数高级程
序、 数学函数优化、 信号处理、 特殊数学函数和统计分布等多项功能。 scikit-learn 利用 SciPy 中的函数集合来实现算法。 对我们来
说, SciPy 中最重要的是 scipy.sparse : 它可以给出稀疏矩阵
( sparse matrice) , 稀疏矩阵是 scikit-learn 中数据的另一种表示方
法。 如果想保存一个大部分元素都是 0 的二维数组, 就可以使用稀疏矩
阵:
In[3]:
from scipy import sparse
# 创建一个二维NumPy数组, 对角线为1, 其余都为0
eye = np.eye(4)
print("NumPy array:\n{}".format(eye))
Out[3]:
NumPy array:
[[ 1. 0. 0. 0.]
[ 0. 1. 0. 0.]
[ 0. 0. 1. 0.]
[ 0. 0. 0. 1.]]
In[4]:
# 将NumPy数组转换为CSR格式的SciPy稀疏矩阵
# 只保存非零元素
sparse_matrix = sparse.csr_matrix(eye)
print("\nSciPy sparse CSR matrix:\n{}".format(sparse_matrix))
Out[4]:
SciPy sparse CSR matrix:
(0, 0) 1.0(1, 1) 1.0
(2, 2) 1.0
(3, 3) 1.0
通常来说, 创建稀疏数据的稠密表示( dense representation) 是不可能的
( 因为太浪费内存) , 所以我们需要直接创建其稀疏表示( sparse
representation) 。 下面给出的是创建同一稀疏矩阵的方法, 用的是 COO
格式:
In[5]:
data = np.ones(4)
row_indices = np.arange(4)
col_indices = np.arange(4)
eye_coo = sparse.coo_matrix((data, (row_indices, col_indices)))
print("COO representation:\n{}".format(eye_coo))
Out[5]:
COO representation:
(0, 0) 1.0
(1, 1) 1.0
(2, 2) 1.0
(3, 3) 1.0
关于 SciPy 稀疏矩阵的更多内容可查阅 SciPy 讲稿( http://www.scipylectures.org/ ) 。


matplotlib


matplotlib 是 Python 主要的科学绘图库, 其功能为生成可发布的可视
化内容, 如折线图、 直方图、 散点图等。 将数据及各种分析可视化, 可以让你产生深刻的理解, 而我们将用 matplotlib 完成所有的可视化内
容。 在 Jupyter Notebook 中, 你可以使用 %matplotlib notebook 和
%matplotlib inline 命令, 将图像直接显示在浏览器中。 我们推荐使
用 %matplotlib notebook 命令, 它可以提供交互环境( 虽然在写作
本书时我们用的是 %matplotlib inline ) 。 举个例子, 下列代码会
生成图 1-1 中的图像:
In[6]:
%matplotlib inline
import matplotlib.pyplot as plt
# 在-10和10之间生成一个数列, 共100个数
x = np.linspace(-10, 10, 100)
# 用正弦函数创建第二个数组
y = np.sin(x)
# plot函数绘制一个数组关于另一个数组的折线图
plt.plot(x, y, marker="x")

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值