如何量化神经网络的标记化用户代理字符串?

数据挖掘 机器学习 神经网络 特征提取
2022-02-28 12:03:11

我目前正在试验用户代理字符串。我目前的计划是标记用户代理字符串并将其拆分为重要部分。如操作系统、浏览器名称等。

在那之后,创建某种映射是否有意义,其中 iOS = 0.1 和 Windows = 0.2,我将字符串映射到我的网络操作系统功能的数字?

这是当前处理此类数据的最佳方法,还是我应该尝试不同的方法?网络应该预测用户将点击哪个类别,然后将该类别移动到更显眼的位置。

例如,我希望 iOS 用户更喜欢 iPhone 手机壳而不是 android 手机壳。

感谢您帮助我进行实验。

2个回答

iOS、Windows 和 Android 不应被视为字符串,而应被视为类别类别应该是 one-hot 编码的,并且不应该共享相同的输入,因为它们彼此不相关。

因此,假设我们使用两个操作系统:iOS 和 Windows。

因此,对于 iOS,输入是:1 0,对于 Windows,输入是:0 1

但现在我们要添加另一个操作系统:Android。

iOS 变为:1 0 0,Windows 0 1 0,Android 0 0 1:。请注意,通过添加 android,您实际上并没有更改输入!您只需为 iOS 和 Windows 添加一个额外的 0,并且 0 不会在神经网络中计算0*weight = 0

因此,通过添加操作系统,您不会影响网络为先前训练的操作系统学习的内容。

我有点犹豫要不要回答这个问题,因为我有利益冲突,而且该产品不是开源的(不过,该产品的一个版本可在三大 CSP 的市场上获得)。

WURFL 是一种 API,可用于将 HTTPuser-agent字符串(以及更普遍的 HTTP 请求)转换为设备属性,这种技术通常称为(移动)设备检测。使用 WURFL,数据科学家可以将用户代理字符串映射到设备数据,并大大减少过程中的基数。数千个(甚至数十万个)不同的 UA 字符串可以翻译成数百个品牌和型号。操作系统、浏览器及其各自的版本可以整合并轻松聚合。相关性更容易探索和确定。当然,可以沿着很多不同的维度(即 WURFL 提供的所有属性(AKA 功能))减少差异,而不仅仅是模型、操作系统和浏览器。

以下文章展示了如何在 Python 中将 WURFL 用于此目的的实际示例,但支持所有主要平台和编程语言。

https://www.scientiamobile.com/wurfl-and-machine-learning/