在学习scikit-learn之前容我做一点介绍
scikit-learn(http://scikit-learn. org/stable/documentation(在这个网页上可以看到每个算法的详细文档 ))
是一个开源的项目 ,里面包含了目前最先进的机器学习算法
如果你想使用或者是学习这个框架的话
Anaconda
请你下载Anaconda(www.anaconda.com/)
Anaconda 是用于大规模数据处理、预测分析和科学计算的 Python 发行版。
Anaconda 已经预先安装 好 NumPy、SciPy、matplotlib、pandas、IPython、Jupyter Notebook 和 scikit-learn。
所以你可以直接下载使用。
打开之后我们可以看到界面上面有很多的集成的工具
Jupyter Notebook
Jupyter Notebook 是可以在浏览器中运行代码的交互环境。
简单的说就是一个编译器
打开之后的界面 (这个是你本地文件)
如果你想改变编辑器读取你的本地文件位置的话可以用下面的办法
blog.csdn.net/slz0813/art…(更改jupyter-notebook默认workspace目录 )
下面就开始让我们创建第一个程序吧!
创建第一个程序
NumPy
NumPy 是 Python 科学计算的基础包之一。它的功能包括多维数组、高级数学函数(比如 线性代数运算和傅里叶变换),以及伪随机数生成器。
SciPy
SciPy 是 Python 中用于科学计算的函数集合。它具有线性代数高级程序、数学函数优化、 信号处理、特殊数学函数和统计分布等多项功能。
matplotlib
matplotlib 是 Python 主要的科学绘图库,其功能为生成可发布的可视化内容,如折 线图、直方图、散点图等。将数据及各种分析可视化,可以让你产生深刻的理解。
pandas
pandas 是用于处理和分析数据的 Python 库。它基于一种叫作 DataFrame 的数据结构,这 种数据结构模仿了R 语言中的DataFrame。简单来说,一个pandas DataFrame 是一张表 格,类似于Excel 表格。pandas 中包含大量用于修改表格和操作表格的方法,尤其是可 以像SQL 一样对表格进行查询和连接。
补充内容:
看到上面的内容觉得还是看不懂这个是在说什么的话,请看看补充内容。
NumPy、SciPy、matplotlib、pandas、IPython、Jupyter Notebook 和 scikit-learn作为python重要的库,下面对各个各个库进行详细的解释,这样方便理解记忆。
NumPy (Numerical Python的简称)是Python科学计算的基础包
- 快速高效的多维数组对象ndarray。
- 用于对数组执行元素级计算以及直接对数组执行数学运算的函数。
- 用于读写硬盘上基于数组的数据集的工具。
- 线性代数运算、傅里叶变换,以及随机数生成。
- -成熟的C API, 用于Python插件和原生C、C++、Fortran代码访问NumPy的 数据结构和计算工具。
除了为Python提供快速的数组处理能力,NumPy在数据分析方面还有另外一个主要作用,即作为在算法和库之间传递数据的容器。对于数值型数据,NumPy数组在存储和处理数据时要比内置的Python数据结构高效得多。此外,由低级语言(比如C 和Fortran)编写的库可以直接操作NumPy数组中的数据,无需进行任何数据复制工作。因此,许多Python的数值计算工具要么使用NumPy数组作为主要的数据结构,要么可以与NumPy进行无缝交互操作。
参考书籍:利用Python进行数据分析pandas 是用于处理和分析数据的 Python 库
它提供了以下功能(不限于此):
- 有标签轴的数据结构,支持自动或清晰的数据对齐。这可以防止由于数据不对齐,或处理来源不同的索引不同的数据,所造成的错误。
- 集成时间序列功能。
- 相同的数据结构用于处理时间序列数据和非时间序列数据。
- 保存元数据的算术运算和压缩。 灵活处理缺失数据。
- 合并和其它流行数据库(例如基于SQL的数据库)的关系操作。
pandas兼具NumPy高性能的数组计算功能以及电子表格和关系型数据库(如 SQL)灵活的数据处理功能。它提供了复杂精细的索引功能,能更加便捷地完成重 塑、切片和切块、聚合以及选取数据子集等操作。
参考数据:利用Python进行数据分析matplotlib是 Python 主要的科学绘图库
matplotlib是最流行的用于绘制图表和其它二维数据可视化的Python库。它最初由 John D.Hunter(JDH)创建,目前由一个庞大的开发团队维护。它非常适合创建出 版物上用的图表。
SciPy是一组专门解决科学计算中各种标准问题域的包的集合
它提供了以下功能(不限于此):
- scipy.integrate:数值积分例程和微分方程求解器。
- scipy.linalg:扩展了由numpy.linalg提供的线性代数例程和矩阵分解功能。
- scipy.optimize:函数优化器(最小化器)以及根查找算法。
- scipy.signal:信号处理工具。 scipy.sparse:稀疏矩阵和稀疏线性系统求解器。 scipy.special:SPECFUN(这是一个实现了许多常用数学函数(如伽玛函数) 的Fortran库)的包装器。
- scipy.stats:标准连续和离散概率分布(如密度函数、采样器、连续分布函数 等)、各种统计检验方法,以及更好的描述统计法。
scikit-learn
Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机器学习库。 它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度增强,k -means和DBSCAN,旨在与Python数值和科学库NumPy和SciPy互操作。
它的子模块包括:
- 分类:SVM、近邻、随机森林、逻辑回归等等。
- 回归:Lasso、岭回归等等。
- 聚类:k-均值、谱聚类等等。
- 降维:PCA、特征选择、矩阵分解等等。
- 选型:网格搜索、交叉验证、度量。 预处理:特征提取、标准化。