机器学习python最有用的库(Python机器学习库scikit-learn介绍---人工智能工作笔记0016)
机器学习python最有用的库(Python机器学习库scikit-learn介绍---人工智能工作笔记0016)NumPy 是一个数学库 可以看到 提供了很多的封装的数学函数 通过这个数学函数就可以构建自己的算法了 当然这样的话就需要自己有很强的数学功底.NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:------------------------------------------------------NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。
编辑
编辑然后我们来看一下这个scikit-learn这个机器学习库 这个学习库可以看到当然是个python的库 他是基于numpy进行 封装的 封装了很多常用的算法 使用的时候就不用自己去写算法了.
numpy和pandas对:
先来看看这两个是什么:
------------------------------------------------------
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。
NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
- 一个强大的N维数组对象 ndarray
- 广播功能函数
- 整合 C/C /Fortran 代码的工具
- 线性代数、傅里叶变换、随机数生成等功能
NumPy 是一个数学库 可以看到 提供了很多的封装的数学函数 通过这个数学函数就可以构建自己的算法了 当然这样的话就需要自己有很强的数学功底.
------------------------------------------------------------------------------------------
Pandas 是 Python 语言的一个扩展程序库,用于数据分析。
Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。
Pandas 名字衍生自术语 "panel data"(面板数据)和 "Python data analysis"(Python 数据分析)。
Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。
Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。
Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。
Pandas 广泛应用在学术、金融、统计学等各个数据分析领域。
------------------------------------------------------------------------------------------
矩阵运算就是对数组运算啊 这个Pandas也是基于Numpy实现的.
--------------------------------------
这个scikit-learn单独去安装不好安装 可以直接去安装
编辑
直接去安装这个Anaconda就可以了 安装这个就会自带了 很多常用的库 包括这个scikit-learn
Anaconda就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。
---------------------------------------------------------------
Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等
Miniconda包括Conda、Python
conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换
------------------------------------------------------
编辑
然后我们来看一下 这个scikit-learn支持的算法 可以看到首先是分类 第一个 可以看到说可以应用于图片的识别 spam detection 垃圾邮件的识别分类.
然后下面algorithms:支持的算法 可以看到有SVM 向量机 nearest neighbors 邻近算法 random forest 随机森林算法等.
编辑
然后我们再来看 他还支持对于回归算法的应用 可以看到用它可以来预测一个持续的值 associated 关联的.某个关联对象的某个值的持续预测
可以看到 可以用来:drug response 药物反应的预测 Stock prices 股票的涨跌幅度预测.
可以看到他支持的算法有:SVR 这个也是支持向量机的一种算法 只不过这个用来做回归 SVM用来做分类 然后 ridge regression基于正则的 L2的回归算法 Lasso是基于正则的L1的这样的一个回归算法.还有样例可以看到后面.
编辑
然后再来看这个可以看到这个clustering其实就是聚类 cluster有集群的意思 做机器学习中叫做聚类
其实就是把一群数据 分成一堆一堆的 就是把做自然界中表现相似性的数据 分到一起这个就叫做聚类 可以看到应用有 对客户群体进行分割 还有根据experiment 实验进行分组输出.
然后看一些算法 K-Means聚类算法 Spectral clustering 普聚类算法 mean-shift...等等聚类算法 后面都会具体来说.
编辑
然后还有一个就是降维算法 其实就是减少变量对吧 因为我们知道 所谓的维度在机器学习中就是 考虑到参数的多少 输入的参数越多 最后得到的结果越准确 但是如果参数越多 等于计算量就越大 那么如何能保证 在参数的个数 和计算结果的准确性 上做个权衡 达到结果最优 计算量最小 找到这种权衡的算法 就是降维算法.可以看到有PCA算法 有feature selection 特征选择算法 有non-negative matrix factorization 矩阵分解..根据 这些算法分析后的参数 然后再带入我们的模型中去做运算 效果会更好.会让计算的速度会更快.
编辑
然后还支持这个模型选择 也就是说 经过我们的算法 算出以后会得到不同的结果参数 也叫结果模型 那么我们选择哪个模型最好 这个过程用到的算法 叫模型选择算法 然后我们再看 这里计算得出的参数 我们也可以叫模型 然后还有一些我们给定的值 可以认为是给定的常量 叫做超参数 通过我们的这个模型选择算法 就能找到最优的超参数 可以看到这个算法 其实就是通过比较 验证 选择参数和模型进行工作的 可以看到有grid search 栅格算法 cross validation 交叉验证 来进行处理 还有
metrics 这个算法里面有很多模型的指标可以供我们在左模型选择的时候来参考.比如grid search可以帮我们检索出来 哪一组的超参数是最优的 然后cross validation用来做交叉验证.
编辑
然后我们再来看这个Preprocessing这个预处理算法 可以看到 其实就是做一些
数据的预处理可以进行feature extraction特征的抽取 还有normalization进行数据归一化
然后可以用到的应用可以看到 通过机器学习把数据经过处理以后 然后再作为数据输入模型
然后可以看到 对应的算法有preprocessing与处理 feature extraction特征提取.
编辑
然后我们可以看到scikit-learn这个框架包含了机器学习的 常用的类库都有了 可以看到有 分类算法 有聚类算法 有回归算法 然后还有为了我们更好的 执行算法 而提供的 数据预处理算法 然后对处理后的数据 再进行降维算法 然后把数据输入我们的模型 经过算法得出结果 然后把结果通过模型选择算法 然后再来选择合适的模型 可以看到 scikit-learn这个框架已经提供给我们 常用的机器学习算法 大部分情况下 数据量不是特别大的情况下 就已经可以用这个 这个是单机跑的就够用了.
如果数据量特别大 那么可以使用Spark中的机器学习模块 甚至 如果需要更深层次的机器学习就可以使用tensorflow进行深度学习了.