Sklearn One Class SVM

时间:2015-02-23 18:16:08

标签: machine-learning scikit-learn svm

我正在尝试在Sklearn中使用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(hash('string'))

我希望它能为所有人-1 - 1`返回www.abc.com but its

2 个答案:

答案 0 :(得分:3)

也可能存在一些实现错误,但总的来说我认为散列会导致数据过于分散,因此在这种情况下基本散列不会让您准确地预测异常值,因为一切都会远离其他一切,好吧,一切都会成为异常值。

对于你的任务,我不知道为什么你甚至需要机器学习。使用存储访问过的网站的字典,当您获得新网站时,检查它是否在字典中。快速,高效,轻松。

答案 1 :(得分:0)

这里简要解释为什么你不应该使用机器学习方法:

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

  

“如果客户失业,25岁以下并且没有高中毕业证书,那么与所有男性客户相比,他的信用贷款违约风险会增加30%。”

在您的情况下,模式是已知的,可以描述为

  

“用户访问之前从未访问过的网页”。

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