人工智能学习中涉及的框架众多,以下从数据处理、数据可视化、机器学习、深度学习、超参数调优等几个方面对这些框架进行整理介绍:
数据处理框架
- Numpy:Numpy[1] 是Python科学计算的基础库,提供了高性能的多维数组对象以及对数组进行操作的函数,可用于存储和处理大型数值数据,支持大量的数学运算,如矩阵运算、线性代数操作等。

- Pandas:Pandas[2] 主要用于数据处理和分析,提供了数据结构如
Series
和DataFrame
,方便对数据进行读取、清洗、转换、分组、合并等操作,能轻松处理各种格式的数据,如CSV、Excel等。

数据可视化框架
-
Matplotlib:Matplotlib[3] 是Python中最常用的可视化库之一,可用于创建各种类型的图表,如折线图、散点图、柱状图、饼图等,具有高度的灵活性和可定制性。

-
Seaborn: Seaborn[4] 基于Matplotlib构建,提供了更高级的统计可视化功能,风格更美观,能方便地绘制各种统计图表,如分布 plot、关系 plot、聚类 plot等,适合用于探索性数据分析。

-
Plotly:Plotly[5]是一个用于创建交互式可视化的库,支持多种图表类型,其图表可以在网页上交互展示,具有缩放、悬停显示数据等功能,在数据探索和展示方面有很大优势。

-
Bokeh:Bokeh[6]也是用于创建交互式可视化的库,专注于提供简洁的接口来创建高性能的交互式图表,适用于处理大型数据集和创建复杂的可视化应用。
与 Matplotlib 相比,Bokeh 更侧重于交互式可视化,而 Matplotlib 主要用于创建静态图表。Matplotlib 是一个功能强大的绘图库,但在交互性方面相对较弱。与 Seaborn 相比,Seaborn 是基于 Matplotlib 构建的高级可视化库,提供了更简洁的 API 来创建统计图表,但同样缺乏 Bokeh 的交互性。

机器学习框架
- Scikit-Learn:Scikit-Learn[7] 是用于机器学习的常用框架,提供了丰富的机器学习算法和工具,包括分类、回归、聚类、降维等各种算法,以及模型评估、数据预处理、特征工程等功能。

- XGBoost:XGBoost[8] 是一种快速、高效的梯度提升框架,在许多数据挖掘和机器学习竞赛中表现出色,具有可扩展性、鲁棒性等优点,能处理大规模数据集,支持并行计算和分布式训练。

- LightGBM:LightGBM[9] 由微软开发的快速、高效的梯度提升框架,采用了直方图算法等优化技术,训练速度快,内存占用少,还支持大规模数据集和分布式训练,在数据挖掘和机器学习领域应用广泛。

- Statsmodels:Statsmodels[10] 主要用于统计建模和计量经济学分析,提供了各种统计模型和方法,如线性回归、时间序列分析、方差分析等,可用于对数据进行统计推断和预测。

深度学习框架
- PyTorch:PyTorch[11] 是一个基于Python的深度学习框架,以其动态计算图和易于使用的特点受到广泛欢迎,支持CPU和GPU计算,提供了丰富的神经网络层和优化器,方便进行深度学习模型的开发和训练。

- TensorFlow:TensorFlow[12] 由Google开发和维护的深度学习框架,功能强大,支持多种硬件平台,具有高度的灵活性和可扩展性,可用于构建各种深度学习模型,如神经网络、卷积神经网络、循环神经网络等。

- Keras:Keras[13] 是一个简化的深度学习框架,提供了简单易用的接口,可用于快速搭建和训练深度学习模型,通常作为初学者入门深度学习的首选框架,也可以与TensorFlow等其他框架结合使用。

超参数调优框架
自然语言处理框架
- NLTK: NLTK[16] 提供了丰富的语料库和工具,用于文本处理、分类、标记、解析等任务,是自然语言处理领域的重要工具包,有助于进行文本分析、情感分析、词性标注等工作。

Tensorflow Playground(Tensorflow 游乐场)
Tensorflow Playground[17] 是一个可在浏览器中对神经网络进行交互式探索的平台,旨在帮助用户直观理解神经网络原理,主要内容如下:
- 操作与设置:用户能调整多项训练参数,如 “Epoch”(当前训练轮次,初始 000,000 )、“Learning rate”(学习率,初始 0.03 )、“Activation”(激活函数,初始 Tanh )、“Regularization”(正则化方式,初始 None )、“Regularization rate”(正则化率,初始 0 )等;还能选择 “Problem type”(问题类型,如 Classification 分类 )、“Data”(数据集 )、“Ratio of training to test data”(训练集与测试集比例,初始 50% )等,以及挑选输入 “Features”(特征,如 X1、X2 等多种选项 )。
- 可视化展示:以图形化呈现神经网络结构,包含神经元与连接线条。神经元输出值及连接权重以颜色区分,橙色代表负值、蓝色代表正值。数据点(小圆圈)、隐藏层连接线条、输出层点和背景颜色,都依不同规则着色,用以展示数据、神经元和权重值。此外,能查看 “Test loss”(测试损失,初始 0.503 )和 “Training loss”(训练损失,初始 0.517 )等指标。
- 知识科普:对神经网络概念进行解释,称其是从数据中学习的计算机编程技术,模拟人类大脑工作方式。还推荐学习资料,如 Michael Nielsen 的《Neural Networks and Deep Learning》、Ian Goodfellow 等人的《Deep Learning》。
参考连接
[1] https://numpy.org/
[2] https://pandas.pydata.org/
[3] https://matplotlib.org/
[4] https://seaborn.pydata.org/
[5] https://plotly.com/
[6] https://bokeh.org/
[7] https://scikit-learn.org/stable/
[8] https://xgboost.readthedocs.io/en/stable/index.html
[9] (https://lightgbm.readthedocs.io/en/stable/
[10] https://www.statsmodels.org/stable/index.html
[11] https://pytorch.org/
[12] https://www.tensorflow.org/?hl=zh-cn
[13] https://keras.io/
[14] https://optuna.org/
[15] https://epistasislab.github.io/tpot/
[16] https://www.nltk.org/
[17] http://playground.tensorflow.org