我正在尝试在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
,而不是www.abc.com but its
-1`。
可能也有一些实现错误,但总的来说,我认为哈希会导致你的数据过于分散,所以在这种情况下,基本哈希不会让你准确预测异常值,因为所有东西都离其他东西太远了,所以,所有东西都会有点像异常值。
对于你的任务,我不知道你为什么需要机器学习。使用一本存储访问过的网站的词典,当你得到一个新网站时,检查它是否在词典中。快速、高效、简单。
下面简要解释一下为什么不应该使用机器学习方法:
这不是一项机器学习任务。本质上,机器学习是用来从嘈杂的数据中学习未知模式的。这是一个不确定的过程。这种模式的一个例子是
"如果客户失业,年龄在25岁以下,没有高中文凭,那么与所有男性客户相比,他的信用贷款违约风险会增加30%。"
在您的情况下,模式是已知的,可以描述为
"用户访问了一个他以前从未访问过的页面"。
这是一种确定性模式,因此您不应该在这里使用机器学习方法。