如果发布了类似的内容,我提前表示歉意,但根据我所做的研究,我找不到任何具体内容。
我目前正在查看http://scikit-learn.org这里的内容看起来很棒,但我很困惑应该使用什么类型来解决我的问题。
我希望能够有 2 个标签。
**Suspicious**
1hbn34uqrup7a13t
qmr30zoyswr21cdxolg
1qmqnbetqx
**Not-Suspicious**
cheesemix
reg526
animato12
我可以向哪种类型的机器学习算法提供上面的数据,以教导它通过监督学习我认为可疑的东西?
我倾向于分类,但有太多模型可供选择,我有点迷失。
最佳答案
此类机器学习问题的第一步是考虑“特征”。你不能使用例如直接在这些字符串上的线性分类器。因此,您必须提取一些描述字符串的有意义的特征。在计算机视觉中,这些特征往往是边缘、角点、SIFT特征。您基本上必须选择:
- 您自己设计功能。
- 了解功能。
1) 这是“经典”机器学习方法:您手动设计代表性特征列表,您可以从输入数据中提取这些特征。对于您的情况,您可以从例如开始
- 字符串长度
- 不同字符的数量
- 特殊字符数量
- 关于排序的一些事情?
- ...
这将为您提供每个字符串的数字向量。现在,您可以使用 scikit-learn 中的任何分类器对数据进行分类。您可以在this flowchart的帮助下开始选择您的算法。 。您应该从一个简单的模型开始,例如线性模型(例如线性 SVM)。如果性能不够,请使用更复杂的模型(例如带内核的 SVM),或重新考虑您对功能的选择。
2) 这是“现代”方法,越来越受欢迎。设计特征是 1) 中的关键步骤,它需要对数据有充分的了解。现在,通过使用深度神经网络,您可以将原始数据(字符串)输入网络,并让网络自行学习这些“特征”。然而,这需要大量带标签的训练数据和大量的处理能力(GPU)。
LSTM 网络是当今自然语言处理和类似任务领域最先进的网络。 LSTM 非常适合您的任务,因为输入的长度可以是可变的。
tl;dr:要么自己设计特征并使用您选择的分类器,要么深入研究深度神经网络并让网络学习特征和分类。
关于python - 机器学习检测随机字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41769819/