赵走x博客
网站访问量:151926
首页
书籍
软件
工具
古诗词
搜索
登录
深入浅出Python机器学习:31、自动特征选择
深入浅出Python机器学习:30、数据“升维”
深入浅出Python机器学习:29、数据表达
深入浅出Python机器学习:28、聚类算法
深入浅出Python机器学习:27、特征提取
深入浅出Python机器学习:26、数据降维
深入浅出Python机器学习:25、数据预处理
深入浅出Python机器学习:24、神经网络实例一一手写识别
深入浅出Python机器学习:23、神经网络的原理及使用
深入浅出Python机器学习:22、神经网络的前世今生
深入浅出Python机器学习:21、SVM 实例一一波士顿房价回归分析
深入浅出Python机器学习:20、SVM 的核函数与参数选择
深入浅出Python机器学习:19、支持向量机SVM 基本概念
深入浅出Python机器学习:18、随机森林实例一一要不要和中目亲对象进一步发展
深入浅出Python机器学习:17、随机森林
深入浅出Python机器学习:16、决策树
深入浅出Python机器学习:15、朴素贝叶斯实战一一判断肿瘤是良性还是恶性
深入浅出Python机器学习:14、朴素贝叶斯算法的不同方法
深入浅出Python机器学习:13、朴素贝叶斯基本概念
深入浅出Python机器学习:12、使用L1 正则化的线性模型一一套索回归
深入浅出Python机器学习:11、使用L2 正则化的线性模型一一岭回归
深入浅出Python机器学习:10、最基本的线性模型一一线性回归
深入浅出Python机器学习:9、线性模型的墓本概念
深入浅出Python机器学习:8、K 最近邻算法项目实战一一酒的分类
深入浅出Python机器学习:7、K最近邻算法用于回归分析
深入浅出Python机器学习:6、K最近邻算法处理多元分类任务
深入浅出Python机器学习:5、k最近邻算法在分类任务中的应用
深入浅出Python机器学习:4、K 最近邻算法的原理
深入浅出Python机器学习:3、一些必需库的安装及功能简介
深入浅出Python机器学习:2、基于python i吾言的环境配置
深入浅出Python机器学习:1、概述
人脸数据集加载faces = fetch_lfw_people()报错
31、直方图
74、插件开发:Android端API实现
Python3之socket编程--3:基于UDP的套接字
15、使用 jQuery 处理 Ajax 请求
深入浅出Python机器学习:3、一些必需库的安装及功能简介
资源编号:75857
人工智能
深入浅出Python机器学习
热度:102
现在我们己经安装好了P ython 和Jupyter Notebook ,但是这还不够,我们还需要安装一些库, 才能完成本书内容的学习与练习。这些库包括Numpy 、Scipy 、matplotlib 、pandas 、IPython ,以及非常核心的scikit-learn 。下面我们一起来安装这些库。
现在我们己经安装好了P ython 和Jupyter Notebook ,但是这还不够,我们还需要安装一些库, 才能完成本书内容的学习与练习。这些库包括Numpy 、Scipy 、matplotlib 、pandas 、IPython ,以及非常核心的scikit-learn 。下面我们一起来安装这些库。 首先,如果你用的是MAC OS X ,那安装的过程会令人很舒服,你只需要在MAC的终端中输入一行命令: ``` sudo pip3 install numpy scipy matplotlib ipython pandas scikit-learn ``` 然后安静地等待计算机把这些库逐一下载并安装好就可以了。 但如果是Windows 系统,你可能会在安装Scipy 这一步时遇到一些问题, 解决方法是在下面这个链接中手动下载Numpy + MKL 的安装文件和S c ip y 的安装文件。 http: //www.lfd.uci.edu/~ gohlke/pythonlibs/ 在这个链接的页面中分别找到和你的系统及Pyth on 版本相对应的N umpy + MKL 安装文件和Scipy 安装文件,井下载到本地计算机; 然后以管理员身份运行Windows 命令提示符, 在命令提示符中进入两个安装文件所在的目录,输入命令如下: ``` pip install 安装文件全名 ``` 一定要先安装Numpy + MKL安装包,再安装Scipy 才能成功。安装完成后,在Python IDLE 中输入import 十库名称来验证是否安装成功,例如,想知道Scipy 是否安装成功, 就在IDLE 中输入如下代码: ``` import scipy ``` 如果没有报错, 则说明安装已经成功,可以使用了。现在我们一起来看一下这些库的主要功能。 >注意:如果操作系统是Windows 10 ,那么记得用管理员身份运行命令提示符,否则安装过程中可能会提示拒绝访问。 # 1、 Numpy一一基础科学计算库 Nump y 是一个Python 中非常基础的用于进行科学计算的库,它的功能包括高维数组( array ) 计算、线性代数计算、傅里叶变换以及生产伪随机数等。Numpy 对于scikit-learn来说是至关重要的, 因为sci.kit-learn 使用Nump y 数组形式的数据来进行处理,所以我们需要把数据都转化成Numpy 数组的形式,而多维数组( n-dimensional array )也是 Numpy 的核心功能之一。为了让读者直观了解Numpy 数组,下面我们在Python 的IDLE中新建一个文件,然后输入几行代码来进行展示: ``` import numpy # 给变量i赋值为一个数组 i=numpy.array([[520,13,14],[25,9,178]]) # 将i打印出来 print('i:\n{}'.format(i)) ``` 将这三行代码保存成一个PY 文件,然后在编辑器窗口按F5 运行, 代码运行结果: ``` i: [[520 13 14] [ 25 9 178]] ``` [结果分析] 这里i 就是一个典型的Numpy 数组,在本书中,我们会大量用到Numpy 。后面我们会用“ np 数组”来指代Numpy 数组。 >注意: 对于零基础的读者来说,先不必纠结Python 的IDLE 编辑器用法,后面我们会主要使用Jupyter Notebook 来进行代码的编写和运行。 # 2、 Scipy一一强大的科学计算工具集 Scipy 是一个Python 中用于进行科学计算的工具集,它有很多功能,如计算统计学分布、信号处理、计算线性代数方程等。scikit-leam 需要使用Scipy 来对算法进行执行, 其中用得最多的就是Scipy 中的sparse 函数了。sparse 函数用来生成稀疏矩阵,而稀疏矩阵用来存储那些大部分数值为0 的np 数组,这种类型的数组在scikit-leam 的实际应用中也非常常见。 下面我们用几行代码来展示一下sparse 函数的用法: ``` import numpy as np from scipy import sparse matrix = np.eye(6) # 上面用numpy的eye 函数生成一个6行6列的对角矩阵 # 矩阵中对角线上的元素数值为1 ,其余都是0 sparse_matrix=sparse.csr_matrix(matrix) # 这一行把np数组转化为CSR格式的Scipy稀疏矩阵(sparse matrix) #sparse 函数只会存储非0元素 # 将生成的对角矩阵打印出来 print("对角矩阵:\n{}".format(matrix)) # 将sparse 函数生成的矩阵打印出来进行对比 print("\n sparse 存储的矩阵:\n{}".format(sparse_matrix)) ``` 运行结果: ``` 对角矩阵: [[1. 0. 0. 0. 0. 0.] [0. 1. 0. 0. 0. 0.] [0. 0. 1. 0. 0. 0.] [0. 0. 0. 1. 0. 0.] [0. 0. 0. 0. 1. 0.] [0. 0. 0. 0. 0. 1.]] sparse 存储的矩阵: (0, 0) 1.0 (1, 1) 1.0 (2, 2) 1.0 (3, 3) 1.0 (4, 4) 1.0 (5, 5) 1.0 ``` 【结果分析】在上面的代码中,我们使用了numpy 的eye 函数生成了一个6 行6 列的对角矩阵,所谓对角矩阵,即矩阵从左上角到右下角的对角线位置上的数值都是1,而其他的位置都是0 。而用sparse 进行转换后,我们可以看到矩阵的形式发生了一些变化。(0,0)表示矩阵的左上角, 这个点对应的值是1.0 ,而( 1, 1) 代表矩阵的第2 行第2 列,这个点对应的数值也是1.0 ,依此类推,直到右下角的点( 5, 5 ) 。 从上面的代码和运行结果中,我们可以大致理解spar se 函数的工作原理,在后面的内容中,我们还会接触到Scipy 更多的功能。 # 3、 pandas 一一一数据分析的利器 pandas 是一个Python 中用于进行数据分析的库,它可以生成类似Excel 表格式的数据表,而且可以对数据表进行修改操作。pandas 还有个强大的功能,它可以从很多不同种类的数据库中提取数据,如SQL 数据库、Excel 表格甚至csv 文件。pandas 还支持在不同的列中使用不同类型的数据,如整型数、浮点数,或是字符串。下面我们用一个例子来说明pandas 的功能。在Jupyter Notebook 中输入代码如下: ``` import pandas # 先创建一个同学个人信息的小数据集 data = { "Name":["小芋","小菌","小榆","小检"], "City":["北京","上海","广州","深圳"], "Age":["18","20","22","24"], "Height":["162","161","165","166"], } data_frame=pandas.DataFrame(data) display(data_frame) ``` 运行上述代码,会得到一个数据表如图所示:  同时,我们还可以从数据表中进行查询操作,例如我们想把不在北京的同学信息显示出来, 可以输入下面这一行代码: ``` # 显示所有不在北京的同学信息 display(data_frame[data_frame.City!="北京"]) ``` 运行结果如图2-14 所示。  图2- 14 显示所有不在北京的同学信息 现在我们对pandas 有了一些初步的了解,在本书后面的内容中,我们还将深入讲解pandas 的功能和用法。 # 4、 matplotlib一一画出优美的图形 matplotlib 是一个Python 的绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,它能够输出的图形包括折线图、散点图、直方图等。在数据可视化方面, matplotlib 拥有数量众多的忠实用户,其强悍的绘图能力能够帮我们对数据形成非常清晰直观的认知。下面我们来简单展示一下matplotlib 的能力, 在Jupyter Notebook中输入如下代码: ``` import numpy as np %matplotlib inline # 激活matplotlib import matplotlib.pyplot as plt # 下面先生成个从-20到20 ,元素数为10的等差数列 x = np.linspace(-20,20,10) # 再令y =x^3 + 2x^2 + 6x + 5 y = x**3 + 2*x**2 + 6*x + 5 #下面画出这条函数的曲线 plt.plot(x,y,marker="o") ``` 结果:  >⚠️在代码开头的%matplotlib inline 允许Jupyter Notebook 进行内置实时绘图。如果不写这一行代码,则需要在最后加入plt.show(),才能让图形显示出来。这两种方法在本书中都会涉及。 # 5、 scikit-learn一一非常流行的Python 机器学习库 scikit-learn 是如此重要,以至于我们需要单独对它进行一些介绍。scikit-learn 是一个建立在Scipy 基础上的用于机器学习的Python 模块。而在不同的应用的领域中,己经发展出为数众多的基于Scipy 的工具包,它们被统一称为Seik ts 。而在所有的分支版本中, scikit-learn 是最有名的。它是开源的,任何人都可以免费地使用它或者进行二次发行。 scikit- learn 包含众多顶级机器学习算法,它主要有六大类的基本功能,分别是分类、回归、聚类、数据降维、模型选择和数据预处理。scikit-learn 拥有非常活跃的用户社区,基本上其所有的功能都有非常详尽的文档供用户查阅,我们也建议读者可以抽时间认真研究一下scikit-learn 的用户指南以及文档,以便对其算法的使用有更充分了解。 # 6、 小结 回顾一下,在这一章中,我们一起配置好了开发环境,并学习了Numpy 、Scipy 、matplotlib 、pandas 、scikit-leam 等库的安装和基本使用方法,同时对Jupyter Notebook 以及Python 自带的IDLE 编辑器也有了一定的了解。接下来在第3 章中,我们将详细介绍K 最近邻算法以及它的使用方法,希望读者能够从中学到对自己有用的知识。