Machine learning 学习一类支持向量机

Machine learning 学习一类支持向量机,machine-learning,scikit-learn,svm,Machine Learning,Scikit Learn,Svm,我正在尝试使用OneClassSVM进行异常检测。 用户每天都在访问网站,但有一天他访问了一个以前从未访问过的网站。我想用OneClassSVM捕捉这个异常值。以下是数据示例: `([[www.makeuseof.com, www.kickstater.com, www.google.com, www.mashable.com` 下面是样本测试数据 `test_data = ['www.makeuseof.com','www.google.com','www.abc.com',]` 我正在使

我正在尝试使用OneClassSVM进行异常检测。 用户每天都在访问网站,但有一天他访问了一个以前从未访问过的网站。我想用OneClassSVM捕捉这个异常值。以下是数据示例:

`([[www.makeuseof.com,
www.kickstater.com,
www.google.com,
www.mashable.com`
下面是样本测试数据

`test_data = ['www.makeuseof.com','www.google.com','www.abc.com',]`
我正在使用python内置的哈希库对所有字符串进行哈希。
abs(散列('string'))


我希望它返回
-1
用于
www.abc.com,但它的
-1`用于所有人。

可能也存在一些实现错误,但一般来说,我认为哈希会导致数据过于分散,所以在这种情况下,基本的散列法不能让你准确地预测异常值,因为所有的东西都离其他东西很远,所以,所有的东西都有点像异常值


对于你的任务,我不知道你为什么需要机器学习。使用存储访问过的网站的词典,当你得到一个新网站时,检查它是否在词典中。快速、高效且简单。

以下是不应使用机器学习方法的简短说明:

这不是一项机器学习任务。本质上,机器学习用于从噪声数据中学习未知模式。这是一个不确定的过程。 这种模式的一个例子是

“如果客户失业,年龄在25岁以下,没有高中文凭,那么与所有男性客户相比,其信用贷款违约风险增加30%。”

在您的案例中,模式是已知的,可以描述为

“用户访问一个他以前从未访问过的页面”


这是一种确定性模式,因此您不应该在这里使用机器学习方法。

向我们展示一些失败的代码。我不确定散列法是否是最好的方法。我认为你是对的,这是我最初做的,但经过一些研究,我发现一类SVM是查找异常值的一种非常标准的方法。所以我想试试看它是如何工作的。什么是将字符串转换为数字的好方法,以便可以将其用于训练SVM?@Vishal-您希望类似的条目保持在一起。对于文本数据,通常使用TF-IDF转换。但是你需要用真实的语言来表达,我不认为它能很好地用于网站URL。为此,你需要定义两个网站之间的相似性,我真的不知道该怎么做。我想说的很简单:如果你不需要机器学习就可以做到,你应该做到。是的,你是对的,TF-IDF在这种情况下不起作用,为了找到类似的网站,我需要整个网站的数据,然后对其进行分类。。这是一条艰难的道路,但即使是我也发现我不应该用机器学习来做这件事。这个问题不需要机器学习。聪明的规则:不要把事情复杂化