机器学习——库
一、sklearn库
sklearn(Scikit-learn)是python中一个提供机器学习算法的库,是一组简单有效的工具集,其开源、可复用。sklearn库的共分为6大部分,分别用于完成分类任务、回归任务、聚类任务、降维任务、模型选择以及数据的预处理。
1.分类任务
分类模型 | 加载模块 |
---|---|
最近邻算法 | neighbors.NearestNeighbors |
支持向量机 | svm.SVC |
朴素贝叶斯 | naive_bayes.GaussianNB |
决策树 | tree.DecisionTreeClassifier |
集成方法 | ensemble.BaggingClassifier |
神经网络 | neural_network.MLPClassifier |
2.回归任务
回归模型 | 加载模块 |
---|---|
岭回归 | linear_model.Ridge |
Lasso回归 | linear_model.Lasso |
弹性网络 | linear_model.ElasticNet |
最小角回归 | linear_model.Lars |
贝叶斯回归 | linear_model.BayesianRidge |
逻辑回归 | linear_model.LogisticRegression |
多项式回归 | preprocessing. PolynomialFeatures |
3.聚类任务
聚类方法 | 加载模块 |
---|---|
K-means | cluster.KMeans |
AP聚类 | cluster.AffinityPropagation |
均值漂移 | cluster.MeanShift |
层次聚类 | cluster.AgglomerativeClustering |
DBSCAN | cluster.DBSCAN |
BIRCH | cluster.Birch |
谱聚类 | cluster.SpectralClustering |
4.降维任务
降维方法 | 加载模块 |
---|---|
主成分分析 | decomposition.PCA |
截断SVD和LSA | decomposition.TruncatedSVD |
字典学习 | decomposition.SparseCoder |
因子分析 | decomposition.FactorAnalysis |
独立成分分析 | decomposition.FastICA |
非负矩阵分解 | decomposition.NMF |
LDA | decomposition.LatentDirichletAllocation |
二、Scipy库
SciPy库依赖于NumPy,它提供了便捷且快速的N维数组操作。
三、Numpy库
numpy是python用于科学计算的基础工具库。它包含以下四大功能:
强大的多维数组处理对象
复杂的函数功能
有用的线性代数,傅里叶级数和随机数功能
集成C/C++和FORTRAN代码的工具
功能 | 包含的操作 |
---|---|
创建数组 | 查看数据类型 |
创建等差和等比数列 | |
矩阵的生成 | |
数组元素的索引 | |
矩阵的合并与分割 | 矩阵的合并 |
矩阵的分割 | |
矩阵的简单运算 | 求和 |
矩阵的逐个元素运算 | |
矩阵运算与线性代数 | 范数的计算 |
求解线性方程组 | |
求特征值和特征向量 |
四、Pandas库
Pandas是python第三方库,提供高性能易用数据类型和分析工具。Pandas基于NumPy实现,常与NumPy和Matplotlib一同使用。
包括两个数据类型:Series(相当于一维数据类型),DataFrame(相当于二维-多维数据类型),构成pandas的基础。进行基本操作、运算操作、特征类操作(提取数据特征)、关联类操作(挖掘数据关联关系)
pandas库引用
import pandas as pd
五、Numpy和Panadas的区别
5.1 共性和区别
共性:Numpy和Panadas都是python中用于数据分析非常好用的库。
区别:
Numpy:是数值计算的扩展包,它能高效处理N维数组,复杂函数,线性代数。但是处理的文件有限,只能处理、读取txt、csv格式的文件。
Panadas:是做数据处理。市python的一个数据分析包,
5.2简介
5.2.1 NumPy:N维数组容器
Numpy专门针对ndarray的操作和运算进行了设计,所以数组的存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,Numpy的优势就越明显。Numpy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。据说NumPy将Python相当于变成一种免费的更强大的MatLab系统。
1) ndarray的优势
NumPy提供了一个N维数组类型ndarray,它描述了相同类型的“items”的集合。
一、内存块风格:
这是因为ndarray中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,所以ndarray在存储元素时内存可以连续,而python原生lis就t只能通过寻址方式找到下一个元素,这虽然也导致了在通用性能方面Numpy的ndarray不及Python原生list,但在科学计算中,Numpy的ndarray就可以省掉很多循环语句,代码使用方面比Python原生list简单的多。
二、ndarray支持并行化运算(向量化运算)
三、Numpy底层使用C语言编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受Python解释器的限制,效率远高于纯Python代码。
5.2.2 Pandas:表格容器
pansdas是Python第三方库,基于Numpy的一种工具,常与Numpy和Matplotlib一同使用。
Pandas 纳入了大量库和一些标准的数据模型,提供了大量快速便捷地处理大型数据集所需的函数和方法。