2017-01-20 42 views
0

如果发布了类似的内容,但是我已经完成的研究找不到任何具体内容,我会事先做道歉。机器学习检测随机字符串

我目前正在看http://scikit-learn.org和这里的内容看起来不错,但我很困惑我应该用什么类型的问题。

我想能够有2个标签。

**Suspicious** 
1hbn34uqrup7a13t 
qmr30zoyswr21cdxolg 
1qmqnbetqx 

**Not-Suspicious** 
cheesemix 
reg526 
animato12 

我可以养活数据什么类型的机器学习算法在上面教它什么我倒是类通过监督学习为可疑?

我倾向于分类,但有这么多的模型可供选择,从我略有失落。

+0

由于每组中只有一个示例,因此很难知道您要区分的内容。有什么特点使第一个可疑,但第二个可以接受?你甚至知道,你自己? – Prune

回答

1

这种机器学习问题的第一步是思考“特征”。您不能使用例如直接在这些字符串上的线性分类器。因此,你必须提取一些描述字符串的有意义的特征。在计算机视觉中,这些特征通常是边缘,角点,SIFT特征。您基本上必须选择:

  1. 设计功能自己。
  2. 了解功能。

1)这是“经典”机器学习方法:手动设计的代表性功能,你可以从你的输入数据中提取的列表。就你而言,你可以从例如

  • 字符串的长度
  • 许多不同的字符
  • 一些特殊字符
  • 一些有关的排序?
  • ...

这会给你每串数字的载体。现在,您可以使用scikit-learn中的任何分类器对数据进行分类。你可以在this flowchart的帮助下开始选择你的算法。您应该从一个简单的模型开始,例如线性模型(例如线性SVM)。如果性能不足,请使用更复​​杂的模型(例如,带内核的SVM),或重新考虑您选择的功能。

2)这是“现代”的方法,越来越受欢迎。设计功能是1)中的关键步骤,它需要对数据有很好的了解。现在,通过使用深度神经网络,您可以将原始数据(字符串)提供给网络,并让网络自己学习这些“特征”。但是,这需要大量标记的训练数据和大量的处理能力(GPU)。

LSTM网络是当今最先进的自然语言处理和类似任务。 LSTM将非常适合您的任务,因为输入可以是可变长度的。

tl; dr:这两种设计都有自己的特点,并使用您选择的分类器,或深入深度神经网络,让网络学习功能和分类。