我正在尝试在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
。
答案 0 :(得分:3)
也可能存在一些实现错误,但总的来说我认为散列会导致数据过于分散,因此在这种情况下基本散列不会让您准确地预测异常值,因为一切都会远离其他一切,好吧,一切都会成为异常值。
对于你的任务,我不知道为什么你甚至需要机器学习。使用存储访问过的网站的字典,当您获得新网站时,检查它是否在字典中。快速,高效,轻松。
答案 1 :(得分:0)
这里简要解释为什么你不应该使用机器学习方法:
这不是机器学习任务。从本质上讲,机器学习用于从嘈杂的数据中学习未知模式。这是一个非确定性的过程。 这种模式的一个例子是
“如果客户失业,25岁以下并且没有高中毕业证书,那么与所有男性客户相比,他的信用贷款违约风险会增加30%。”
在您的情况下,模式是已知的,可以描述为
“用户访问之前从未访问过的网页”。
这是一种确定性模式,因此你不应该在这里使用机器学习方法。