赞
踩
谢谢邀请。
大数据是从数据中提取有用信息而解决现实问题的过程。机器学习是通过输入大量数据使机器学会解决问题的过程。两个领域紧密联系。下面从这几个方面看哪些python库值得推荐:统计分析、数据可视化、数据建模和机器学习、深度学习。
一、统计分析
统计学是数据科学和机器学习最基本原理之一。所有机器学习和深度学习的算法和技巧等都建立在统计学的基本原则和概念中。下面介绍一些用于统计分析的高级Python库:NumPy、SciPy、Pandas、StatsModels。
NumPy
NumPy或者Numerical Python是最常用的Python库之一。其主要特点是支持用于数学和逻辑运算的多维数组。作为多维实数数组,NumPy提供的功能可用于索引、分类、重构及传输图像和声波。
下面是NumPy的特征列表:执行简单到复杂的数学和科学计算
强力支持多维数组对象和处理数组元素的一些函数和方法
傅里叶变换和数据处理程序
执行线性代数计算,这对于线性回归、逻辑回归和朴素贝叶斯等的机器学习算法是必备的。
SciPy
SciPy建立于NumPy之上,是子程序包的集合,帮助解决与统计分析相关的最基本问题。SciPy库处理使用NumPy库定义的数组元素,因此它常用于计算使用NumPy不能解决的数学方程式。
下面是SciPy的特征列表:它与NumPy数组一起使用,提供了一个平台。该平台提供了诸如数值积分和数值优化的大量数学方法。
它有一组子程序包,可用于矢量量化、傅里叶变换、积分、插值等。
它提供完整的线性代数函数堆栈,用于更高级的计算,例如使用k-means算法的聚类等。
它为信号处理、数据结构和数值算法、创建稀疏矩阵等提供支持。
Pandas
Pandas是另外一个重要的统计库,大范围地应用于统计学、金融、经济学及数据分析等领域。该库依赖NumPy数组来处理pandas数据对象。在执行科学计算及数据处理等方面,NumPy,Pandas和SciPy严重依赖彼此。
经常有人要求我在Pandas, NumPy和SciPy中间选出最好的一个,不过我更喜欢一起使用它们,因为它们彼此十分依赖。Pandas是处理大量数据的最佳软件库之一,而NumPy对多维数组提供出色的支持。Scipy则提供一套能执行大量数据分析任务的子程序包。
下面是Pandas的特征列表:使用预定义和自定义索引创建快速有效的数据帧对象。
可用来处理大型数据集和构造子集,执行数据切片及索引等。
为创建Excel图表和执行诸如描述性统计分析、数据整理、转换、操作及可视化等复杂的数据分析任务提供内置函数。
为处理时间序列数据提供支持
StatsModels
构建于NumPy和SciPy之上,StatsModels是创建统计模型、数据处理和模型评估的最佳Python程序包。除了使用NumPy数组和SciPy库中的科学模型之外,它也和Pandas结合以进行有效的数据处理。该库因统计计算、统计测试和数据探索而闻名。
下面是StatsModels的特征列表:是执行统计检验和假设检验的最佳软件库,而NumPy库和SciPy库不能实现这两点。
提供R语言式的公式以进行更好的统计分析。它更加接近于统计人员常用的R语言。
由于对统计计算的广泛支持,它常用于实现广义线性模型(GLM)和普通最小二乘线性回归模型(OLM)。
使用StatsModels库完成包括假设检验(零理论)在内的统计检验。
二、数据可视化
数据可视化就是通过图示而有效地表现数据中的重要信息。它包括图形、图表、思维导图、热图、直方图和密度图等的实现,以此研究多个数据变量间的相关性。下面介绍一些用于数据可视化的高级Python库列表:Matplotlib、Seaborn、Plotly、Bokeh
Matplotlib
Matplotlib是Python中最基础的数据可视化程序包。它支持各式各样的图表,例如直方图、条形图、功率图和误差图等。它是二维图形库,能够生成清晰简明的图表,这对探索性数据分析(EDA)至关重要。
下面是Matplotlib的特征列表:Matplotlib通过提供函数来选择合适的线条样式、字体样式和格式化轴等,使绘制图形极其容易。
创建的图表帮助清晰地了解趋势和模式,并进行关联。它们通常是推导定量信息的典型工具。
它包含Pyplot模块,该模块提供了与MATLAB用户界面非常相似的界面。这是Matplotlib程序包最好的功能之一。
提供面向对象的API模块,使用Tkinter、wxPython、Qt等GUI工具将图表整合到应用程序中。
Seaborn
Matplotlib库构成了Seaborn库的基础,相比Matplotlib而言,Seaborn可用于创建更具吸引力和描述性的图表。除了对数据可视化的广泛支持,Seaborn具有面向API的内置数据集,用于研究多个变量间的关系。
下面是Seaborn的特征列表:提供选项,用于分析和可视化单变量和双变量数据点以及将数据与其他数据子集进行比较。
支持对各种目标变量的线性回归模型进行自动统计估计和图示。
通过提供执行高级抽象的功能,建立用于多图网格构造的复杂可视化。
具有样式设置和构建matplotlib图表的众多内置主题。
Plotly
Ploty是最著名的Python图表库之一。它提供交互式的图表,以此了解目标变量和预测变量间的依赖性。它可用于分析和可视化统计数据、金融数据、商业数据及科学数据,从而生成清晰明了的图表、子图、热图、3D图表等。
下面是使Ploty成为最佳可视化库之一的特征列表:它具有30多种图表类型,包括3D图表、科学和统计图,SVG地图等,以实现清晰的可视化。
使用Ploty的Python API,可以创建由图、图表、文本和网页图片形成的公共/私人仪表板。
使用Ploty创建的可视化以JSON格式进行序列化,由此可在R, MATLAB, Julia等不同平台轻松地访问它们。
具有称为Plotly Grid的内置API,可直接将数据导入Ploty运行环境。
Bokeh
Bokeh是Python中最具交互作用的软件库之一,可为网页浏览者构建描述性的图示。它可轻松处理庞大的数据集和构建有助于执行广泛EDA的通用图。Bokeh提供定义最完善的功能来构建交互图、仪表板和数据应用程序。
下面是Bokeh的特征列表:帮助使用简单命令快速创建复杂的统计图。
支持以HTML、notebook文档和服务器的形式进行输出。它还支持R、Python、lua、Julia等多种语言绑定。
Flask和 django也集成了Bokeh,因此也能在这些程序上表现可视化。
支持转换以matplotlib、seaborn和ggplot等其他软件库编写的可视化。
三、机器学习
在任何数据科学项目中,创建能准确预测结果或解决特定问题的机器学习模型是最重要的。实行机器学习和深度学习等需要编写数千行代码,若想通过神经网络创建解决复杂问题的模型,那这会变得更加棘手。下面是用于机器学习的高级Python库列表:Scikit-learn、XGBoost、Eli5。
Scikit-learn
作为最有用的Python库之一,Scikit-learn是用于数据建模和模型评估的最佳软件库。它具有大量的函数,其唯一目的是创建模型。它包含所有监督和无监督的机器学习算法,还具有用于集合学习和促进机器学习的明确功能。
下面是Scikit-learn的特征列表:提供一套标准的数据集以帮助开始机器学习。例如,著名的鸢尾花数据集和波士顿房屋价格数据集是Scikit-learn库的一部分。
具有实现有监督和无监督机器学习的内置方法,包括解决、聚类、分类、回归和异常检测问题。
具有用于特征提取和特征选择的内置函数,可帮助识别数据中的重要属性。
提供进行交叉验证的方法,用于评估模型性能。还提供用于参数调整的功能,以提高模型性能。
XGBoost
XGBoost代表极限梯度增强,是执行加强机器学习的最佳Python包之一。LightGBM和CatBoost之类的软件库也配有定义良好的功能和方法。该库的构建旨在实现梯度推进机,以提升机器学习模型的性能和精确性。
下面是它的一些重要特征:该库最初用C++编写,被认为是提高机器学习模型性能的最快速和有效的软件库之一。
XGBoost的核心算法是可平行化的,并能有效地使用多核计算机的性能。这也让该库足够强大,进而处理大量数据集和跨数据集网络运行。
提供用于执行交叉验证、参数调整、正则化和处理缺失值的内部参数,还提供与scikit-learn兼容的APIs。
经过不断的证明,该库优于其他算法,所以常用于顶级数据科学和机器学习竞赛
ElI5
ELI5是主要用于提高机器学习模型性能的另一Python库。该库非常新颖并常与XGBoost、LightGBM和CatBoost等一起使用,以提高机器学习模型的准确性。
下面是它的一些重要特征:它与Scikit-learn程序包集成,以此表现功能重要性及阐释对决策树和基于树型集合的预测。
它分析和解释由XGBClassifier、XGBRegressor、LGBMClassifier、LGBMRegressor、CatBoostClassifier、CatBoostRegressor和 catboost.CatBoost等作出的预测。
它为实现一些算法提供支持,以此检查包括TextExplainer模块在内的黑箱模型,该模块能解释文本分类得出的预测。
它有助于分析scikit-learn一般线性模型的权值和预测,该模型包括线性回归和分类分析。
四、深度学习
机器学习和人工智能最大的进展是实现深度学习。随着深度学习的引入,现在有可能建立复杂模型和处理庞大数据集。下面是用于深度学习的高级Python库列表:TensorFlow、Pytorch、Keras。
Tensorflow
作为深度学习的最佳Python库之一,TensorFlow是一款用于一系列任务中的数据流编程的开源库。它是一种符号数学库,用于建立强大和准确的神经网络。它还提供多平台编程界面,在众多领域具有高伸缩性。
下面是TensorFlow的一些重要特征:它能建立和培养多个神经网络,其有助于容纳大型项目和数据集。
除了支持神经网络,它还为统计分析提供函数和方法。例如,它提供了内置函数来创建概率模型和贝叶斯网络,如Bernoulli、Chi2、Uniform、Gamma等。
该库提供了分层组件,这些组件对权值和阈值进行分层操作,也通过实施批归一化和退出等正则化技术,来提高模型性能。
它带有一个名为TensorBoar的可视化工具,用于创建交互图形和视觉,从而了解数据特征的依赖性。
Pytorch
Pytorch是开源的基于Python的科学计算程序包,用于在大量数据集上实现深度学习技术和神经网络。Facebook积极使用该库来开发可辅助脸部识别和自动标记的神经网络。
下面是Pytorch的一些重要特征:可轻松使用APIs,与其他数据科学和机器学习框架集成。
与NumPy一样,Pytorch提供名为Tensors的多维数组。与NumPy不同的是,它甚至可用于GPU。
它不仅可模拟大规模的神经网络,还能提供一个界面,具有200多种用于统计分析的数学运算。
创建动态计算图,在代码执行的每个点建立动态图。这些图标在预测实时销售同时也帮助时间序列分析。
Keras
Keras被认为Python中最佳的深度学习软件库之一。它为建立、分析、评估和提升神经网络提供全面支持。Keras是基于Theano 和 TensorFlow Python库之上构建的,还具有附加特性用以构建复杂和大规模的深度学习模型。
下面是Keras的一些重要特征:为构建各种类型的神经网络提供支持,包括完全连接的、卷积的、池化的、循环的和嵌入的神经网络等。对于大型数据集和问题,这些模型能够进一步结合以创建完善的神经网络。
它具有进行神经网络计算的内置函数,如定义图层、对象、激活函数、优化程序以及轻松处理图像和文本数据的一些工具。
它具有一些预处理的数据集和训练模型,包括MNIST、VGG、 Inception、SqueezeNet 和ResNet等。
它易于扩展,并支持添加包含函数和方法的新模块。
辛苦整理了3个小时,希望回答对你有用。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。