Tensorflow如何与Estimators一起使用,以向力大无比的数据集添加一列?

Tensorflow是Google提供的一种机器学习框架。它是一个开放源代码框架,可与Python结合使用,以实现算法,深度学习应用程序等等。它用于研究和生产目的。

它具有优化技术,可帮助快速执行复杂的数学运算。

这是因为它使用了NumPy和多维数组。这些多维数组也称为“张量”。该框架支持使用深度神经网络。它具有高度的可扩展性,并附带许多流行的数据集。它使用GPU计算并自动进行资源管理。它带有大量的机器学习库,并且得到了良好的支持和记录。该框架具有运行深度神经网络模型,对其进行训练以及创建可预测各个数据集相关特征的应用程序的能力。

可以使用下面的代码行在Windows上安装'tensorflow'软件包-

pip install tensorflow

Tensor是TensorFlow中使用的数据结构。它有助于连接流程图中的边缘。该流程图称为“数据流程图”。张量不过是多维数组或列表。

Keras在希腊语中的意思是“号角”。Keras被开发为ONEIROS(开放式神经电子智能机器人操作系统)项目研究的一部分。Keras是使用Python编写的深度学习API。它是一个高级API,具有可帮助解决机器学习问题的高效接口。

它在Tensorflow框架之上运行。它旨在帮助快速进行实验。它提供了在开发和封装机器学习解决方案中必不可少的基本抽象和构建块。

它具有高度的可扩展性,并具有跨平台功能。这意味着Keras可以在TPU或GPU集群上运行。Keras模型也可以导出为在Web浏览器或手机中运行。

Keras已经存在于Tensorflow软件包中。可以使用下面的代码行进行访问。

import tensorflow
from tensorflow import keras

我们将使用Keras Sequential API,它有助于构建用于与简单的层堆栈配合使用的顺序模型,其中每一层都具有一个输入张量和一个输出张量。

包含至少一层的神经网络称为卷积层。卷积神经网络通常由以下提到的层的某种组合组成-

  • 卷积层

  • 汇聚层

  • 致密层

卷积神经网络已用于为特定类型的问题(例如图像识别)产生出色的结果。

我们正在使用Google合作实验室来运行以下代码。Google Colab或Colaboratory可以帮助通过浏览器运行Python代码,并且需要零配置和对GPU(图形处理单元)的免费访问。合作已建立在Jupyter Notebook的基础上。

让我们了解如何使用估算器。

估算器是TensorFlow完整模型的高级表示。它设计用于轻松扩展和异步培训。我们将使用tf.estimatorAPI训练逻辑回归模型。该模型用作其他算法的基准。

估计器使用要素列来描述模型如何解释原始输入要素。估计器需要一个数字输入向量,要素列将帮助描述模型应如何转换数据集中的每个要素。

选择和使用正确的特征列集对于学习有效的模型至关重要。特征列可以是原始特征字典中的原始输入之一,也可以是使用在一个或多个基本列上定义的转换创建的新列。

线性估计器同时使用数字和分类特征。功能列可与所有TensorFlow估算器一起使用。他们的目标是定义用于建模的功能。它们还具有功能工程功能,例如单热编码,规范化和存储桶化。

示例

print("Crossed feature column is added to the data")
age_x_gender = tf.feature_column.crossed_column(['age', 'sex'], hash_bucket_size=100)
print("The combination feature is added")
print("The model is trained again")
derived_feature_columns = [age_x_gender]
linear_est = tf.estimator.LinearClassifier(feature_columns=feature_columns+derived_feature_columns)
linear_est.train(train_input_fn)
result = linear_est.evaluate(eval_input_fn)
clear_output()
print(result)

代码信用-https://www.tensorflow.org/tutorials/estimator/linear

输出结果

Crossed feature column is added to the data
The combination feature is added
The model is trained again
{'accuracy': 0.7613636, 'accuracy_baseline': 0.625, 'auc': 0.84352624, 'auc_precision_recall': 0.78346276, 'average_loss': 0.48114488, 'label/mean': 0.375, 'loss': 0.4756022, 'precision': 0.65789473, 'prediction/mean': 0.4285249, 'recall': 0.75757575, 'global_step': 200}

解释

  • 达到75%的精度。

  • 这是通过分别使用每个基本要素列来完成的,但这可能不足以解释数据。

  • 要了解不同要素组合之间的差异,可以将交叉要素列添加到模型中。

  • 另一方面,“年龄”列也可以在交叉列之前进行存储。

猜你喜欢