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